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" />
15 <link type=
"image/x-icon" rel=
"icon" href=
"data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" />
21 .form-control[readonly] {
34 background-color: orange;
38 border:
2px solid #
555;
40 border-bottom-left-radius:
20px
20px;
41 border-bottom-right-radius:
20px
20px;
45 box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
46 -webkit-box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
51 .generate-container .strength {
52 /* override mobile width from bootstrap */
53 width: auto!important;
54 display: inline-block;
59 .languages a:nth-of-type(
1) {
64 font-family: monospace;
66 .entropy-container .filtered,
67 .entropy-container .binary {
68 word-wrap: break-word;
70 .entropy-container li {
94 background-color: #FFF;
95 border:
1px solid #CCC;
107 border-bottom:
1px dashed #
000;
108 text-decoration: none;
118 <div class=
"container">
120 <h1 class=
"text-center">Mnemonic Code Converter
</h1>
121 <p class=
"version">v0.1
.1</p>
124 <div class=
"col-md-12">
126 <form class=
"form-horizontal" role=
"form">
127 <div class=
"form-group">
128 <div class=
"col-sm-2"></div>
129 <div class=
"col-sm-10">
130 <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>
131 <p data-translate-html
>
132 For more info see the
133 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target=
"_blank">BIP39 spec
</a>.
137 <div class=
"form-group generate-container">
138 <label class=
"col-sm-2 control-label"></label>
139 <div class=
"col-sm-10">
140 <div class=
"form-inline">
141 <div class=
"input-group-inline">
142 <span data-translate
>Generate a random mnemonic, or enter your own below
</span>:
143 <button class=
"btn generate">Generate
</button>
144 <select id=
"strength" class=
"strength form-control">
145 <option value=
"3">3</option>
146 <option value=
"6">6</option>
147 <option value=
"9">9</option>
148 <option value=
"12">12</option>
149 <option value=
"15" selected
>15</option>
150 <option value=
"18">18</option>
151 <option value=
"21">21</option>
152 <option value=
"24">24</option>
154 <span data-translate
>words
</span>
159 <div class=
"entropy-container hidden">
160 <div class=
"form-group text-danger">
161 <label class=
"col-sm-2 control-label" data-translate
>Warning
</label>
162 <div class=
"col-sm-10 form-control-static">
163 <span data-translate
>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
164 <a href=
"#entropy-notes" data-translate
>Read more
</a>
167 <div class=
"form-group">
168 <label for=
"entropy" class=
"col-sm-2 control-label" data-translate
>Entropy
</label>
169 <div class=
"col-sm-7">
170 <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>
172 <label class=
"col-sm-3 control-label" data-translate
><span class=
"more-info" data-translate-title
title=
"Based on estimates from zxcvbn using Filtered Entropy">Time To Crack
</span></label>
173 <div class=
"crack-time col-sm-3 form-control-static"></div>
174 <label class=
"col-sm-3 control-label" data-translate
>Event Count
</label>
175 <div class=
"event-count col-sm-3 form-control-static"></div>
178 <label class=
"col-sm-3 control-label" data-translate
>Entropy Type
</label>
179 <div class=
"type col-sm-3 form-control-static"></div>
180 <label class=
"col-sm-3 control-label" data-translate
>Bits Per Event
</label>
181 <div class=
"bits-per-event col-sm-3 form-control-static"></div>
184 <label class=
"col-sm-3 control-label" data-translate
>Raw Entropy Words
</label>
185 <div class=
"word-count col-sm-3 form-control-static"></div>
186 <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>
187 <div class=
"bits col-sm-3 form-control-static"></div>
189 <label class=
"col-sm-3 control-label" data-translate
>Filtered Entropy
</label>
190 <div class=
"filtered col-sm-9 form-control-static"></div>
191 <label class=
"col-sm-3 control-label" data-translate
>Raw Binary
</label>
192 <div class=
"binary col-sm-9 form-control-static"></div>
193 <label class=
"col-sm-3 control-label" data-translate
>Mnemonic Length
</label>
194 <div class=
"col-sm-9">
195 <select class=
"mnemonic-length form-control">
196 <option value=
"raw" selected data-translate
>Use Raw Entropy (
3 words per
32 bits)
</option>
197 <option value=
"12">12 <span data-translate
>Words
</span></option>
198 <option value=
"15">15 <span data-translate
>Words
</option>
199 <option value=
"18">18 <span data-translate
>Words
</span></option>
200 <option value=
"21">21 <span data-translate
>Words
</span></option>
201 <option value=
"24">24 <span data-translate
>Words
</span></option>
205 <div class=
"col-sm-3">
206 <p data-translate
>Valid entropy values include:
</p>
208 <li><strong data-translate
>Binary
</strong> [
0-
1]
<br>101010011</li>
209 <li><strong data-translate
>Base
6</strong> [
0-
5]
<br>123434014</li>
210 <li><strong data-translate
>Dice
</strong> [
1-
6]
<br>62535634</li>
211 <li><strong data-translate
>Base
10</strong> [
0-
9]
<br>90834528</li>
212 <li><strong data-translate
>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
213 <li><strong data-translate
>Card
</strong> [A2-
9TJQK][CDHS]
<br>ahqs9dtc
</li>
218 <div class=
"form-group">
219 <div class=
"col-sm-2"></div>
220 <div class=
"col-sm-10 checkbox">
222 <input type=
"checkbox" class=
"use-entropy">
223 <span data-translate
>Supply my own source of entropy
</span>
227 <div class=
"form-group">
228 <label class=
"col-sm-2 control-label" data-translate
>Mnemonic Language
</label>
229 <div class=
"col-sm-10 languages">
230 <div class=
"form-control no-border">
231 <a href=
"#english">English
</a>
232 <a href=
"#japanese" title=
"Japanese">日本語
</a>
233 <a href=
"#spanish" title=
"Spanish">Español
</a>
234 <a href=
"#chinese_simplified" title=
"Chinese (Simplified)">中文(简体)
</a>
235 <a href=
"#chinese_traditional" title=
"Chinese (Traditional)">中文(繁體)
</a>
236 <a href=
"#french" title=
"French">Français
</a>
237 <a href=
"#italian" title=
"Italian">Italiano
</a>
241 <div class=
"form-group">
242 <label for=
"phrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Mnemonic
</label>
243 <div class=
"col-sm-10">
244 <textarea id=
"phrase" class=
"phrase form-control" data-show-qr
></textarea>
247 <div class=
"form-group">
248 <label for=
"passphrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Passphrase (optional)
</label>
249 <div class=
"col-sm-10">
250 <textarea id=
"passphrase" class=
"passphrase form-control"></textarea>
253 <div class=
"form-group">
254 <label for=
"seed" class=
"col-sm-2 control-label" data-translate
>BIP39 Seed
</label>
255 <div class=
"col-sm-10">
256 <textarea id=
"seed" class=
"seed form-control" readonly=
"readonly" data-show-qr
></textarea>
259 <div class=
"form-group">
260 <label for=
"network-phrase" class=
"col-sm-2 control-label" data-translate
>Coin
</label>
261 <div class=
"col-sm-10">
262 <select id=
"network-phrase" class=
"network form-control">
263 <!-- populated by javascript -->
267 <div class=
"form-group">
268 <label for=
"root-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Root Key
</label>
269 <div class=
"col-sm-10">
270 <textarea id=
"root-key" class=
"root-key form-control" data-show-qr
></textarea>
280 <div class=
"col-md-12">
281 <h2>Derivation Path
</h2>
282 <ul class=
"derivation-type nav nav-tabs" role=
"tablist">
283 <li id=
"bip44-tab" class=
"active">
284 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
287 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
290 <div class=
"derivation-type tab-content">
291 <div id=
"bip44" class=
"tab-pane active">
292 <form class=
"form-horizontal" role=
"form">
294 <div class=
"col-sm-2"></div>
295 <div class=
"col-sm-10">
296 <p data-translate-html
>
297 For more info see the
298 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
301 <div class=
"form-group">
302 <label for=
"purpose" class=
"col-sm-2 control-label">
303 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
305 <div class=
"col-sm-10">
306 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44">
309 <div class=
"form-group">
310 <label for=
"coin" class=
"col-sm-2 control-label">
311 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
313 <div class=
"col-sm-10">
314 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0">
317 <div class=
"form-group">
318 <label for=
"account" class=
"col-sm-2 control-label">
319 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
321 <div class=
"col-sm-10">
322 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
325 <div class=
"form-group">
326 <label for=
"change" class=
"col-sm-2 control-label">
327 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
329 <div class=
"col-sm-10">
330 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
333 <div class=
"form-group">
334 <label class=
"col-sm-2 control-label">
336 <div class=
"col-sm-10">
337 <p data-translate
>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
340 <div class=
"form-group">
341 <label for=
"account-xprv" class=
"col-sm-2 control-label">
342 <span data-translate
>Account Extended Private Key
</span>
344 <div class=
"col-sm-10">
345 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
348 <div class=
"form-group">
349 <label for=
"account-xpub" class=
"col-sm-2 control-label">
350 <span data-translate
>Account Extended Public Key
</span>
352 <div class=
"col-sm-10">
353 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
356 <div class=
"form-group">
357 <label class=
"col-sm-2 control-label">
359 <div class=
"col-sm-10">
360 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
363 <div class=
"form-group">
364 <label for=
"bip44-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
365 <div class=
"col-sm-10">
366 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
371 <div id=
"bip32" class=
"tab-pane">
372 <form class=
"form-horizontal" role=
"form">
374 <div class=
"col-sm-2"></div>
375 <div class=
"col-sm-10">
377 For more info see the
378 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
381 <div class=
"form-group">
382 <label for=
"bip32-client" class=
"col-sm-2 control-label" data-translate
>Client
</label>
383 <div class=
"col-sm-10">
384 <select id=
"bip32-client" class=
"client form-control">
385 <option value=
"custom">Custom derivation path
</option>
386 <!-- populated by javascript -->
390 <div class=
"form-group">
391 <label for=
"bip32-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
392 <div class=
"col-sm-10">
393 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
396 <div class=
"form-group">
397 <div class=
"col-sm-2"></div>
398 <label class=
"col-sm-10">
399 <input class=
"hardened-addresses" type=
"checkbox">
400 <span data-translate
>Use hardened addresses
</span>
403 <div class=
"form-group">
404 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Bitcoin Core
</label>
405 <div class=
"col-sm-10">
406 <p class=
"form-control no-border" data-translate-html
>
407 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
409 <p class=
"form-control no-border" data-translate-html
>
410 For more info see the
411 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
415 <div class=
"form-group">
416 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Multibit
</label>
417 <div class=
"col-sm-10">
418 <p class=
"form-control no-border">
419 <span data-translate-html
>Use path
<code>m/
0'/
0</code>.
</span>
421 <p class=
"form-control no-border">
422 <span data-translate
>For more info see
</span>
423 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
427 <div class=
"form-group">
428 <label class=
"col-sm-2 control-label" data-translate
>Block Explorers
</label>
429 <div class=
"col-sm-10">
430 <p class=
"form-control no-border">
431 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
432 <span data-translate-html
>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
434 <p class=
"form-control no-border">
435 <span data-translate
>Can be used with
</span>:
436 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
443 <form class=
"form-horizontal" role=
"form">
444 <div class=
"form-group">
445 <label for=
"extended-priv-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Private Key
</label>
446 <div class=
"col-sm-10">
447 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
450 <div class=
"form-group">
451 <label for=
"extended-pub-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Public Key
</label>
452 <div class=
"col-sm-10">
453 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
463 <div class=
"col-md-12">
464 <h2>Derived Addresses
</h2>
465 <p data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
466 <table class=
"table table-striped">
469 <div class=
"input-group">
470 <span data-translate
>Path
</span>
471 <button class=
"index-toggle" data-translate
>Toggle
</button>
475 <div class=
"input-group">
476 <span data-translate
>Address
</span>
477 <button class=
"address-toggle" data-translate
>Toggle
</button>
481 <div class=
"input-group">
482 <span data-translate
>Public Key
</span>
483 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
487 <div class=
"input-group">
488 <span data-translate
>Private Key
</span>
489 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
493 <tbody class=
"addresses monospace">
494 <tr><td> </td><td> </td><td> </td><td> </td></tr>
495 <tr><td> </td><td> </td><td> </td><td> </td></tr>
496 <tr><td> </td><td> </td><td> </td><td> </td></tr>
497 <tr><td> </td><td> </td><td> </td><td> </td></tr>
498 <tr><td> </td><td> </td><td> </td><td> </td></tr>
503 <span data-translate
>Show more rows
</span>:
504 <input type=
"number" class=
"rows-to-add" value=
"20">
505 <button class=
"more" data-translate
>Show
</button>
510 <div class=
"col-md-12">
511 <h2 data-translate
>More info
</h2>
512 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
513 <p data-translate-html
>
515 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
517 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
518 <p data-translate-html
>
520 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
522 <p data-translate-html
>
524 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
526 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
527 <p data-translate-html
>
529 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
531 <h3 data-translate
>Private Keys
</h3>
533 <span data-translate-html
>
535 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
537 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
539 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
541 <span data-translate-html
>
542 Entropy values must be sourced from a
543 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
545 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
546 <span data-translate-html
>
547 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
548 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
549 random enough for the needs of this tool.
553 <strong><span data-translate
>Do not store entropy.
</span></strong>
556 <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>
557 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
558 <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>
561 <span data-translate-html
>
562 The random mnemonic generator on this page uses a
563 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
565 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
566 <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>
567 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
570 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
572 <h3 data-translate
>License
</h3>
574 <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.
577 <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>
584 <div class=
"col-md-12">
586 <h2 data-translate
>Offline Usage
</h2>
589 You can use this tool without having to be online.
592 In your browser, select file save-as, and save this page
596 Double-click that file to open it in a browser
597 on any offline computer.
600 <span data-translate
>Alternatively, download the file from the repository
</span>
602 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
611 <div class=
"col-md-12">
613 <h2 data-translate
>This project is
100% open-source code
</h2>
616 <span data-translate
>Get the source code from the repository
</span>
618 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
619 https://github.com/iancoleman/bip39
623 <h3 data-translate
>Libraries
</h3>
626 <span>BitcoinJS -
</span>
627 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
628 https://github.com/bitcoinjs/bitcoinjs-lib
633 <span>jsBIP39 -
</span>
634 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
635 https://github.com/iancoleman/jsbip39
641 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
642 https://github.com/bitwiseshiftleft/sjcl
647 <span>jQuery -
</span>
648 <a href=
"https://jquery.com/" target=
"_blank">
654 <span>Twitter Bootstrap -
</span>
655 <a href=
"http://getbootstrap.com/" target=
"_blank">
656 http://getbootstrap.com/
665 <div class=
"qr-container hidden">
666 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
667 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
668 <div class=
"qr-hider hidden">
669 <div class=
"qr-image"></div>
670 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
674 <div class=
"feedback-container">
675 <div class=
"feedback">Loading...
</div>
678 <script type=
"text/template" id=
"address-row-template">
680 <td class=
"index"><span></span></td>
681 <td class=
"address"><span data-show-qr
></span></td>
682 <td class=
"pubkey"><span data-show-qr
></span></td>
683 <td class=
"privkey"><span data-show-qr
></span></td>
687 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
688 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
689 // but is not required in any modern browsers.
690 // For more information, see
691 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
693 //----------------------------------------------------------------------
695 // ECMAScript
2015 Polyfills
697 //----------------------------------------------------------------------
702 // Set this to always override native implementations, for testing
703 // the polyfill in browsers with partial/full ES2015 support.
704 var OVERRIDE_NATIVE_FOR_TESTING = false;
706 var undefined = (void
0); // Paranoia
711 return o === global ? undefined : o;
714 function hook(o, p, f) {
716 console.assert(typeof op === 'function', 'Hooking a non-function');
718 var o = strict(this);
719 var r = f.apply(o, arguments);
720 return r !== undefined ? r : op.apply(o, arguments);
724 function isSymbol(s) {
725 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
728 function getPropertyDescriptor(target, name) {
729 var desc = Object.getOwnPropertyDescriptor(target, name);
730 var proto = Object.getPrototypeOf(target);
731 while (!desc && proto) {
732 desc = Object.getOwnPropertyDescriptor(proto, name);
733 proto = Object.getPrototypeOf(proto);
738 var enqueue = (function(nativePromise, nativeSetImmediate) {
740 return function(job) { nativePromise.resolve().then(function() { job(); }); };
741 if (nativeSetImmediate)
742 return function(job) { nativeSetImmediate(job); };
743 return function(job) { setTimeout(job,
0); };
744 }(global['Promise'], global['setImmediate']));
746 function define(o, p, v, override) {
747 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
750 if (typeof v === 'function') {
751 // Sanity check that functions are appropriately named (where possible)
752 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
753 Object.defineProperty(o, p, {
760 Object.defineProperty(o, p, {
769 function set_internal(o, p, v) {
770 Object.defineProperty(o, p, {
778 // Snapshot intrinsic functions
779 var $isNaN = global.isNaN,
780 $parseInt = global.parseInt,
781 $parseFloat = global.parseFloat;
784 LOG10E = Math.LOG10E,
794 random = Math.random,
797 var orig_match = String.prototype.match,
798 orig_replace = String.prototype.replace,
799 orig_search = String.prototype.search,
800 orig_split = String.prototype.split;
802 // These are used for implementing the polyfills, but not exported.
804 // Inspired by https://gist.github.com/
1638059
806 function EphemeronTable() {
807 var secretKey = ObjectCreate(null);
809 function conceal(o) {
810 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
811 Object.defineProperty(o, 'valueOf', {
812 value: (function(secretKey) {
813 return function (k) {
814 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
825 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
826 return v === o ? null : v;
831 secretKey = ObjectCreate(null);
833 remove: function(key) {
834 var secrets = reveal(key);
835 if (secrets && HasOwnProperty(secrets, 'value')) {
836 delete secrets.value;
841 get: function(key, defaultValue) {
842 var secrets = reveal(key);
843 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
846 var secrets = reveal(key);
847 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
849 set: function(key, value) {
850 var secrets = reveal(key) || conceal(key);
851 secrets.value = value;
856 var empty = Object.create(null);
858 //----------------------------------------------------------------------
861 // http://www.ecma-international.org/ecma-
262/
6.0/
863 //----------------------------------------------------------------------
865 // ---------------------------------------
866 //
19.4 Symbol Objects
867 // ---------------------------------------
869 // NOTE: Symbols are defined here - out of spec order - since we need the
870 // properties and prototype to be populated for other polyfills.
872 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
876 var secret = Object.create(null);
878 symbolForKey = function(k) {
882 var GlobalSymbolRegistry = [];
884 function unique(bits) {
885 return Array(bits +
1).join('x').replace(/x/g, function() {
886 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
890 //
19.4.1 The Symbol Constructor
891 //
19.4.1.1 Symbol ( description=undefined )
892 function Symbol(description) {
893 if (!(this instanceof Symbol)) return new Symbol(description, secret);
894 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
896 var descString = description === undefined ? undefined : String(description);
898 set_internal(this, '[[SymbolData]]', unique(
128));
899 set_internal(this, '[[Description]]', descString);
901 symbolMap[this] = this;
905 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
906 global.Symbol = Symbol;
908 //
19.4.2 Properties of the Symbol Constructor
910 //
19.4.2.1 Symbol.for (key)
911 define(Symbol, 'for', function for_(key) {
912 var stringKey = String(key);
913 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
914 var e = GlobalSymbolRegistry[i];
915 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
917 var newSymbol = Symbol(key);
918 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
922 //
19.4.2.2 Symbol.hasInstance
923 //
19.4.2.3 Symbol.isConcatSpreadable
925 //
19.4.2.4 Symbol.iterator
926 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
928 //
19.4.2.5 Symbol.keyFor (sym)
929 define(Symbol, 'keyFor', function keyFor(sym) {
930 if (!(sym instanceof Symbol)) throw TypeError();
931 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
932 var e = GlobalSymbolRegistry[i];
933 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
938 //
19.4.2.6 Symbol.match
939 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
941 //
19.4.2.7 Symbol.prototype
943 //
19.4.2.8 Symbol.replace
944 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
946 //
19.4.2.9 Symbol.search
947 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
949 //
19.4.2.10 Symbol.species
951 //
19.4.2.11 Symbol.search
952 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
954 //
19.4.2.12 Symbol.toPrimitive
956 //
19.4.2.13 Symbol.toStringTag
957 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
959 //
19.4.2.14 Symbol.unscopables
961 //
19.4.3 Properties of the Symbol Prototype Object
962 //
19.4.3.1 Symbol.prototype.constructor
964 //
19.4.3.2 Symbol.prototype.toString ( )
965 Object.defineProperty(Symbol.prototype, 'toString', {
966 value: function toString() {
967 var s = strict(this);
968 var desc = s['[[Description]]'];
969 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
971 configurable: true, writeable: true, enumerable: false });
973 //
19.4.3.3 Symbol.prototype.valueOf ( )
974 Object.defineProperty(Symbol.prototype, 'valueOf', {
975 value: function valueOf() {
976 // To prevent automatic string conversion:
979 // Spec has approximately the following:
980 //var s = strict(this);
981 //if (Type(s) === 'symbol') return s;
982 //if (Type(s) !== 'object') throw TypeError();
983 //if (!('[[SymbolData]]' in s)) throw TypeError();
984 //return s['[[SymbolData]]'];
986 configurable: true, writeable: true, enumerable: false });
988 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
989 // (Done later to polyfill partial implementations)
991 //
19.4.4 Properties of Symbol Instances
994 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
996 // Defined here so that other prototypes can reference it
997 //
25.1.2 The %IteratorPrototype% Object
998 var $IteratorPrototype$ = {};
1000 //----------------------------------------
1001 //
6 ECMAScript Data Types and Values
1002 //----------------------------------------
1004 //
6.1 ECMAScript Language Types
1006 // "Type(x)" is used as shorthand for "the type of x"...
1009 case 'undefined': return 'undefined';
1010 case 'boolean': return 'boolean';
1011 case 'number': return 'number';
1012 case 'string': return 'string';
1013 case 'symbol': return 'symbol';
1015 if (v === null) return 'null';
1016 if (v instanceof global.Symbol) return 'symbol';
1021 //
6.1.5.1 Well-Known Symbols
1022 var $$iterator = global.Symbol.iterator,
1023 $$match = global.Symbol.match,
1024 $$replace = global.Symbol.replace,
1025 $$search = global.Symbol.search,
1026 $$split = global.Symbol.split,
1027 $$toStringTag = global.Symbol.toStringTag;
1029 //----------------------------------------
1030 //
7 Abstract Operations
1031 //----------------------------------------
1033 //----------------------------------------
1034 //
7.1 Type Conversion
1035 //----------------------------------------
1037 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1038 // just use valueOf()
1040 //
7.1.2 ToBoolean ( argument )
1041 // just use Boolean()
1043 //
7.1.3 ToNumber ( argument )
1044 // just use Number()
1046 //
7.1.4 ToInteger ( argument )
1047 function ToInteger(n) {
1049 if ($isNaN(n)) return
0;
1050 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1051 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1054 //
7.1.5 ToInt32 ( argument )
1055 function ToInt32(v) { return v
>> 0; }
1057 //
7.1.6 ToUint32 ( argument )
1058 function ToUint32(v) { return v
>>> 0; }
1060 //
7.1.7 ToInt16 ( argument )
1061 function ToInt16(v) { return (v <<
16)
>> 16; }
1063 //
7.1.8 ToUint16 ( argument )
1064 function ToUint16(v) { return v &
0xFFFF; }
1066 //
7.1.9 ToInt8 ( argument )
1067 function ToInt8(v) { return (v <<
24)
>> 24; }
1069 //
7.1.10 ToUint8 ( argument )
1070 function ToUint8(v) { return v &
0xFF; }
1072 //
7.1.11 ToUint8Clamp ( argument )
1073 function ToUint8Clamp(argument) {
1074 var number = Number(argument);
1075 if ($isNaN(number)) return
0;
1076 if (number <=
0) return
0;
1077 if (number
>=
255) return
255;
1078 var f = floor(number);
1079 if ((f +
0.5) < number) return f +
1;
1080 if (number < (f +
0.5)) return f;
1081 if (f %
2) return f +
1;
1085 //
7.1.12 ToString ( argument )
1086 // just use String()
1088 //
7.1.13 ToObject ( argument )
1089 function ToObject(v) {
1090 if (v === null || v === undefined) throw TypeError();
1094 //
7.1.14 ToPropertyKey ( argument )
1095 function ToPropertyKey(v) {
1099 //
7.1.15 ToLength ( argument )
1100 function ToLength(v) {
1101 var len = ToInteger(v);
1102 if (len <=
0) return
0;
1103 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1104 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1107 //
7.1.16 CanonicalNumericIndexString ( argument )
1109 //----------------------------------------
1110 //
7.2 Testing and Comparison Operations
1111 //----------------------------------------
1113 //
7.2.1 RequireObjectCoercible ( argument )
1114 //
7.2.2 IsArray ( argument )
1116 //
7.2.3 IsCallable ( argument )
1117 function IsCallable(o) { return typeof o === 'function'; }
1119 //
7.2.4 IsConstructor ( argument )
1120 function IsConstructor(o) {
1121 // Hacks for Safari
7 TypedArray XXXConstructor objects
1122 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1123 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1124 // TODO: Can this be improved on?
1125 return typeof o === 'function';
1128 //
7.2.5 IsExtensible (O)
1129 //
7.2.6 IsInteger ( argument )
1131 //
7.2.7 IsPropertyKey ( argument )
1132 function IsPropertyKey(argument) {
1133 if (Type(argument) === 'string') return true;
1134 if (Type(argument) === 'symbol') return true;
1138 //
7.2.8 IsRegExp ( argument )
1139 //
7.2.5 IsConstructor ( argument )
1141 //
7.2.9 SameValue(x, y)
1142 function SameValue(x, y) {
1143 if (typeof x !== typeof y) return false;
1148 if (x !== x && y !== y) return true;
1149 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1159 //
7.2.10 SameValueZero(x, y)
1160 function SameValueZero(x, y) {
1161 if (typeof x !== typeof y) return false;
1166 if (x !== x && y !== y) return true;
1176 //----------------------------------------
1177 //
7.3 Operations on Objects
1178 //----------------------------------------
1181 // - just use o.p or o[p]
1183 //
7.3.2 GetV (V, P)
1184 function GetV(v, p) {
1185 var o = ToObject(v);
1189 //
7.3.3 Set (O, P, V, Throw)
1190 // - just use o.p = v or o[p] = v
1195 //
7.3.9 GetMethod (O, P)
1196 function GetMethod(o, p) {
1197 var func = GetV(o, p);
1198 if (func === undefined || func === null) return undefined;
1199 if (!IsCallable(func)) throw TypeError();
1203 //
7.3.10 HasProperty (O, P)
1204 function HasProperty(o, p) {
1206 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1207 if (Type(o) !== 'object') return false;
1208 o = Object.getPrototypeOf(o);
1213 //
7.3.11 HasOwnProperty (O, P)
1214 function HasOwnProperty(o, p) {
1215 return Object.prototype.hasOwnProperty.call(o, p);
1218 //----------------------------------------
1219 //
7.4 Operations on Iterator Objects
1220 //----------------------------------------
1222 //
7.4.1 GetIterator ( obj, method )
1223 function GetIterator(obj, method) {
1224 if (arguments.length <
2)
1225 method = GetMethod(obj, $$iterator);
1226 var iterator = method.call(obj);
1227 if (Type(iterator) !== 'object') throw TypeError();
1231 //
7.4.2 IteratorNext ( iterator, value )
1232 function IteratorNext(iterator, value) {
1233 if (arguments.length <
2)
1234 var result = iterator.next();
1236 result = iterator.next(value);
1237 if (Type(result) !== 'object') throw TypeError();
1241 //
7.4.3 IteratorComplete ( iterResult )
1242 function IteratorComplete(iterResult) {
1243 console.assert(Type(iterResult) === 'object');
1244 return Boolean(iterResult.done);
1247 //
7.4.4 IteratorValue ( iterResult )
1248 function IteratorValue(iterResult) {
1249 console.assert(Type(iterResult) === 'object');
1250 return iterResult.value;
1253 //
7.4.5 IteratorStep ( iterator )
1254 function IteratorStep( iterator, value ) {
1255 var result = IteratorNext(iterator, value);
1256 var done = result['done'];
1257 if (Boolean(done) === true) return false;
1261 //
7.4.6 IteratorClose( iterator, completion )
1262 function IteratorClose( iterator, completion ) {
1263 console.assert(Type(iterator) === 'object');
1264 var _return = GetMethod(iterator, 'return');
1265 if (_return === undefined) return completion;
1267 var innerResult = _return[iterator]();
1269 // TODO: If completion.[[type]] is throw, return completion
1272 if (Type(innerResult) !== 'object') throw TypeError();
1276 //
7.4.7 CreateIterResultObject (value, done)
1277 function CreateIterResultObject(value, done) {
1278 console.assert(Type(done) === 'boolean');
1280 obj["value"] = value;
1285 //
7.4.8 CreateListIterator (list)
1286 //
7.4.8.1 ListIterator next( )
1287 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1288 //
7.4.9.1 CompoundIterator next( )
1290 //----------------------------------------
1291 //
8 Executable Code and Execution Contexts
1292 //----------------------------------------
1294 //----------------------------------------
1295 //
8.4 Jobs and Job Queues
1296 //----------------------------------------
1298 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1299 function EnqueueJob(queueName, job, args) {
1300 var fn = function() { job.apply(undefined, args); };
1304 //
8.4.2 NextJob result
1305 function NextJob(result) {
1309 //----------------------------------------
1310 //
9 Ordinary and Exotic Objects Behaviors
1311 //----------------------------------------
1313 //
9.1.11 [[Enumerate]] ()
1314 function Enumerate(obj) {
1316 if (Object(obj) !== obj) return e;
1317 var visited = new Set;
1318 while (obj !== null) {
1319 Object.getOwnPropertyNames(obj).forEach(function(name) {
1320 if (!visited.has(name)) {
1321 var desc = Object.getOwnPropertyDescriptor(obj, name);
1324 if (desc.enumerable) e.push(name);
1328 obj = Object.getPrototypeOf(obj);
1330 return e[$$iterator]();
1333 //
9.1.12 [[OwnPropertyKeys]] ( )
1334 function OwnPropertyKeys(o) {
1335 return Object.getOwnPropertyNames(o);
1338 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1339 function ObjectCreate(proto, internalSlotsList) {
1340 return Object.create(proto, internalSlotsList);
1343 // ---------------------------------------
1344 //
19 Fundamental Objects
1345 // ---------------------------------------
1347 // ---------------------------------------
1348 //
19.1 Object Objects
1349 // ---------------------------------------
1351 //
19.1.1 The Object Constructor
1352 //
19.1.1.1 Object ( [ value ] )
1353 //
19.1.2 Properties of the Object Constructor
1354 //
19.1.2.1 Object.assign ( target, ...sources )
1357 function assign(target, /*...*/sources) {
1358 var to = ToObject(target);
1359 if (arguments.length <
2) return to;
1361 var sourcesIndex =
1;
1362 while (sourcesIndex < arguments.length) {
1363 var nextSource = arguments[sourcesIndex++];
1364 if (nextSource === undefined || nextSource === null) {
1367 var from = ToObject(nextSource);
1368 keys = OwnPropertyKeys(from);
1370 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1371 var nextKey = keys[keysIndex];
1372 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1373 if (desc !== undefined && desc.enumerable) {
1374 var propValue = from[nextKey];
1375 to[nextKey] = propValue;
1382 //
19.1.2.2 Object.create ( O [ , Properties ] )
1383 //
19.1.2.3 Object.defineProperties ( O, Properties )
1384 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1385 //
19.1.2.5 Object.freeze ( O )
1386 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1389 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1390 $getOwnPropertyNames = Object.getOwnPropertyNames,
1391 $keys = Object.keys,
1392 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1394 function isStringKey(k) { return !symbolForKey(k); }
1396 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1398 Object, 'getOwnPropertyNames',
1399 function getOwnPropertyNames(o) {
1400 if (Object.prototype.toString.call(o) === '[object Window]') {
1401 // Workaround for cross-realm calling by IE itself.
1402 // https://github.com/inexorabletash/polyfill/issues/
96
1404 return $getOwnPropertyNames(o).filter(isStringKey);
1406 return $window_names.slice();
1409 return $getOwnPropertyNames(o).filter(isStringKey);
1412 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1414 Object, 'getOwnPropertySymbols',
1415 function getOwnPropertySymbols(o) {
1416 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1419 //
19.1.2.14 Object.keys ( O )
1423 return $keys(o).filter(isStringKey);
1427 //
19.1.2.9 Object.getPrototypeOf ( O )
1428 //
19.1.2.10 Object.is ( value1, value2 )
1431 function is(value1, value2) {
1432 return SameValue(value1, value2);
1435 //
19.1.2.11 Object.isExtensible ( O )
1436 //
19.1.2.12 Object.isFrozen ( O )
1437 //
19.1.2.13 Object.isSealed ( O )
1439 //
19.1.2.14 Object.keys ( O )
1442 //
19.1.2.15 Object.preventExtensions ( O )
1443 //
19.1.2.16 Object.prototype
1444 //
19.1.2.17 Object.seal ( O )
1446 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1448 Object, 'setPrototypeOf',
1449 function setPrototypeOf(o, proto) {
1450 if (Type(o) !== 'object') throw TypeError();
1451 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1452 o.__proto__ = proto;
1457 //
19.1.3 Properties of the Object Prototype Object
1458 //
19.1.3.1 Object.prototype.constructor
1459 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1460 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1461 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1462 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1463 //
19.1.3.6 Object.prototype.toString ( )
1464 hook(Object.prototype, 'toString',
1466 var o = strict(this);
1467 if (o === Object(o) && $$toStringTag in o) {
1468 return '[object ' + o[$$toStringTag] + ']';
1473 //
19.1.3.7 Object.prototype.valueOf ( )
1474 //
19.1.4 Properties of Object Instances
1476 // ---------------------------------------
1477 //
19.2 Function Objects
1478 // ---------------------------------------
1480 //
19.2.1 The Function Constructor
1481 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1482 //
19.2.2 Properties of the Function Constructor
1483 //
19.2.2.1 Function.length
1484 //
19.2.2.2 Function.prototype
1485 //
19.2.3 Properties of the Function Prototype Object
1486 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1487 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1488 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1489 //
19.2.3.4 Function.prototype.constructor
1490 //
19.2.3.5 Function.prototype.toString ( )
1491 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1492 //
19.2.4 Function Instances
1495 //
19.2.4.3 prototype
1497 // (No polyfillable changes from ES5)
1499 // ---------------------------------------
1500 //
19.3 Boolean Objects
1501 // ---------------------------------------
1503 //
19.3.1 The Boolean Constructor
1504 //
19.3.1.1 Boolean ( value )
1505 //
19.3.2 Properties of the Boolean Constructor
1506 //
19.3.2.1 Boolean.prototype
1507 //
19.3.3 Properties of the Boolean Prototype Object
1508 //
19.3.3.1 Boolean.prototype.constructor
1509 //
19.3.3.2 Boolean.prototype.toString ( )
1510 //
19.3.3.3 Boolean.prototype.valueOf ( )
1511 //
19.3.4 Properties of Boolean Instances
1513 // (No polyfillable changes from ES5)
1515 // ---------------------------------------
1516 //
19.4 Symbol Objects
1517 // ---------------------------------------
1519 // Moved earlier in this script, so that other polyfills can depend on them.
1521 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1522 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1524 // ---------------------------------------
1525 //
19.5 Error Objects
1526 // ---------------------------------------
1528 //
19.5.1 The Error Constructor
1529 //
19.5.1.1 Error ( message )
1530 //
19.5.1.2 new Error( ...argumentsList )
1531 //
19.5.2 Properties of the Error Constructor
1532 //
19.5.2.1 Error.prototype
1533 //
19.5.3 Properties of the Error Prototype Object
1534 //
19.5.3.1 Error.prototype.constructor
1535 //
19.5.3.2 Error.prototype.message
1536 //
19.5.3.3 Error.prototype.name
1537 //
19.5.3.4 Error.prototype.toString ( )
1538 //
19.5.4 Properties of Error Instances
1539 //
19.5.5 Native Error Types Used in This Standard
1540 //
19.5.5.1 EvalError
1541 //
19.5.5.2 RangeError
1542 //
19.5.5.3 ReferenceError
1543 //
19.5.5.4 SyntaxError
1544 //
19.5.5.5 TypeError
1545 //
19.5.5.6 URIError
1546 //
19.5.6 NativeError Object Structure
1547 //
19.5.6.1 NativeError Constructors
1548 //
19.5.6.1.1 NativeError ( message )
1549 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1550 //
19.5.6.2 Properties of the NativeError Constructors
1551 //
19.5.6.2.1 NativeError.prototype
1552 //
19.5.6.3 Properties of the NativeError Prototype Objects
1553 //
19.5.6.4 Properties of NativeError Instances
1555 // (No polyfillable changes from ES5)
1557 // ---------------------------------------
1558 //
20 Numbers and Dates
1559 // ---------------------------------------
1561 // ---------------------------------------
1562 //
20.1 Number Objects
1563 // ---------------------------------------
1565 //
20.1.1 The Number Constructor
1566 //
20.1.1.1 Number ( [ value ] )
1567 //
20.1.1.2 new Number ( ...argumentsList )
1568 //
20.1.2 Properties of the Number Constructor
1570 //
20.1.2.1 Number.EPSILON
1575 for (next =
1;
1 + next !==
1; next = next /
2)
1580 //
20.1.2.2 Number.isFinite ( number )
1583 function isFinite(number) {
1584 if (Type(number) !== 'number') return false;
1585 if (number !== number || number === +Infinity || number === -Infinity) return false;
1589 //
20.1.2.3 Number.isInteger ( number )
1591 Number, 'isInteger',
1592 function isInteger(number) {
1593 if (Type(number) !== 'number') return false;
1594 if (number !== number || number === +Infinity || number === -Infinity) return false;
1595 var integer = ToInteger(number);
1596 if (integer !== number) return false;
1600 //
20.1.2.4 Number.isNaN ( number )
1603 function isNaN(number) {
1604 if (Type(number) !== 'number') return false;
1605 if (number !== number) return true;
1609 //
20.1.2.5 Number.isSafeInteger ( number )
1611 Number, 'isSafeInteger',
1612 function isSafeInteger(number) {
1613 if (Type(number) !== 'number') return false;
1614 if (number !== number || number === +Infinity || number === -Infinity) return false;
1615 var integer = ToInteger(number);
1616 if (integer !== number) return false;
1617 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1622 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1624 Number, 'MAX_SAFE_INTEGER',
1625 9007199254740991); //
2^
53-
1
1627 //
20.1.2.7 Number.MAX_VALUE
1629 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1631 Number, 'MIN_SAFE_INTEGER',
1632 -
9007199254740991); // -
2^
53+
1
1634 //
20.1.2.9 Number.MIN_VALUE
1635 //
20.1.2.10 Number.NaN
1636 //
20.1.2.11 Number.NEGATIVE_INFINITY
1638 //
20.1.2.12 Number.parseFloat ( string )
1639 define(Number, 'parseFloat', $parseFloat);
1641 //
20.1.2.13 Number.parseInt ( string, radix )
1642 define(Number, 'parseInt', $parseInt);
1644 //
20.1.2.14 Number.POSITIVE_INFINITY
1645 //
20.1.2.15 Number.prototype
1647 //
20.1.3 Properties of the Number Prototype Object
1648 //
20.1.3.1 Number.prototype.constructor
1649 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1650 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1651 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1652 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1653 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1654 //
20.1.3.7 Number.prototype.valueOf ( )
1655 //
20.1.4 Properties of Number Instances
1657 // ---------------------------------------
1658 //
20.2 The Math Object
1659 // ---------------------------------------
1661 //
20.2.1 Value Properties of the Math Object
1663 //
20.2.1.2 Math.LN10
1664 //
20.2.1.3 Math.LN2
1665 //
20.2.1.4 Math.LOG10E
1666 //
20.2.1.5 Math.LOG2E
1668 //
20.2.1.7 Math.SQRT1_2
1669 //
20.2.1.8 Math.SQRT2
1671 //
20.2.1.9 Math [ @@toStringTag ]
1672 define(Math, $$toStringTag, 'Math');
1674 //
20.2.2 Function Properties of the Math Object
1675 //
20.2.2.1 Math.abs ( x )
1676 //
20.2.2.2 Math.acos ( x )
1678 //
20.2.2.3 Math.acosh(x)
1683 return log(x + sqrt(x * x -
1));
1686 //
20.2.2.4 Math.asin ( x )
1688 //
20.2.2.5 Math.asinh( x )
1693 if (SameValue(x, -
0)) {
1696 var s = sqrt(x * x +
1);
1697 return (s === -x) ? log(
0) : log(x + s);
1700 //
20.2.2.6 Math.atan ( x )
1702 //
20.2.2.7 Math.atanh( x )
1707 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1710 //
20.2.2.8 Math.atan2 ( y, x )
1712 //
20.2.2.9 Math.cbrt ( x )
1720 var r = pow(abs(x),
1/
3);
1722 return r + (r * (t-r) / (
2*r + t));
1725 //
20.2.2.10 Math.ceil ( x )
1727 //
20.2.2.11 Math.clz32 ( x )
1732 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1733 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1736 return x &
0xff000000 ? clz8(x
>> 24) :
1737 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1738 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1743 //
20.2.2.12 Math.cos ( x )
1745 //
20.2.2.13 Math.cosh ( x )
1750 return (pow(E, x) + pow(E, -x)) /
2;
1753 //
20.2.2.14 Math.exp ( x )
1755 //
20.2.2.15 Math.expm1 ( x )
1760 // from: http://www.johndcook.com/cpp_log1p.html
1761 if (SameValue(x, -
0)) {
1763 } else if (abs(x) <
1e-5) {
1764 return x +
0.5 * x * x; // two terms of Taylor expansion
1770 //
20.2.2.16 Math.floor ( x )
1772 //
20.2.2.17 Math.fround ( x )
1775 function fround(x) {
1779 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1782 return (new Float32Array([x]))[
0];
1785 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1790 var m =
0, sawNaN = false;
1791 for (var i =
0; i < arguments.length; ++i) {
1792 var n = abs(Number(arguments[i]));
1793 if (n === Infinity) return n;
1794 if (n !== n) sawNaN = true;
1798 if (sawNaN) return NaN;
1799 if (m ===
0) return +
0;
1801 for (i =
0; i < values.length; ++i) {
1802 var r = values[i] / m;
1805 return m * sqrt(sum);
1808 //
20.2.2.19 Math.imul ( x, y )
1811 function imul(x, y) {
1812 var a = ToUint32(x);
1813 var b = ToUint32(y);
1814 // (slow but accurate)
1815 var ah = (a
>>> 16) &
0xffff;
1816 var al = a &
0xffff;
1817 var bh = (b
>>> 16) &
0xffff;
1818 var bl = b &
0xffff;
1819 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1820 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1823 //
20.2.2.20 Math.log ( x )
1825 //
20.2.2.21 Math.log1p ( x )
1830 // from: http://www.johndcook.com/cpp_expm1.html
1833 } else if (SameValue(x, -
0)) {
1835 } else if (abs(x)
> 1e-4) {
1838 return (-
0.5 * x +
1) * x;
1842 //
20.2.2.22 Math.log10 ( x )
1847 return log(x) * LOG10E;
1850 //
20.2.2.23 Math.log2 ( x )
1855 return log(x) * LOG2E;
1858 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1859 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1860 //
20.2.2.26 Math.pow ( x, y )
1861 //
20.2.2.27 Math.random ( )
1862 //
20.2.2.28 Math.round ( x )
1864 //
20.2.2.29 Math.sign(x)
1869 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1872 //
20.2.2.30 Math.sin ( x )
1874 //
20.2.2.31 Math.sinh( x )
1879 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1882 //
20.2.2.32 Math.sqrt ( x )
1883 //
20.2.2.33 Math.tan ( x )
1885 //
20.2.2.34 Math.tanh ( x )
1890 var n = pow(E,
2 * x) -
1,
1891 d = pow(E,
2 * x) +
1;
1892 if (SameValue(x, -
0))
1894 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
1897 //
20.2.2.35 Math.trunc ( x )
1902 return $isNaN(x) ? NaN :
1903 x <
0 ? ceil(x) : floor(x);
1906 // ---------------------------------------
1907 //
20.3 Date Objects
1908 // ---------------------------------------
1910 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
1911 //
20.3.1.1 Time Values and Time Range
1912 //
20.3.1.2 Day Number and Time within Day
1913 //
20.3.1.3 Year Number
1914 //
20.3.1.4 Month Number
1915 //
20.3.1.5 Date Number
1916 //
20.3.1.6 Week Day
1917 //
20.3.1.7 Local Time Zone Adjustment
1918 //
20.3.1.8 Daylight Saving Time Adjustment
1919 //
20.3.1.9 Local Time
1920 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
1921 //
20.3.1.11 MakeTime (hour, min, sec, ms)
1922 //
20.3.1.12 MakeDay (year, month, date)
1923 //
20.3.1.13 MakeDate (day, time)
1924 //
20.3.1.14 TimeClip (time)
1925 //
20.3.1.15 Date Time String Format
1926 //
20.3.1.15.1 Extended years
1927 //
20.3.2 The Date Constructor
1928 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1929 //
20.3.2.2 Date ( value )
1930 //
20.3.2.3 Date ( )
1931 //
20.3.3 Properties of the Date Constructor
1932 //
20.3.3.1 Date.now ( )
1933 //
20.3.3.2 Date.parse (string)
1934 //
20.3.3.3 Date.prototype
1935 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1936 //
20.3.4 Properties of the Date Prototype Object
1937 //
20.3.4.1 Date.prototype.constructor
1938 //
20.3.4.2 Date.prototype.getDate ( )
1939 //
20.3.4.3 Date.prototype.getDay ( )
1940 //
20.3.4.4 Date.prototype.getFullYear ( )
1941 //
20.3.4.5 Date.prototype.getHours ( )
1942 //
20.3.4.6 Date.prototype.getMilliseconds ( )
1943 //
20.3.4.7 Date.prototype.getMinutes ( )
1944 //
20.3.4.8 Date.prototype.getMonth ( )
1945 //
20.3.4.9 Date.prototype.getSeconds ( )
1946 //
20.3.4.10 Date.prototype.getTime ( )
1947 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
1948 //
20.3.4.12 Date.prototype.getUTCDate ( )
1949 //
20.3.4.13 Date.prototype.getUTCDay ( )
1950 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
1951 //
20.3.4.15 Date.prototype.getUTCHours ( )
1952 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
1953 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
1954 //
20.3.4.18 Date.prototype.getUTCMonth ( )
1955 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
1956 //
20.3.4.20 Date.prototype.setDate ( date )
1957 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
1958 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
1959 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
1960 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
1961 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
1962 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
1963 //
20.3.4.27 Date.prototype.setTime ( time )
1964 //
20.3.4.28 Date.prototype.setUTCDate ( date )
1965 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
1966 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
1967 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
1968 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
1969 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
1970 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
1971 //
20.3.4.35 Date.prototype.toDateString ( )
1972 //
20.3.4.36 Date.prototype.toISOString ( )
1973 //
20.3.4.37 Date.prototype.toJSON ( key )
1974 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
1975 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1976 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
1977 //
20.3.4.41 Date.prototype.toString ( )
1978 //
20.3.4.42 Date.prototype.toTimeString ( )
1979 //
20.3.4.43 Date.prototype.toUTCString ( )
1980 //
20.3.4.44 Date.prototype.valueOf ( )
1981 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
1982 //
20.3.5 Properties of Date Instances
1984 // (No polyfillable changes from ES5)
1986 // ---------------------------------------
1987 //
21 Text Processing
1988 // ---------------------------------------
1990 var string_regexp_dispatch = (function() {
1991 var faux = {}, secret = Symbol();
1992 faux[Symbol.match] = function() { return secret; };
1993 return (
"").match(faux) === secret;
1996 //
21.1 String Objects
1997 //
21.1.1 The String Constructor
1998 //
21.1.1.1 String ( value )
1999 //
21.1.2 Properties of the String Constructor
2000 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
2002 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
2004 String, 'fromCodePoint',
2005 function fromCodePoint(/*...codePoints*/) {
2006 var codePoints = arguments,
2007 length = codePoints.length,
2010 while (nextIndex < length) {
2011 var next = codePoints[nextIndex];
2012 var nextCP = Number(next);
2013 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2014 nextCP <
0 || nextCP
> 0x10FFFF) {
2015 throw RangeError('Invalid code point ' + nextCP);
2017 if (nextCP <
0x10000) {
2018 elements.push(String.fromCharCode(nextCP));
2021 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2022 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2026 return elements.join('');
2029 //
21.1.2.3 String.prototype
2031 //
21.1.2.4 String.raw ( template , ...substitutions )
2034 function raw(template /*, ...substitutions*/) {
2035 var substitutions = [].slice.call(arguments,
1);
2037 var cooked = Object(template);
2038 var rawValue = cooked['raw'];
2039 var raw = Object(rawValue);
2040 var len = raw['length'];
2041 var literalSegments = ToLength(len);
2042 if (literalSegments <=
0) return '';
2043 var stringElements = [];
2046 var next = raw[nextIndex];
2047 var nextSeg = String(next);
2048 stringElements.push(nextSeg);
2049 if (nextIndex +
1 === literalSegments)
2050 return stringElements.join('');
2051 next = substitutions[nextIndex];
2052 var nextSub = String(next);
2053 stringElements.push(nextSub);
2054 nextIndex = nextIndex +
1;
2058 // See https://githib.com/inexorabletash/uate for a more useful version.
2060 //
21.1.3 Properties of the String Prototype Object
2061 //
21.1.3.1 String.prototype.charAt ( pos )
2062 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2064 //
21.1.3.3 String.prototype.codePointAt ( pos )
2066 String.prototype, 'codePointAt',
2067 function codePointAt(pos) {
2068 var o = strict(this);
2070 var position = ToInteger(pos);
2071 var size = s.length;
2072 if (position <
0 || position
>= size) return undefined;
2073 var first = s.charCodeAt(position);
2074 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2075 var second = s.charCodeAt(position +
1);
2076 if (second <
0xDC00 || second
> 0xDFFF) return first;
2077 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2080 //
21.1.3.4 String.prototype.concat ( ...args )
2081 //
21.1.3.5 String.prototype.constructor
2083 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2085 String.prototype, 'endsWith',
2086 function endsWith(searchString) {
2087 var endPosition = arguments[
1];
2089 var o = strict(this);
2091 var searchStr = String(searchString);
2093 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2094 var end = min(max(pos,
0), len);
2095 var searchLength = searchStr.length;
2096 var start = end - searchLength;
2097 if (start <
0) return false;
2098 if (s.substring(start, start + searchLength) === searchStr) return true;
2102 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2104 String.prototype, 'includes',
2105 function includes(searchString) {
2106 var position = arguments[
1];
2108 var o = strict(this);
2110 var searchStr = String(searchString);
2111 var pos = ToInteger(position);
2113 var start = min(max(pos,
0), len);
2114 return s.indexOf(searchStr, start) !== -
1;
2117 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2118 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2119 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2120 //
21.1.3.11 String.prototype.match ( regexp )
2122 String.prototype, 'match',
2123 function match(regexp) {
2124 var o = strict(this);
2126 if (HasProperty(regexp, $$match)) var rx = regexp;
2127 else rx = new RegExp(regexp);
2128 return rx[$$match](s);
2129 }, !string_regexp_dispatch);
2131 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2133 // Not practical due to table sizes; if needed, pull in:
2134 // https://github.com/walling/unorm/
2136 //
21.1.3.13 String.prototype.repeat ( count )
2138 String.prototype, 'repeat',
2139 function repeat(count) {
2140 var o = strict(this);
2142 var n = ToInteger(count);
2143 if (n <
0) throw RangeError();
2144 if (n === Infinity) throw RangeError();
2145 var t = new Array(n +
1).join(s);
2149 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2151 String.prototype, 'replace',
2152 function replace(searchValue, replaceValue) {
2153 var o = strict(this);
2154 if (HasProperty(searchValue, $$replace))
2155 return searchValue[$$replace](o, replaceValue);
2156 return orig_replace.call(o, searchValue, replaceValue);
2157 }, !string_regexp_dispatch);
2159 //
21.1.3.15 String.prototype.search ( regexp )
2161 String.prototype, 'search',
2162 function search(regexp) {
2163 var o = strict(this);
2164 var string = String(o);
2165 if (HasProperty(regexp, $$search)) var rx = regexp;
2166 else rx = new RegExp(regexp);
2167 return rx[$$search](string);
2168 }, !string_regexp_dispatch);
2170 //
21.1.3.16 String.prototype.slice ( start, end )
2171 //
21.1.3.17 String.prototype.split ( separator, limit )
2173 String.prototype, 'split',
2174 function split(separator, limit) {
2175 var o = strict(this);
2176 if (HasProperty(separator, $$split))
2177 return separator[$$split](o, limit);
2178 return orig_split.call(o, separator, limit);
2179 }, !string_regexp_dispatch);
2181 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2183 String.prototype, 'startsWith',
2184 function startsWith(searchString) {
2185 var position = arguments[
1];
2187 var o = strict(this);
2189 var searchStr = String(searchString);
2190 var pos = ToInteger(position);
2192 var start = min(max(pos,
0), len);
2193 var searchLength = searchStr.length;
2194 if (searchLength + start
> len) return false;
2195 if (s.substring(start, start + searchLength) === searchStr) return true;
2199 //
21.1.3.19 String.prototype.substring ( start, end )
2200 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2201 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2202 //
21.1.3.22 String.prototype.toLowerCase ( )
2203 //
21.1.3.23 String.prototype.toString ( )
2204 //
21.1.3.24 String.prototype.toUpperCase ( )
2205 //
21.1.3.25 String.prototype.trim ( )
2206 //
21.1.3.26 String.prototype.valueOf ( )
2208 //
21.1.3.27 String.prototype [ @@iterator ]( )
2210 String.prototype, $$iterator,
2211 function entries() {
2212 return CreateStringIterator(this, 'value');
2215 //
21.1.4 Properties of String Instances
2218 //
21.1.5 String Iterator Objects
2220 function StringIterator() {}
2222 //
21.1.5.1 CreateStringIterator Abstract Operation
2223 function CreateStringIterator(string, kind) {
2224 var s = String(string);
2225 var iterator = new StringIterator;
2226 set_internal(iterator, '[[IteratedString]]', s);
2227 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2228 set_internal(iterator, '[[StringIterationKind]]', kind);
2232 //
21.1.5.2 The %StringIteratorPrototype% Object
2233 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2234 StringIterator.prototype = $StringIteratorPrototype$;
2236 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2238 $StringIteratorPrototype$, 'next',
2240 var o = ToObject(this);
2241 var s = String(o['[[IteratedString]]']),
2242 index = o['[[StringIteratorNextIndex]]'],
2245 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2246 return CreateIterResultObject(undefined, true);
2248 var cp = s.codePointAt(index);
2249 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2250 return CreateIterResultObject(String.fromCodePoint(cp), false);
2253 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2254 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2256 //
21.1.5.3 Properties of String Iterator Instances
2258 // ---------------------------------------
2259 //
21.2 RegExp (Regular Expression) Objects
2260 // ---------------------------------------
2263 //
21.2.2 Pattern Semantics
2264 //
21.2.2.1 Notation
2266 //
21.2.2.3 Disjunction
2267 //
21.2.2.4 Alternative
2269 //
21.2.2.6 Assertion
2270 //
21.2.2.7 Quantifier
2272 //
21.2.2.9 AtomEscape
2273 //
21.2.2.10 CharacterEscape
2274 //
21.2.2.11 DecimalEscape
2275 //
21.2.2.12 CharacterClassEscape
2276 //
21.2.2.13 CharacterClass
2277 //
21.2.2.14 ClassRanges
2278 //
21.2.2.15 NonemptyClassRanges
2279 //
21.2.2.16 NonemptyClassRangesNoDash
2280 //
21.2.2.17 ClassAtom
2281 //
21.2.2.18 ClassAtomNoDash
2282 //
21.2.2.19 ClassEscape
2283 //
21.2.3 The RegExp Constructor
2284 //
21.2.3.1 RegExp ( pattern, flags )
2285 //
21.2.3.2 new RegExp( ...argumentsList )
2286 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2287 //
21.2.4 Properties of the RegExp Constructor
2288 //
21.2.4.1 RegExp.prototype
2289 //
21.2.5 Properties of the RegExp Prototype Object
2290 //
21.2.5.1 RegExp.prototype.constructor
2291 //
21.2.5.2 RegExp.prototype.exec ( string )
2293 //
21.2.5.3 get RegExp.prototype.flags
2294 if (!('flags' in RegExp.prototype)) {
2295 Object.defineProperty(
2296 RegExp.prototype, 'flags', {
2298 var s = String(this);
2299 return s.substring(s.lastIndexOf('/') +
1);
2304 //
21.2.5.4 get RegExp.prototype.global
2305 //
21.2.5.5 get RegExp.prototype.ignoreCase
2307 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2308 define(RegExp.prototype, $$match, function(string) {
2309 var o = strict(this);
2310 return orig_match.call(string, o);
2313 //
21.2.5.7 get RegExp.prototype.multiline
2315 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2316 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2317 var o = strict(this);
2318 return orig_replace.call(string, o, replaceValue);
2321 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2322 define(RegExp.prototype, $$search, function(string) {
2323 var o = strict(this);
2324 return orig_search.call(string, o);
2327 //
21.2.5.10 get RegExp.prototype.source
2329 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2330 define(RegExp.prototype, $$split, function(string, limit) {
2331 var o = strict(this);
2332 return orig_split.call(string, o, limit);
2335 //
21.2.5.12 get RegExp.prototype.sticky
2336 //
21.2.5.13 RegExp.prototype.test( S )
2337 //
21.2.5.14 RegExp.prototype.toString ( )
2338 //
21.2.5.15 get RegExp.prototype.unicode
2340 //
21.2.6 Properties of RegExp Instances
2341 //
21.2.6.1 lastIndex
2343 // (No polyfillable changes from ES5)
2345 // ---------------------------------------
2346 //
22 Indexed Collections
2347 // ---------------------------------------
2349 // ---------------------------------------
2350 //
22.1 Array Objects
2351 // ---------------------------------------
2353 //
22.1.1 The Array Constructor
2354 //
22.1.1.1 Array ( )
2355 //
22.1.1.2 Array (len)
2356 //
22.1.1.3 Array (...items )
2358 //
22.1.2 Properties of the Array Constructor
2360 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2363 function from(items) {
2364 var mapfn = arguments[
1];
2365 var thisArg = arguments[
2];
2367 var c = strict(this);
2368 if (mapfn === undefined) {
2369 var mapping = false;
2371 if (!IsCallable(mapfn)) throw TypeError();
2375 var usingIterator = GetMethod(items, $$iterator);
2376 if (usingIterator !== undefined) {
2377 if (IsConstructor(c)) {
2382 var iterator = GetIterator(items, usingIterator);
2385 var next = IteratorStep(iterator);
2386 if (next === false) {
2390 var nextValue = IteratorValue(next);
2392 var mappedValue = mapfn.call(t, nextValue);
2394 mappedValue = nextValue;
2399 var arrayLike = ToObject(items);
2400 var lenValue = arrayLike.length;
2401 var len = ToLength(lenValue);
2402 if (IsConstructor(c)) {
2409 var kValue = arrayLike[k];
2411 mappedValue = mapfn.call(t, kValue, k);
2413 mappedValue = kValue;
2421 //
22.1.2.2 Array.isArray ( arg )
2423 //
22.1.2.3 Array.of ( ...items )
2427 var items = arguments;
2429 var lenValue = items.length;
2430 var len = ToUint32(lenValue);
2431 var c = strict(this), a;
2432 if (IsConstructor(c)) {
2447 //
22.1.2.4 Array.prototype
2448 //
22.1.2.5 get Array [ @@species ]
2449 //
22.1.3 Properties of the Array Prototype Object
2450 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2451 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2452 //
22.1.3.2 Array.prototype.constructor
2453 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2455 Array.prototype, 'copyWithin',
2456 function copyWithin(target, start/*, end*/) {
2457 var end = arguments[
2];
2459 var o = ToObject(this);
2460 var lenVal = o.length;
2461 var len = ToLength(lenVal);
2463 var relativeTarget = ToInteger(target);
2465 if (relativeTarget <
0)
2466 to = max(len + relativeTarget,
0);
2468 to = min(relativeTarget, len);
2469 var relativeStart = ToInteger(start);
2471 if (relativeStart <
0)
2472 from = max(len + relativeStart,
0);
2474 from = min(relativeStart, len);
2476 if (end === undefined)
2479 relativeEnd = ToInteger(end);
2481 if (relativeEnd <
0)
2482 final = max(len + relativeEnd,
0);
2484 final = min(relativeEnd, len);
2485 var count = min(final - from, len - to);
2487 if (from < to && to < from + count) {
2489 from = from + count -
1;
2490 to = to + count -
1;
2495 var fromKey = String(from);
2496 var toKey = String(to);
2497 var fromPresent = HasProperty(o, fromKey);
2499 var fromVal = o[fromKey];
2504 from = from + direction;
2505 to = to + direction;
2511 //
22.1.3.4 Array.prototype.entries ( )
2512 var nativeArrayIteratorMethods =
2513 ('entries' in Array.prototype && 'next' in [].entries());
2516 Array.prototype, 'entries',
2517 function entries() {
2518 return CreateArrayIterator(this, 'key+value');
2519 }, !nativeArrayIteratorMethods);
2521 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2523 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2525 Array.prototype, 'fill',
2526 function fill(value/*, start, end*/) {
2527 var start = arguments[
1],
2530 var o = ToObject(this);
2531 var lenVal = o.length;
2532 var len = ToLength(lenVal);
2534 var relativeStart = ToInteger(start);
2536 if (relativeStart <
0)
2537 k = max((len + relativeStart),
0);
2539 k = min(relativeStart, len);
2541 if (end === undefined)
2544 relativeEnd = ToInteger(end);
2546 if (relativeEnd <
0)
2547 final = max((len + relativeEnd),
0);
2549 final = min(relativeEnd, len);
2558 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2560 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2562 Array.prototype, 'find',
2563 function find(predicate) {
2564 var o = ToObject(this);
2565 var lenValue = o.length;
2566 var len = ToInteger(lenValue);
2567 if (!IsCallable(predicate)) throw TypeError();
2568 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2572 var kPresent = HasProperty(o, pk);
2575 var testResult = predicate.call(t, kValue, k, o);
2576 if (Boolean(testResult)) {
2585 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2587 Array.prototype, 'findIndex',
2588 function findIndex(predicate) {
2589 var o = ToObject(this);
2590 var lenValue = o.length;
2591 var len = ToLength(lenValue);
2592 if (!IsCallable(predicate)) throw TypeError();
2593 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2597 var kPresent = HasProperty(o, pk);
2600 var testResult = predicate.call(t, kValue, k, o);
2601 if (Boolean(testResult)) {
2610 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2611 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2612 //
22.1.3.12 Array.prototype.join (separator)
2614 //
22.1.3.13 Array.prototype.keys ( )
2616 Array.prototype, 'keys',
2618 return CreateArrayIterator(this, 'key');
2619 }, !nativeArrayIteratorMethods);
2621 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2622 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2623 //
22.1.3.16 Array.prototype.pop ( )
2624 //
22.1.3.17 Array.prototype.push ( ...items )
2625 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2626 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2627 //
22.1.3.20 Array.prototype.reverse ( )
2628 //
22.1.3.21 Array.prototype.shift ( )
2629 //
22.1.3.22 Array.prototype.slice (start, end)
2630 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2631 //
22.1.3.24 Array.prototype.sort (comparefn)
2632 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2633 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2634 //
22.1.3.27 Array.prototype.toString ( )
2635 //
22.1.3.28 Array.prototype.unshift ( ...items )
2637 //
22.1.3.29 Array.prototype.values ( )
2639 Array.prototype, 'values',
2641 return CreateArrayIterator(this, 'value');
2642 }, !nativeArrayIteratorMethods);
2644 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2646 Array.prototype, $$iterator,
2647 Array.prototype.values
2650 //
22.1.3.31 Array.prototype [ @@unscopables ]
2651 //
22.1.4 Properties of Array Instances
2654 //
22.1.5 Array Iterator Objects
2655 function ArrayIterator() {}
2657 //
22.1.5.1 CreateArrayIterator Abstract Operation
2658 function CreateArrayIterator(array, kind) {
2659 var o = ToObject(array);
2660 var iterator = new ArrayIterator;
2661 set_internal(iterator, '[[IteratedObject]]', o);
2662 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2663 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2667 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2668 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2669 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2671 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2673 $ArrayIteratorPrototype$, 'next',
2675 var o = strict(this);
2676 if (Type(o) !== 'object') throw TypeError();
2677 var a = o['[[IteratedObject]]'],
2678 index = o['[[ArrayIteratorNextIndex]]'],
2679 itemKind = o['[[ArrayIterationKind]]'],
2680 lenValue = a.length,
2681 len = ToUint32(lenValue),
2684 if (itemKind.indexOf('sparse') !== -
1) {
2686 while (!found && index < len) {
2687 elementKey = String(index);
2688 found = HasProperty(a, elementKey);
2695 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2696 return CreateIterResultObject(undefined, true);
2699 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2700 if (itemKind.indexOf('value') !== -
1)
2701 elementValue = a[elementKey];
2702 if (itemKind.indexOf('key+value') !== -
1)
2703 return CreateIterResultObject([elementKey, elementValue], false);
2704 if (itemKind.indexOf('key') !== -
1)
2705 return CreateIterResultObject(elementKey, false);
2706 if (itemKind === 'value')
2707 return CreateIterResultObject(elementValue, false);
2708 throw Error('Internal error');
2711 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2712 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2714 //
22.1.5.3 Properties of Array Iterator Instances
2717 // ---------------------------------------
2718 //
22.2 TypedArray Objects
2719 // ---------------------------------------
2721 // See typedarray.js for TypedArray polyfill
2723 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2724 'Int16Array', 'Uint16Array',
2725 'Int32Array', 'Uint32Array',
2726 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2727 if (!($TypedArrayName$ in global))
2729 var $TypedArray$ = global[$TypedArrayName$];
2731 //
22.2.1 The %TypedArray% Intrinsic Object
2732 //
22.2.1.1 %TypedArray% ( length )
2733 //
22.2.1.2 %TypedArray% ( typedArray )
2734 //
22.2.1.3 %TypedArray% ( object )
2735 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2736 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2737 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2739 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2741 $TypedArray$, 'from',
2742 function from(source) {
2743 var mapfn = arguments[
1];
2744 var thisArg = arguments[
2];
2746 var c = strict(this);
2747 if (!IsConstructor(c)) throw TypeError();
2748 if (mapfn === undefined) {
2749 var mapping = false;
2751 if (IsCallable(mapfn)) throw TypeError();
2755 var usingIterator = GetMethod(source, $$iterator);
2756 if (usingIterator !== undefined) {
2757 var iterator = GetIterator(source, usingIterator);
2760 while (next !== false) {
2761 next = IteratorStep(iterator);
2762 if (next !== false) {
2763 var nextValue = IteratorValue(next);
2764 values.push(nextValue);
2767 var len = values.length;
2768 var newObj = new c(len);
2771 var kValue = values.shift();
2773 var mappedValue = mapfn.call(t, kValue);
2775 mappedValue = kValue;
2777 newObj[k] = mappedValue;
2780 console.assert(values.length ===
0);
2783 var arrayLike = ToObject(source);
2784 var lenValue = arrayLike.length;
2785 len = ToLength(lenValue);
2786 newObj = new c(len);
2789 kValue = arrayLike[k];
2791 mappedValue = mapfn.call(t, kValue, k);
2793 mappedValue = kValue;
2795 newObj[k] = mappedValue;
2801 //
22.2.2.2 %TypedArray%.of ( ...items )
2805 var items = arguments;
2807 var len = items.length;
2808 var c = strict(this);
2809 var newObj = new c(len);
2812 newObj[k] = items[k];
2818 //
22.2.2.3 %TypedArray%.prototype
2819 //
22.2.2.4 get %TypedArray% [ @@species ]
2820 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2821 //
22.2.3.1 get %TypedArray%.prototype.buffer
2822 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2823 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2824 //
22.2.3.4 %TypedArray%.prototype.constructor
2826 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2827 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2829 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2830 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2832 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2833 define($TypedArray$.prototype, 'every', Array.prototype.every);
2835 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2837 $TypedArray$.prototype, 'fill',
2838 //Array.prototype.fill // Doesn't work in Safari
7
2839 function fill(value/*, start, end*/) {
2840 var start = arguments[
1],
2843 var o = ToObject(this);
2844 var lenVal = o.length;
2845 var len = ToLength(lenVal);
2847 var relativeStart = ToInteger(start);
2849 if (relativeStart <
0) k = max((len + relativeStart),
0);
2850 else k = min(relativeStart, len);
2852 if (end === undefined) relativeEnd = len;
2853 else relativeEnd = ToInteger(end);
2855 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2856 else final = min(relativeEnd, len);
2865 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2867 $TypedArray$.prototype, 'filter',
2868 function filter(callbackfn) {
2869 var thisArg = arguments[
1];
2871 var o = ToObject(this);
2872 var lenVal = o.length;
2873 var len = ToLength(lenVal);
2874 if (!IsCallable(callbackfn)) throw TypeError();
2876 var c = o.constructor;
2882 var selected = callbackfn.call(t, kValue, k, o);
2889 var a = new c(captured);
2891 for (var i =
0; i < kept.length; ++i) {
2899 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
2900 define($TypedArray$.prototype, 'find', Array.prototype.find);
2902 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
2903 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
2905 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
2906 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
2908 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
2909 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
2911 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
2912 define($TypedArray$.prototype, 'join', Array.prototype.join);
2914 //
22.2.3.15 %TypedArray%.prototype.keys ( )
2915 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
2917 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2918 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
2920 //
22.2.3.17 get %TypedArray%.prototype.length
2922 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
2924 $TypedArray$.prototype, 'map',
2925 function map(callbackfn) {
2926 var thisArg = arguments[
1];
2928 var o = ToObject(this);
2929 var lenValue = o.length;
2930 var len = ToLength(lenValue);
2931 if (!IsCallable(callbackfn)) throw TypeError();
2934 var c = o.constructor;
2935 if (IsConstructor(c))
2937 if (a === undefined)
2941 var kPresent = HasProperty(o, k);
2944 var mappedValue = callbackfn.call(t, kValue, k, o);
2952 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
2953 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
2955 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
2956 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
2958 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
2959 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
2961 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
2962 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
2963 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
2965 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
2967 $TypedArray$.prototype, 'slice',
2968 function slice(start, end) {
2969 var o = ToObject(this);
2970 var lenVal = o.length;
2971 var len = ToLength(lenVal);
2972 var relativeStart = ToInteger(start);
2973 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
2974 var relativeEnd = (end === undefined) ? len : ToInteger(end);
2975 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
2976 var count = final - k;
2977 var c = o.constructor;
2978 if (IsConstructor(c)) {
2979 var a = new c(count);
2993 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
2994 define($TypedArray$.prototype, 'some', Array.prototype.some);
2996 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
2998 $TypedArray$.prototype, 'sort',
3000 var comparefn = arguments[
0];
3002 function sortCompare(x, y) {
3003 console.assert(Type(x) === 'number' && Type(y) === 'number');
3004 if (x !== x && y !== y) return +
0;
3005 if (x !== x) return
1;
3006 if (y !== y) return -
1;
3007 if (comparefn !== undefined) {
3008 return comparefn(x, y);
3010 if (x < y) return -
1;
3011 if (x
> y) return
1;
3014 return Array.prototype.sort.call(this, sortCompare);
3017 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3018 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3019 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3021 //
22.2.3.29 %TypedArray%.prototype.values ( )
3022 define($TypedArray$.prototype, 'values', Array.prototype.values);
3024 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3026 $TypedArray$.prototype, $$iterator,
3027 $TypedArray$.prototype.values
3030 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3031 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3033 //
22.2.4 The TypedArray Constructors
3034 //
22.2.4.1TypedArray( ... argumentsList)
3035 //
22.2.5 Properties of the TypedArray Constructors
3036 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3037 //
22.2.5.2 TypedArray.prototype
3038 //
22.2.6 Properties of TypedArray Prototype Objects
3039 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3040 //
22.2.6.2 TypedArray.prototype.constructor
3041 //
22.2.7 Properties of TypedArray Instances
3044 // ---------------------------------------
3045 //
23 Keyed Collection
3046 // ---------------------------------------
3048 // ---------------------------------------
3050 // ---------------------------------------
3053 //
23.1.1 The Map Constructor
3055 //
23.1.1.1 Map ( [ iterable ] )
3057 function Map(/*iterable*/) {
3058 var map = strict(this);
3059 var iterable = arguments[
0];
3061 if (Type(map) !== 'object') throw TypeError();
3062 if ('[[MapData]]' in map) throw TypeError();
3064 if (iterable !== undefined) {
3065 var adder = map['set'];
3066 if (!IsCallable(adder)) throw TypeError();
3067 var iter = GetIterator(ToObject(iterable));
3069 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3070 if (iter === undefined) return map;
3072 var next = IteratorStep(iter);
3075 var nextItem = IteratorValue(next);
3076 if (Type(nextItem) !== 'object') throw TypeError();
3077 var k = nextItem[
0];
3078 var v = nextItem[
1];
3079 adder.call(map, k, v);
3085 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3086 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3087 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3088 (new global.Map([['a',
1]]).size !==
1))
3092 function MapDataIndexOf(mapData, key) {
3094 if (key === key) return mapData.keys.indexOf(key);
3095 // Slow case for NaN
3096 for (i =
0; i < mapData.keys.length; i +=
1)
3097 if (SameValueZero(mapData.keys[i], key)) return i;
3101 //
23.1.1.2 new Map ( ... argumentsList )
3102 //
23.1.2 Properties of the Map Constructor
3103 //
23.1.2.1 Map.prototype
3104 var $MapPrototype$ = {};
3105 Map.prototype = $MapPrototype$;
3107 //
23.1.2.2 get Map [ @@species ]
3109 //
23.1.3 Properties of the Map Prototype Object
3110 //
23.1.3.1 Map.prototype.clear ()
3112 Map.prototype, 'clear',
3114 var m = strict(this);
3115 if (Type(m) !== 'object') throw TypeError();
3116 if (!('[[MapData]]' in m)) throw TypeError();
3117 if (m['[[MapData]]'] === undefined) throw TypeError();
3118 var entries = m['[[MapData]]'];
3119 entries.keys.length =
0;
3120 entries.values.length =
0;
3124 //
23.1.3.2 Map.prototype.constructor
3126 //
23.1.3.3 Map.prototype.delete ( key )
3128 Map.prototype, 'delete',
3129 function delete_(key) {
3130 var m = strict(this);
3131 if (Type(m) !== 'object') throw TypeError();
3132 if (!('[[MapData]]' in m)) throw TypeError();
3133 if (m['[[MapData]]'] === undefined) throw TypeError();
3134 var entries = m['[[MapData]]'];
3135 var i = MapDataIndexOf(entries, key);
3136 if (i <
0) return false;
3137 entries.keys[i] = empty;
3138 entries.values[i] = empty;
3142 //
23.1.3.4 Map.prototype.entries ( )
3144 Map.prototype, 'entries',
3145 function entries() {
3146 var m = strict(this);
3147 if (Type(m) !== 'object') throw TypeError();
3148 return CreateMapIterator(m, 'key+value');
3151 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3153 Map.prototype, 'forEach',
3154 function forEach(callbackfn /*, thisArg*/) {
3155 var thisArg = arguments[
1];
3157 var m = strict(this);
3158 if (Type(m) !== 'object') throw TypeError();
3159 if (!('[[MapData]]' in m)) throw TypeError();
3160 if (m['[[MapData]]'] === undefined) throw TypeError();
3161 var entries = m['[[MapData]]'];
3163 if (!IsCallable(callbackfn)) {
3164 throw TypeError('First argument to forEach is not callable.');
3166 for (var i =
0; i < entries.keys.length; ++i) {
3167 if (entries.keys[i] !== empty) {
3168 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3174 //
23.1.3.6 Map.prototype.get ( key )
3176 Map.prototype, 'get',
3178 var m = strict(this);
3179 if (Type(m) !== 'object') throw TypeError();
3180 if (!('[[MapData]]' in m)) throw TypeError();
3181 if (m['[[MapData]]'] === undefined) throw TypeError();
3182 var entries = m['[[MapData]]'];
3183 var i = MapDataIndexOf(entries, key);
3184 if (i
>=
0) return entries.values[i];
3188 //
23.1.3.7 Map.prototype.has ( key )
3190 Map.prototype, 'has',
3192 var m = strict(this);
3193 if (Type(m) !== 'object') throw TypeError();
3194 if (!('[[MapData]]' in m)) throw TypeError();
3195 if (m['[[MapData]]'] === undefined) throw TypeError();
3196 var entries = m['[[MapData]]'];
3197 if (MapDataIndexOf(entries, key)
>=
0) return true;
3201 //
23.1.3.8 Map.prototype.keys ( )
3203 Map.prototype, 'keys',
3205 var m = strict(this);
3206 if (Type(m) !== 'object') throw TypeError();
3207 return CreateMapIterator(m, 'key');
3210 //
23.1.3.9 Map.prototype.set ( key , value )
3212 Map.prototype, 'set',
3213 function set(key, value) {
3214 var m = strict(this);
3215 if (Type(m) !== 'object') throw TypeError();
3216 if (!('[[MapData]]' in m)) throw TypeError();
3217 if (m['[[MapData]]'] === undefined) throw TypeError();
3218 var entries = m['[[MapData]]'];
3219 var i = MapDataIndexOf(entries, key);
3220 if (i <
0) i = entries.keys.length;
3221 if (SameValue(key, -
0)) key =
0;
3222 entries.keys[i] = key;
3223 entries.values[i] = value;
3227 //
23.1.3.10 get Map.prototype.size
3228 Object.defineProperty(
3229 Map.prototype, 'size', {
3231 var m = strict(this);
3232 if (Type(m) !== 'object') throw TypeError();
3233 if (!('[[MapData]]' in m)) throw TypeError();
3234 if (m['[[MapData]]'] === undefined) throw TypeError();
3235 var entries = m['[[MapData]]'];
3237 for (var i =
0; i < entries.keys.length; ++i) {
3238 if (entries.keys[i] !== empty)
3245 //
23.1.3.11 Map.prototype.values ( )
3247 Map.prototype, 'values',
3249 var m = strict(this);
3250 if (Type(m) !== 'object') throw TypeError();
3251 return CreateMapIterator(m, 'value');
3254 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3256 Map.prototype, $$iterator,
3258 var m = strict(this);
3259 if (Type(m) !== 'object') throw TypeError();
3260 return CreateMapIterator(m, 'key+value');
3263 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3264 define(global.Map.prototype, $$toStringTag, 'Map');
3266 //
23.1.4 Properties of Map Instances
3267 //
23.1.5 Map Iterator Objects
3270 function MapIterator() {}
3272 //
23.1.5.1 CreateMapIterator Abstract Operation
3273 function CreateMapIterator(map, kind) {
3274 if (Type(map) !== 'object') throw TypeError();
3275 if (!('[[MapData]]' in map)) throw TypeError();
3276 if (map['[[MapData]]'] === undefined) throw TypeError();
3277 var iterator = new MapIterator;
3278 set_internal(iterator, '[[Map]]', map);
3279 set_internal(iterator, '[[MapNextIndex]]',
0);
3280 set_internal(iterator, '[[MapIterationKind]]', kind);
3284 //
23.1.5.2 The %MapIteratorPrototype% Object
3285 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3286 MapIterator.prototype = $MapIteratorPrototype$;
3288 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3290 $MapIteratorPrototype$, 'next',
3292 var o = strict(this);
3293 if (Type(o) !== 'object') throw TypeError();
3294 var m = o['[[Map]]'],
3295 index = o['[[MapNextIndex]]'],
3296 itemKind = o['[[MapIterationKind]]'],
3297 entries = m['[[MapData]]'];
3298 while (index < entries.keys.length) {
3299 var e = {key: entries.keys[index], value: entries.values[index]};
3301 set_internal(o, '[[MapNextIndex]]', index);
3302 if (e.key !== empty) {
3303 if (itemKind === 'key') {
3304 return CreateIterResultObject(e.key, false);
3305 } else if (itemKind === 'value') {
3306 return CreateIterResultObject(e.value, false);
3308 return CreateIterResultObject([e.key, e.value], false);
3312 return CreateIterResultObject(undefined, true);
3315 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3316 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3318 //
23.1.5.3 Properties of Map Iterator Instances
3321 // ---------------------------------------
3323 // ---------------------------------------
3326 //
23.2.1 The Set Constructor
3327 //
23.2.1.1 Set ( [ iterable ] )
3330 function Set(/*iterable*/) {
3331 var set = strict(this);
3332 var iterable = arguments[
0];
3334 if (Type(set) !== 'object') throw TypeError();
3335 if ('[[SetData]]' in set) throw TypeError();
3337 if (iterable !== undefined) {
3338 var adder = set['add'];
3339 if (!IsCallable(adder)) throw TypeError();
3340 var iter = GetIterator(ToObject(iterable));
3342 set_internal(set, '[[SetData]]', []);
3343 if (iter === undefined) return set;
3345 var next = IteratorStep(iter);
3348 var nextValue = IteratorValue(next);
3349 adder.call(set, nextValue);
3355 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3356 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3357 (new global.Set([
1]).size !==
1))
3360 function SetDataIndexOf(setData, key) {
3363 return setData.indexOf(key);
3364 // Slow case for NaN
3365 for (i =
0; i < setData.length; i +=
1)
3366 if (SameValueZero(setData[i], key)) return i;
3370 //
23.2.1.2 new Set ( ...argumentsList )
3371 //
23.2.2 Properties of the Set Constructor
3373 //
23.2.2.1 Set.prototype
3374 var $SetPrototype$ = {};
3375 Set.prototype = $SetPrototype$;
3377 //
23.2.2.2 get Set [ @@species ]
3378 //
23.2.3 Properties of the Set Prototype Object
3380 //
23.2.3.1 Set.prototype.add (value )
3382 Set.prototype, 'add',
3383 function add(value) {
3384 var s = strict(this);
3385 if (Type(s) !== 'object') throw TypeError();
3386 if (!('[[SetData]]' in s)) throw TypeError();
3387 if (s['[[SetData]]'] === undefined) throw TypeError();
3388 if (SameValue(value, -
0)) value =
0;
3389 var entries = s['[[SetData]]'];
3390 var i = SetDataIndexOf(entries, value);
3391 if (i <
0) i = s['[[SetData]]'].length;
3392 s['[[SetData]]'][i] = value;
3397 //
23.2.3.2 Set.prototype.clear ()
3399 Set.prototype, 'clear',
3401 var s = strict(this);
3402 if (Type(s) !== 'object') throw TypeError();
3403 if (!('[[SetData]]' in s)) throw TypeError();
3404 if (s['[[SetData]]'] === undefined) throw TypeError();
3405 var entries = s['[[SetData]]'];
3410 //
23.2.3.3 Set.prototype.constructor
3411 //
23.2.3.4 Set.prototype.delete ( value )
3413 Set.prototype, 'delete',
3414 function delete_(value) {
3415 var s = strict(this);
3416 if (Type(s) !== 'object') throw TypeError();
3417 if (!('[[SetData]]' in s)) throw TypeError();
3418 if (s['[[SetData]]'] === undefined) throw TypeError();
3419 var entries = s['[[SetData]]'];
3420 var i = SetDataIndexOf(entries, value);
3421 if (i <
0) return false;
3426 //
23.2.3.5 Set.prototype.entries ( )
3428 Set.prototype, 'entries',
3429 function entries() {
3430 var s = strict(this);
3431 if (Type(s) !== 'object') throw TypeError();
3432 return CreateSetIterator(s, 'key+value');
3435 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3437 Set.prototype, 'forEach',
3438 function forEach(callbackfn/*, thisArg*/) {
3439 var thisArg = arguments[
1];
3441 var s = strict(this);
3442 if (Type(s) !== 'object') throw TypeError();
3443 if (!('[[SetData]]' in s)) throw TypeError();
3444 if (s['[[SetData]]'] === undefined) throw TypeError();
3445 var entries = s['[[SetData]]'];
3447 if (!IsCallable(callbackfn)) {
3448 throw TypeError('First argument to forEach is not callable.');
3450 for (var i =
0; i < entries.length; ++i) {
3451 if (entries[i] !== empty) {
3452 callbackfn.call(thisArg, entries[i], entries[i], s);
3457 //
23.2.3.7 Set.prototype.has ( value )
3459 Set.prototype, 'has',
3461 var s = strict(this);
3462 if (Type(s) !== 'object') throw TypeError();
3463 if (!('[[SetData]]' in s)) throw TypeError();
3464 if (s['[[SetData]]'] === undefined) throw TypeError();
3465 var entries = s['[[SetData]]'];
3466 return SetDataIndexOf(entries, key) !== -
1;
3469 //
23.2.3.8 Set.prototype.keys ( )
3470 // See Set.prototype.values
3472 //
23.2.3.9 get Set.prototype.size
3473 Object.defineProperty(
3474 Set.prototype, 'size', {
3476 var s = strict(this);
3477 if (Type(s) !== 'object') throw TypeError();
3478 if (!('[[SetData]]' in s)) throw TypeError();
3479 if (s['[[SetData]]'] === undefined) throw TypeError();
3480 var entries = s['[[SetData]]'];
3482 for (var i =
0; i < entries.length; ++i) {
3483 if (entries[i] !== empty)
3490 //
23.2.3.10 Set.prototype.values ( )
3492 Set.prototype, 'values',
3494 var s = strict(this);
3495 if (Type(s) !== 'object') throw TypeError();
3496 return CreateSetIterator(s, 'value');
3498 // NOTE: function name is still 'values':
3499 Set.prototype.keys = Set.prototype.values;
3501 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3503 Set.prototype, $$iterator,
3505 var s = strict(this);
3506 if (Type(s) !== 'object') throw TypeError();
3507 return CreateSetIterator(s);
3510 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3511 define(global.Set.prototype, $$toStringTag, 'Set');
3513 //
23.2.4 Properties of Set Instances
3514 //
23.2.5 Set Iterator Objects
3516 function SetIterator() {}
3518 //
23.2.5.1 CreateSetIterator Abstract Operation
3519 function CreateSetIterator(set, kind) {
3520 if (Type(set) !== 'object') throw TypeError();
3521 if (!('[[SetData]]' in set)) throw TypeError();
3522 if (set['[[SetData]]'] === undefined) throw TypeError();
3523 var iterator = new SetIterator;
3524 set_internal(iterator, '[[IteratedSet]]', set);
3525 set_internal(iterator, '[[SetNextIndex]]',
0);
3526 set_internal(iterator, '[[SetIterationKind]]', kind);
3530 //
23.2.5.2 The %SetIteratorPrototype% Object
3531 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3532 SetIterator.prototype = $SetIteratorPrototype$;
3534 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3536 $SetIteratorPrototype$, 'next',
3538 var o = strict(this);
3539 if (Type(o) !== 'object') throw TypeError();
3540 var s = o['[[IteratedSet]]'],
3541 index = o['[[SetNextIndex]]'],
3542 itemKind = o['[[SetIterationKind]]'],
3543 entries = s['[[SetData]]'];
3544 while (index < entries.length) {
3545 var e = entries[index];
3547 set_internal(o, '[[SetNextIndex]]', index);
3549 if (itemKind === 'key+value')
3550 return CreateIterResultObject([e, e], false);
3551 return CreateIterResultObject(e, false);
3554 return CreateIterResultObject(undefined, true);
3557 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3558 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3560 //
23.2.5.3 Properties of Set Iterator Instances
3564 // ---------------------------------------
3565 //
23.3 WeakMap Objects
3566 // ---------------------------------------
3569 //
23.3.1 The WeakMap Constructor
3570 //
23.3.1.1 WeakMap ( [ iterable ] )
3572 function WeakMap(/*iterable*/) {
3573 var map = strict(this);
3574 var iterable = arguments[
0];
3576 if (Type(map) !== 'object') throw TypeError();
3577 if ('[[WeakMapData]]' in map) throw TypeError();
3579 if (iterable !== undefined) {
3580 var adder = map['set'];
3581 if (!IsCallable(adder)) throw TypeError();
3582 var iter = GetIterator(ToObject(iterable));
3584 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3585 if (iter === undefined) return map;
3587 var next = IteratorStep(iter);
3590 var nextValue = IteratorValue(next);
3591 if (Type(nextValue) !== 'object') throw TypeError();
3592 var k = nextValue[
0];
3593 var v = nextValue[
1];
3594 adder.call(map, k, v);
3600 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3601 global.WeakMap = WeakMap;
3603 //
23.3.2 Properties of the WeakMap Constructor
3604 //
23.3.2.1 WeakMap.prototype
3605 var $WeakMapPrototype$ = {};
3606 WeakMap.prototype = $WeakMapPrototype$;
3610 //
23.3.2.2 WeakMap[ @@create ] ( )
3611 //
23.3.3 Properties of the WeakMap Prototype Object
3613 //
23.3.3.1 WeakMap.prototype.constructor
3615 //
23.3.3.2 WeakMap.prototype.delete ( key )
3617 WeakMap.prototype, 'delete',
3618 function delete_(key) {
3619 var M = strict(this);
3620 if (Type(M) !== 'object') throw TypeError();
3621 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3622 if (Type(key) !== 'object') throw TypeError('Expected object');
3623 return M['[[WeakMapData]]'].remove(key);
3626 //
23.3.3.3 WeakMap.prototype.get ( key )
3628 WeakMap.prototype, 'get',
3629 function get(key, defaultValue) {
3630 var M = strict(this);
3631 if (Type(M) !== 'object') throw TypeError();
3632 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3633 if (Type(key) !== 'object') throw TypeError('Expected object');
3634 return M['[[WeakMapData]]'].get(key, defaultValue);
3637 //
23.3.3.4 WeakMap.prototype.has ( key )
3639 WeakMap.prototype, 'has',
3641 var M = strict(this);
3642 if (Type(M) !== 'object') throw TypeError();
3643 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3644 if (Type(key) !== 'object') throw TypeError('Expected object');
3645 return M['[[WeakMapData]]'].has(key);
3648 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3650 WeakMap.prototype, 'set',
3651 function set(key, value) {
3652 var M = strict(this);
3653 if (Type(M) !== 'object') throw TypeError();
3654 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3655 if (Type(key) !== 'object') throw TypeError('Expected object');
3656 M['[[WeakMapData]]'].set(key, value);
3660 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3661 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3663 //
23.3.4 Properties of WeakMap Instances
3665 // Polyfills for incomplete native implementations:
3667 var wm = new global.WeakMap();
3668 var orig = global.WeakMap.prototype.set;
3669 define(global.WeakMap.prototype, 'set', function set() {
3670 orig.apply(this, arguments);
3672 }, wm.set({},
0) !== wm);
3676 // ---------------------------------------
3677 //
23.4 WeakSet Objects
3678 // ---------------------------------------
3681 //
23.4.1 The WeakSet Constructor
3682 //
23.4.1.1 WeakSet ( [ iterable ] )
3684 function WeakSet(/*iterable*/) {
3685 var set = strict(this);
3686 var iterable = arguments[
0];
3688 if (Type(set) !== 'object') throw TypeError();
3689 if ('[[WeakSetData]]' in set) throw TypeError();
3691 if (iterable !== undefined) {
3692 var adder = set['add'];
3693 if (!IsCallable(adder)) throw TypeError();
3694 var iter = GetIterator(ToObject(iterable));
3696 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3697 if (iter === undefined) return set;
3699 var next = IteratorStep(iter);
3702 var nextValue = IteratorValue(next);
3703 adder.call(set, nextValue);
3709 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3710 global.WeakSet = WeakSet;
3712 //
23.4.2 Properties of the WeakSet Constructor
3713 //
23.4.2.1 WeakSet.prototype
3714 var $WeakSetPrototype$ = {};
3715 WeakSet.prototype = $WeakSetPrototype$;
3717 //
23.4.3 Properties of the WeakSet Prototype Object
3718 //
23.4.3.1 WeakSet.prototype.add (value )
3720 WeakSet.prototype, 'add',
3721 function add(value) {
3722 var S = strict(this);
3723 if (Type(S) !== 'object') throw TypeError();
3724 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3725 if (Type(value) !== 'object') throw TypeError('Expected object');
3726 S['[[WeakSetData]]'].set(value, true);
3730 //
23.4.3.2 WeakSet.prototype.constructor
3731 //
23.4.3.3 WeakSet.prototype.delete ( value )
3733 WeakSet.prototype, 'delete',
3734 function delete_(value) {
3735 var S = strict(this);
3736 if (Type(S) !== 'object') throw TypeError();
3737 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3738 if (Type(value) !== 'object') throw TypeError('Expected object');
3739 return S['[[WeakSetData]]'].remove(value);
3742 //
23.4.3.4 WeakSet.prototype.has ( value )
3744 WeakSet.prototype, 'has',
3746 var S = strict(this);
3747 if (Type(S) !== 'object') throw TypeError();
3748 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3749 if (Type(key) !== 'object') throw TypeError('Expected object');
3750 return S['[[WeakSetData]]'].has(key);
3753 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3754 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3756 //
23.4.4 Properties of WeakSet Instances
3758 // Polyfills for incomplete native implementations:
3760 var ws = new global.WeakSet();
3761 var orig = global.WeakSet.prototype.add;
3762 define(global.WeakSet.prototype, 'add', function add() {
3763 orig.apply(this, arguments);
3765 }, ws.add({}) !== ws);
3769 // ---------------------------------------
3770 //
24 Structured Data
3771 // ---------------------------------------
3773 // ---------------------------------------
3774 //
24.1 ArrayBuffer Objects
3775 // ---------------------------------------
3777 // See typedarray.js for TypedArray polyfill
3780 if (!('ArrayBuffer' in global))
3783 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3784 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3785 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3786 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3787 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3788 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3789 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3790 //
24.1.2 The ArrayBuffer Constructor
3791 //
24.1.2.1 ArrayBuffer( length )
3792 //
24.1.3 Properties of the ArrayBuffer Constructor
3794 //
24.1.3.1 ArrayBuffer.isView ( arg )
3796 ArrayBuffer, 'isView',
3797 function isView(arg) {
3798 if (Type(arg) !== 'object') return false;
3799 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3803 //
24.1.3.2 ArrayBuffer.prototype
3804 //
24.1.3.3 get ArrayBuffer [ @@species ]
3805 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3806 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3807 //
24.1.4.2 ArrayBuffer.prototype.constructor
3808 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3810 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3811 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3813 //
24.1.5 Properties of the ArrayBuffer Instances
3816 // ---------------------------------------
3817 //
24.2 DataView Objects
3818 // ---------------------------------------
3820 // See typedarray.js for TypedArray polyfill
3823 if (!('DataView' in global))
3826 //
24.2.1 Abstract Operations For DataView Objects
3827 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3828 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3829 //
24.2.2 The DataView Constructor
3830 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3831 //
24.2.3 Properties of the DataView Constructor
3832 //
24.2.3.1 DataView.prototype
3833 //
24.2.4 Properties of the DataView Prototype Object
3834 //
24.2.4.1 get DataView.prototype.buffer
3835 //
24.2.4.2 get DataView.prototype.byteLength
3836 //
24.2.4.3 get DataView.prototype.byteOffset
3837 //
24.2.4.4 DataView.prototype.constructor
3838 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3839 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3840 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3841 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3842 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3843 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3844 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3845 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3846 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3847 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3848 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3849 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3850 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3851 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3852 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3853 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3855 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3856 define(DataView.prototype, $$toStringTag, 'DataView');
3858 //
24.2.5 Properties of DataView Instances
3861 // ---------------------------------------
3862 //
24.3 The JSON Object
3863 // ---------------------------------------
3865 //
24.3.1 JSON.parse ( text [ , reviver ] )
3866 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3867 //
24.3.3 JSON [ @@toStringTag ]
3868 define(JSON, $$toStringTag, 'JSON');
3870 // ---------------------------------------
3872 // ---------------------------------------
3874 //
25.1.1 Common Iteration Interfaces
3875 //
25.1.1.1 The Iterable Interface
3876 //
25.1.1.2 The Iterator Interface
3877 //
25.1.1.3 The IteratorResult Interface
3879 //
25.1.2 The %IteratorPrototype% Object
3880 // Defined earlier, so other prototypes can reference it.
3881 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3882 define($IteratorPrototype$, $$iterator, function() {
3887 // ---------------------------------------
3888 //
25.4 Promise Objects
3889 // ---------------------------------------
3892 //
25.4 Promise Objects
3894 //
25.4.1 Promise Abstract Operations
3896 //
25.4.1.1 PromiseCapability Records
3897 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
3899 function IfAbruptRejectPromise(value, capability) {
3900 var rejectResult = capability['[[Reject]]'].call(undefined, value);
3901 return capability['[[Promise]]'];
3904 //
25.4.1.2 PromiseReaction Records
3906 //
25.4.1.3 CreateResolvingFunctions ( promise )
3908 function CreateResolvingFunctions(promise) {
3909 var alreadyResolved = {'[[value]]': false};
3910 var resolve = PromiseResolveFunction();
3911 set_internal(resolve, '[[Promise]]', promise);
3912 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
3913 var reject = PromiseRejectFunction();
3914 set_internal(reject, '[[Promise]]', promise);
3915 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
3916 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
3919 //
25.4.1.3.1 Promise Reject Functions
3921 function PromiseRejectFunction() {
3922 var F = function(reason) {
3923 console.assert(Type(F['[[Promise]]']) === 'object');
3924 var promise = F['[[Promise]]'];
3925 var alreadyResolved = F['[[AlreadyResolved]]'];
3926 if (alreadyResolved['[[value]]']) return undefined;
3927 set_internal(alreadyResolved, '[[value]]', true);
3928 return RejectPromise(promise, reason);
3933 //
25.4.1.3.2 Promise Resolve Functions
3935 function PromiseResolveFunction() {
3936 var F = function(resolution) {
3937 console.assert(Type(F['[[Promise]]']) === 'object');
3938 var promise = F['[[Promise]]'];
3939 var alreadyResolved = F['[[AlreadyResolved]]'];
3940 if (alreadyResolved['[[value]]']) return undefined;
3941 set_internal(alreadyResolved, '[[value]]', true);
3943 if (SameValue(resolution, promise)) {
3944 var selfResolutionError = TypeError();
3945 return RejectPromise(promise, selfResolutionError);
3947 if (Type(resolution) !== 'object')
3948 return FulfillPromise(promise, resolution);
3950 var then = resolution['then'];
3952 return RejectPromise(promise, then);
3954 if (!IsCallable(then))
3955 return FulfillPromise(promise, resolution);
3956 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
3962 //
25.4.1.4 FulfillPromise ( promise, value )
3964 function FulfillPromise(promise, value) {
3965 console.assert(promise['[[PromiseState]]'] === 'pending');
3966 var reactions = promise['[[PromiseFulfillReactions]]'];
3967 set_internal(promise, '[[PromiseResult]]', value);
3968 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
3969 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
3970 set_internal(promise, '[[PromiseState]]', 'fulfilled');
3971 return TriggerPromiseReactions(reactions, value);
3974 //
25.4.1.5 NewPromiseCapability ( C )
3976 function NewPromiseCapability(c) {
3977 // To keep Promise hermetic, this doesn't look much like the spec.
3978 return CreatePromiseCapabilityRecord(undefined, c);
3981 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
3983 function CreatePromiseCapabilityRecord(promise, constructor) {
3984 // To keep Promise hermetic, this doesn't look much like the spec.
3985 console.assert(IsConstructor(constructor));
3986 var promiseCapability = {};
3987 set_internal(promiseCapability, '[[Promise]]', promise);
3988 set_internal(promiseCapability, '[[Resolve]]', undefined);
3989 set_internal(promiseCapability, '[[Reject]]', undefined);
3990 var executor = GetCapabilitiesExecutor();
3991 set_internal(executor, '[[Capability]]', promiseCapability);
3993 // NOTE: Differs from spec; object is constructed here
3994 var constructorResult = promise = new constructor(executor);
3995 set_internal(promiseCapability, '[[Promise]]', promise);
3997 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
3998 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
3999 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
4000 return promiseCapability;
4003 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
4005 function GetCapabilitiesExecutor() {
4006 var F = function(resolve, reject) {
4007 console.assert(F['[[Capability]]']);
4008 var promiseCapability = F['[[Capability]]'];
4009 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4010 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4011 set_internal(promiseCapability, '[[Resolve]]', resolve);
4012 set_internal(promiseCapability, '[[Reject]]', reject);
4018 //
25.4.1.6 IsPromise ( x )
4020 function IsPromise(x) {
4021 if (Type(x) !== 'object') return false;
4022 if (!('[[PromiseState]]' in x)) return false;
4023 if (x['[[PromiseState]]'] === undefined) return false;
4027 //
25.4.1.7 RejectPromise ( promise, reason )
4029 function RejectPromise(promise, reason) {
4030 console.assert(promise['[[PromiseState]]'] === 'pending');
4031 var reactions = promise['[[PromiseRejectReactions]]'];
4032 set_internal(promise, '[[PromiseResult]]', reason);
4033 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4034 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4035 set_internal(promise, '[[PromiseState]]', 'rejected');
4036 return TriggerPromiseReactions(reactions, reason);
4039 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4041 function TriggerPromiseReactions(reactions, argument) {
4042 for (var i =
0, len = reactions.length; i < len; ++i)
4043 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4047 //
25.4.2 Promise Jobs
4049 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4051 function PromiseReactionJob(reaction, argument) {
4052 var promiseCapability = reaction['[[Capabilities]]'];
4053 var handler = reaction['[[Handler]]'];
4054 var handlerResult, status;
4056 if (handler === 'Identity') handlerResult = argument;
4057 else if (handler === 'Thrower') throw argument;
4058 else handlerResult = handler.call(undefined, argument);
4059 } catch (handlerResult) {
4060 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4061 NextJob(status); return;
4063 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4067 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4069 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4070 // SPEC BUG: promise vs. promiseToResolve
4071 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4073 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4074 resolvingFunctions['[[Reject]]']);
4075 } catch (thenCallResult) {
4076 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4077 NextJob(status); return;
4079 NextJob(thenCallResult);
4082 //
25.4.3 The Promise Constructor
4084 //
25.4.3.1 Promise ( executor )
4086 function Promise(executor) {
4087 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4088 Object.defineProperty(this, '[[PromiseState]]', config);
4089 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4090 Object.defineProperty(this, '[[PromiseResult]]', config);
4091 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4092 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4095 if (Type(promise) !== 'object') throw new TypeError();
4096 if (!('[[PromiseState]]' in promise)) throw TypeError();
4097 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4098 if (!IsCallable(executor)) throw TypeError();
4100 set_internal(promise, '[[PromiseConstructor]]', Promise);
4102 return InitializePromise(promise, executor);
4105 //
25.4.3.1.1 InitializePromise ( promise, executor )
4107 function InitializePromise(promise, executor) {
4108 console.assert('[[PromiseState]]' in promise);
4109 console.assert(IsCallable(executor));
4110 set_internal(promise, '[[PromiseState]]', 'pending');
4111 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4112 set_internal(promise, '[[PromiseRejectReactions]]', []);
4113 var resolvingFunctions = CreateResolvingFunctions(promise);
4115 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4116 resolvingFunctions['[[Reject]]']);
4117 } catch (completion) {
4118 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4123 //
25.4.4 Properties of the Promise Constructor
4124 //
25.4.4.1 Promise.all ( iterable )
4126 define(Promise, 'all', function all(iterable) {
4127 var c = strict(this);
4128 var promiseCapability = NewPromiseCapability(c);
4130 var iterator = GetIterator(iterable);
4132 promiseCapability['[[Reject]]'].call(undefined, value);
4133 return promiseCapability['[[Promise]]'];
4136 var remainingElementsCount = { value:
1 };
4140 var next = IteratorStep(iterator);
4142 promiseCapability['[[Reject]]'].call(undefined, value);
4143 return promiseCapability['[[Promise]]'];
4146 remainingElementsCount.value -=
1;
4147 if (remainingElementsCount.value ===
0) {
4148 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4152 return promiseCapability['[[Promise]]'];
4155 var nextValue = IteratorValue(next);
4157 promiseCapability['[[Reject]]'].call(undefined, value);
4158 return promiseCapability['[[Promise]]'];
4161 var nextPromise = c.resolve(nextValue);
4163 promiseCapability['[[Reject]]'].call(undefined, value);
4164 return promiseCapability['[[Promise]]'];
4166 var resolveElement = PromiseAllResolveElementFunction();
4167 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4168 set_internal(resolveElement, '[[Index]]', index);
4169 set_internal(resolveElement, '[[Values]]', values);
4170 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4171 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4172 remainingElementsCount.value +=
1;
4174 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4176 promiseCapability['[[Reject]]'].call(undefined, value);
4177 return promiseCapability['[[Promise]]'];
4183 //
25.4.4.1.1 Promise.all Resolve Element Functions
4185 function PromiseAllResolveElementFunction() {
4186 var F = function(x) {
4187 var alreadyCalled = F['[[AlreadyCalled]]'];
4188 if (alreadyCalled.value) return undefined;
4189 alreadyCalled.value = true;
4190 var index = F['[[Index]]'];
4191 var values = F['[[Values]]'];
4192 var promiseCapability = F['[[Capabilities]]'];
4193 var remainingElementsCount = F['[[RemainingElements]]'];
4197 promiseCapability['[[Reject]]'].call(undefined, result);
4198 return promiseCapability['[[Promise]]'];
4200 remainingElementsCount.value -=
1;
4201 if (remainingElementsCount.value ===
0)
4202 return promiseCapability['[[Resolve]]'].call(undefined, values);
4208 //
25.4.4.2 Promise.prototype
4210 Promise.prototype = {};
4212 //
25.4.4.3 Promise.race ( iterable )
4214 define(Promise, 'race', function race(iterable) {
4215 var c = strict(this);
4216 var promiseCapability = NewPromiseCapability(c);
4218 var iterator = GetIterator(iterable);
4220 promiseCapability['[[Reject]]'].call(undefined, value);
4221 return promiseCapability['[[Promise]]'];
4225 var next = IteratorStep(iterator);
4227 promiseCapability['[[Reject]]'].call(undefined, value);
4228 return promiseCapability['[[Promise]]'];
4230 if (!next) return promiseCapability['[[Promise]]'];
4232 var nextValue = IteratorValue(next);
4234 promiseCapability['[[Reject]]'].call(undefined, value);
4235 return promiseCapability['[[Promise]]'];
4238 var nextPromise = c.resolve(nextValue);
4240 promiseCapability['[[Reject]]'].call(undefined, value);
4241 return promiseCapability['[[Promise]]'];
4244 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4246 promiseCapability['[[Reject]]'].call(undefined, value);
4247 return promiseCapability['[[Promise]]'];
4252 //
25.4.4.4 Promise.reject ( r )
4254 define(Promise, 'reject', function reject(r) {
4255 var c = strict(this);
4256 var promiseCapability = NewPromiseCapability(c);
4257 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4258 return promiseCapability['[[Promise]]'];
4261 //
25.4.4.5 Promise.resolve ( x )
4263 define(Promise, 'resolve', function resolve(x) {
4264 var c = strict(this);
4266 var constructor = x['[[PromiseConstructor]]'];
4267 if (SameValue(constructor, c)) return x;
4269 var promiseCapability = NewPromiseCapability(c);
4270 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4271 return promiseCapability['[[Promise]]'];
4274 //
25.4.4.6 Promise [ @@create ] ( )
4275 //
25.4.4.6.1 AllocatePromise ( constructor )
4276 //
25.4.5 Properties of the Promise Prototype Object
4277 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4279 define(Promise.prototype, 'catch', function catch_(onRejected) {
4281 return promise.then(undefined, onRejected);
4284 //
25.4.5.2 Promise.prototype.constructor
4286 Promise.prototype.constructor = Promise;
4288 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4290 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4292 if (!IsPromise(promise)) throw TypeError();
4293 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4294 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4295 var c = promise.constructor;
4296 var promiseCapability = NewPromiseCapability(c);
4297 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4298 '[[Handler]]': onFulfilled };
4299 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4300 '[[Handler]]': onRejected };
4301 if (promise['[[PromiseState]]'] === 'pending') {
4302 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4303 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4304 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4305 var value = promise['[[PromiseResult]]'];
4306 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4307 } else if (promise['[[PromiseState]]'] === 'rejected') {
4308 var reason = promise['[[PromiseResult]]'];
4309 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4311 return promiseCapability['[[Promise]]'];
4314 //
25.4.6 Properties of Promise Instances
4316 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4317 global.Promise = Promise;
4319 // Patch early Promise.cast vs. Promise.resolve implementations
4320 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4323 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4324 define(Promise.prototype, $$toStringTag, 'Promise');
4326 // ---------------------------------------
4328 // ---------------------------------------
4331 //
26.1 The Reflect Object
4332 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4333 global.Reflect = {};
4335 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4338 function apply(target, thisArgument, argumentsList) {
4339 if (!IsCallable(target)) throw TypeError();
4340 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4343 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4345 Reflect, 'construct',
4346 function construct(target, argumentsList) {
4347 return __cons(target, argumentsList);
4350 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4352 Reflect, 'defineProperty',
4353 function defineProperty(target, propertyKey, attributes) {
4355 Object.defineProperty(target, propertyKey, attributes);
4362 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4364 Reflect, 'deleteProperty',
4365 function deleteProperty(target,name) {
4367 delete target[name];
4368 return !HasOwnProperty(target, name);
4374 //
26.1.5 Reflect.enumerate ( target )
4376 Reflect, 'enumerate',
4377 function enumerate(target) {
4378 target = ToObject(target);
4379 var iterator = Enumerate(target);
4383 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4386 function get(target, name, receiver) {
4387 target = ToObject(target);
4388 name = String(name);
4389 receiver = (receiver === undefined) ? target : ToObject(receiver);
4390 var desc = getPropertyDescriptor(target, name);
4391 if (desc && 'get' in desc)
4392 return Function.prototype.call.call(desc['get'], receiver);
4393 return target[name];
4396 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4398 Reflect, 'getOwnPropertyDescriptor',
4399 Object.getOwnPropertyDescriptor);
4401 //
26.1.8 Reflect.getPrototypeOf ( target )
4403 Reflect, 'getPrototypeOf',
4404 Object.getPrototypeOf);
4406 //
26.1.9 Reflect.has ( target, propertyKey )
4409 function has(target,name) {
4410 return String(name) in ToObject(target);
4413 //
26.1.10 Reflect.isExtensible (target)
4415 Reflect, 'isExtensible',
4416 Object.isExtensible);
4418 //
26.1.11 Reflect.ownKeys ( target )
4421 function ownKeys(target) {
4422 var obj = ToObject(target);
4423 return Object.getOwnPropertyNames(obj);
4426 //
26.1.12 Reflect.preventExtensions ( target )
4428 Reflect, 'preventExtensions',
4429 function preventExtensions(target) {
4430 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4433 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4436 function set(target, name, value, receiver) {
4437 target = ToObject(target);
4438 name = String(name);
4439 receiver = (receiver === undefined) ? target : ToObject(receiver);
4440 var desc = getPropertyDescriptor(target, name);
4442 if (desc && 'set' in desc)
4443 Function.prototype.call.call(desc['set'], receiver, value);
4445 target[name] = value;
4452 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4454 Reflect, 'setPrototypeOf',
4455 function setPrototypeOf(target, proto) {
4457 target.__proto__ = proto;
4458 return Reflect.getPrototypeOf(target) === proto;
4466 // ---------------------------------------
4467 //
26.2 Proxy Objects
4468 // ---------------------------------------
4470 // Not polyfillable.
4474 // This helper is defined outside the main scope so that the use of
4475 // 'eval' does not taint the scope for minifiers.
4476 function __cons(t, a) {
4477 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4480 <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.foo = 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){
4483 exports.byteLength = byteLength
4484 exports.toByteArray = toByteArray
4485 exports.fromByteArray = fromByteArray
4489 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4491 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4492 for (var i =
0, len = code.length; i < len; ++i) {
4494 revLookup[code.charCodeAt(i)] = i
4497 revLookup['-'.charCodeAt(
0)] =
62
4498 revLookup['_'.charCodeAt(
0)] =
63
4500 function placeHoldersCount (b64) {
4501 var len = b64.length
4503 throw new Error('Invalid string. Length must be a multiple of
4')
4506 // the number of equal signs (place holders)
4507 // if there are two placeholders, than the two characters before it
4508 // represent one byte
4509 // if there is only one, then the three characters before it represent
2 bytes
4510 // this is just a cheap hack to not do indexOf twice
4511 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4514 function byteLength (b64) {
4515 // base64 is
4/
3 + up to two characters of the original data
4516 return b64.length *
3 /
4 - placeHoldersCount(b64)
4519 function toByteArray (b64) {
4520 var i, j, l, tmp, placeHolders, arr
4521 var len = b64.length
4522 placeHolders = placeHoldersCount(b64)
4524 arr = new Arr(len *
3 /
4 - placeHolders)
4526 // if there are placeholders, only get up to the last complete
4 chars
4527 l = placeHolders
> 0 ? len -
4 : len
4531 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4532 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4533 arr[L++] = (tmp
>> 16) &
0xFF
4534 arr[L++] = (tmp
>> 8) &
0xFF
4535 arr[L++] = tmp &
0xFF
4538 if (placeHolders ===
2) {
4539 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4540 arr[L++] = tmp &
0xFF
4541 } else if (placeHolders ===
1) {
4542 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4543 arr[L++] = (tmp
>> 8) &
0xFF
4544 arr[L++] = tmp &
0xFF
4550 function tripletToBase64 (num) {
4551 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4554 function encodeChunk (uint8, start, end) {
4557 for (var i = start; i < end; i +=
3) {
4558 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4559 output.push(tripletToBase64(tmp))
4561 return output.join('')
4564 function fromByteArray (uint8) {
4566 var len = uint8.length
4567 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4570 var maxChunkLength =
16383 // must be multiple of
3
4572 // go through the array every three bytes, we'll deal with trailing stuff later
4573 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4574 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4577 // pad the end with zeros, but make sure to not forget the extra bytes
4578 if (extraBytes ===
1) {
4579 tmp = uint8[len -
1]
4580 output += lookup[tmp
>> 2]
4581 output += lookup[(tmp <<
4) &
0x3F]
4583 } else if (extraBytes ===
2) {
4584 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4585 output += lookup[tmp
>> 10]
4586 output += lookup[(tmp
>> 4) &
0x3F]
4587 output += lookup[(tmp <<
2) &
0x3F]
4593 return parts.join('')
4596 },{}],
2:[function(require,module,exports){
4598 * The buffer module from node.js, for the browser.
4600 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4603 /* eslint-disable no-proto */
4607 var base64 = require('base64-js')
4608 var ieee754 = require('ieee754')
4610 exports.Buffer = Buffer
4611 exports.SlowBuffer = SlowBuffer
4612 exports.INSPECT_MAX_BYTES =
50
4614 var K_MAX_LENGTH =
0x7fffffff
4615 exports.kMaxLength = K_MAX_LENGTH
4618 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4619 * === true Use Uint8Array implementation (fastest)
4620 * === false Print warning and recommend using `buffer` v4.x which has an Object
4621 * implementation (most compatible, even IE6)
4623 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4624 * Opera
11.6+, iOS
4.2+.
4626 * We report that the browser does not support typed arrays if the are not subclassable
4627 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4628 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4629 * for __proto__ and has a buggy typed array implementation.
4631 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4633 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4634 typeof console.error === 'function') {
4636 'This browser lacks typed array (Uint8Array) support which is required by ' +
4637 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4641 function typedArraySupport () {
4642 // Can typed array instances can be augmented?
4644 var arr = new Uint8Array(
1)
4645 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4646 return arr.foo() ===
42
4652 function createBuffer (length) {
4653 if (length
> K_MAX_LENGTH) {
4654 throw new RangeError('Invalid typed array length')
4656 // Return an augmented `Uint8Array` instance
4657 var buf = new Uint8Array(length)
4658 buf.__proto__ = Buffer.prototype
4663 * The Buffer constructor returns instances of `Uint8Array` that have their
4664 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4665 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4666 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4667 * returns a single octet.
4669 * The `Uint8Array` prototype remains unmodified.
4672 function Buffer (arg, encodingOrOffset, length) {
4674 if (typeof arg === 'number') {
4675 if (typeof encodingOrOffset === 'string') {
4677 'If encoding is specified then the first argument must be a string'
4680 return allocUnsafe(arg)
4682 return from(arg, encodingOrOffset, length)
4685 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4686 if (typeof Symbol !== 'undefined' && Symbol.species &&
4687 Buffer[Symbol.species] === Buffer) {
4688 Object.defineProperty(Buffer, Symbol.species, {
4696 Buffer.poolSize =
8192 // not used by this implementation
4698 function from (value, encodingOrOffset, length) {
4699 if (typeof value === 'number') {
4700 throw new TypeError('"value" argument must not be a number')
4703 if (value instanceof ArrayBuffer) {
4704 return fromArrayBuffer(value, encodingOrOffset, length)
4707 if (typeof value === 'string') {
4708 return fromString(value, encodingOrOffset)
4711 return fromObject(value)
4715 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4716 * if value is a number.
4717 * Buffer.from(str[, encoding])
4718 * Buffer.from(array)
4719 * Buffer.from(buffer)
4720 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4722 Buffer.from = function (value, encodingOrOffset, length) {
4723 return from(value, encodingOrOffset, length)
4726 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4727 // https://github.com/feross/buffer/pull/
148
4728 Buffer.prototype.__proto__ = Uint8Array.prototype
4729 Buffer.__proto__ = Uint8Array
4731 function assertSize (size) {
4732 if (typeof size !== 'number') {
4733 throw new TypeError('"size" argument must be a number')
4734 } else if (size <
0) {
4735 throw new RangeError('"size" argument must not be negative')
4739 function alloc (size, fill, encoding) {
4742 return createBuffer(size)
4744 if (fill !== undefined) {
4745 // Only pay attention to encoding if it's a string. This
4746 // prevents accidentally sending in a number that would
4747 // be interpretted as a start offset.
4748 return typeof encoding === 'string'
4749 ? createBuffer(size).fill(fill, encoding)
4750 : createBuffer(size).fill(fill)
4752 return createBuffer(size)
4756 * Creates a new filled Buffer instance.
4757 * alloc(size[, fill[, encoding]])
4759 Buffer.alloc = function (size, fill, encoding) {
4760 return alloc(size, fill, encoding)
4763 function allocUnsafe (size) {
4765 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4769 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4771 Buffer.allocUnsafe = function (size) {
4772 return allocUnsafe(size)
4775 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4777 Buffer.allocUnsafeSlow = function (size) {
4778 return allocUnsafe(size)
4781 function fromString (string, encoding) {
4782 if (typeof encoding !== 'string' || encoding === '') {
4786 if (!Buffer.isEncoding(encoding)) {
4787 throw new TypeError('"encoding" must be a valid string encoding')
4790 var length = byteLength(string, encoding) |
0
4791 var buf = createBuffer(length)
4793 var actual = buf.write(string, encoding)
4795 if (actual !== length) {
4796 // Writing a hex string, for example, that contains invalid characters will
4797 // cause everything after the first invalid character to be ignored. (e.g.
4798 // 'abxxcd' will be treated as 'ab')
4799 buf = buf.slice(
0, actual)
4805 function fromArrayLike (array) {
4806 var length = array.length <
0 ?
0 : checked(array.length) |
0
4807 var buf = createBuffer(length)
4808 for (var i =
0; i < length; i +=
1) {
4809 buf[i] = array[i] &
255
4814 function fromArrayBuffer (array, byteOffset, length) {
4815 if (byteOffset <
0 || array.byteLength < byteOffset) {
4816 throw new RangeError('\'offset\' is out of bounds')
4819 if (array.byteLength < byteOffset + (length ||
0)) {
4820 throw new RangeError('\'length\' is out of bounds')
4824 if (byteOffset === undefined && length === undefined) {
4825 buf = new Uint8Array(array)
4826 } else if (length === undefined) {
4827 buf = new Uint8Array(array, byteOffset)
4829 buf = new Uint8Array(array, byteOffset, length)
4832 // Return an augmented `Uint8Array` instance
4833 buf.__proto__ = Buffer.prototype
4837 function fromObject (obj) {
4838 if (Buffer.isBuffer(obj)) {
4839 var len = checked(obj.length) |
0
4840 var buf = createBuffer(len)
4842 if (buf.length ===
0) {
4846 obj.copy(buf,
0,
0, len)
4851 if (isArrayBufferView(obj) || 'length' in obj) {
4852 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4853 return createBuffer(
0)
4855 return fromArrayLike(obj)
4858 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
4859 return fromArrayLike(obj.data)
4863 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
4866 function checked (length) {
4867 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
4868 // length is NaN (which is otherwise coerced to zero.)
4869 if (length
>= K_MAX_LENGTH) {
4870 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
4871 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
4876 function SlowBuffer (length) {
4877 if (+length != length) { // eslint-disable-line eqeqeq
4880 return Buffer.alloc(+length)
4883 Buffer.isBuffer = function isBuffer (b) {
4884 return b != null && b._isBuffer === true
4887 Buffer.compare = function compare (a, b) {
4888 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
4889 throw new TypeError('Arguments must be Buffers')
4892 if (a === b) return
0
4897 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
4898 if (a[i] !== b[i]) {
4905 if (x < y) return -
1
4910 Buffer.isEncoding = function isEncoding (encoding) {
4911 switch (String(encoding).toLowerCase()) {
4929 Buffer.concat = function concat (list, length) {
4930 if (!Array.isArray(list)) {
4931 throw new TypeError('"list" argument must be an Array of Buffers')
4934 if (list.length ===
0) {
4935 return Buffer.alloc(
0)
4939 if (length === undefined) {
4941 for (i =
0; i < list.length; ++i) {
4942 length += list[i].length
4946 var buffer = Buffer.allocUnsafe(length)
4948 for (i =
0; i < list.length; ++i) {
4950 if (!Buffer.isBuffer(buf)) {
4951 throw new TypeError('"list" argument must be an Array of Buffers')
4953 buf.copy(buffer, pos)
4959 function byteLength (string, encoding) {
4960 if (Buffer.isBuffer(string)) {
4961 return string.length
4963 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
4964 return string.byteLength
4966 if (typeof string !== 'string') {
4967 string = '' + string
4970 var len = string.length
4971 if (len ===
0) return
0
4973 // Use a for loop to avoid recursion
4974 var loweredCase = false
4984 return utf8ToBytes(string).length
4993 return base64ToBytes(string).length
4995 if (loweredCase) return utf8ToBytes(string).length // assume utf8
4996 encoding = ('' + encoding).toLowerCase()
5001 Buffer.byteLength = byteLength
5003 function slowToString (encoding, start, end) {
5004 var loweredCase = false
5006 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5007 // property of a typed array.
5009 // This behaves neither like String nor Uint8Array in that we set start/end
5010 // to their upper/lower bounds if the value passed is out of range.
5011 // undefined is handled specially as per ECMA-
262 6th Edition,
5012 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5013 if (start === undefined || start <
0) {
5016 // Return early if start
> this.length. Done here to prevent potential uint32
5017 // coercion fail below.
5018 if (start
> this.length) {
5022 if (end === undefined || end
> this.length) {
5030 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5038 if (!encoding) encoding = 'utf8'
5043 return hexSlice(this, start, end)
5047 return utf8Slice(this, start, end)
5050 return asciiSlice(this, start, end)
5054 return latin1Slice(this, start, end)
5057 return base64Slice(this, start, end)
5063 return utf16leSlice(this, start, end)
5066 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5067 encoding = (encoding + '').toLowerCase()
5073 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5074 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5075 // reliably in a browserify context because there could be multiple different
5076 // copies of the 'buffer' package in use. This method works even for Buffer
5077 // instances that were created from another copy of the `buffer` package.
5078 // See: https://github.com/feross/buffer/issues/
154
5079 Buffer.prototype._isBuffer = true
5081 function swap (b, n, m) {
5087 Buffer.prototype.swap16 = function swap16 () {
5088 var len = this.length
5089 if (len %
2 !==
0) {
5090 throw new RangeError('Buffer size must be a multiple of
16-bits')
5092 for (var i =
0; i < len; i +=
2) {
5093 swap(this, i, i +
1)
5098 Buffer.prototype.swap32 = function swap32 () {
5099 var len = this.length
5100 if (len %
4 !==
0) {
5101 throw new RangeError('Buffer size must be a multiple of
32-bits')
5103 for (var i =
0; i < len; i +=
4) {
5104 swap(this, i, i +
3)
5105 swap(this, i +
1, i +
2)
5110 Buffer.prototype.swap64 = function swap64 () {
5111 var len = this.length
5112 if (len %
8 !==
0) {
5113 throw new RangeError('Buffer size must be a multiple of
64-bits')
5115 for (var i =
0; i < len; i +=
8) {
5116 swap(this, i, i +
7)
5117 swap(this, i +
1, i +
6)
5118 swap(this, i +
2, i +
5)
5119 swap(this, i +
3, i +
4)
5124 Buffer.prototype.toString = function toString () {
5125 var length = this.length
5126 if (length ===
0) return ''
5127 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5128 return slowToString.apply(this, arguments)
5131 Buffer.prototype.equals = function equals (b) {
5132 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5133 if (this === b) return true
5134 return Buffer.compare(this, b) ===
0
5137 Buffer.prototype.inspect = function inspect () {
5139 var max = exports.INSPECT_MAX_BYTES
5140 if (this.length
> 0) {
5141 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5142 if (this.length
> max) str += ' ... '
5144 return '
<Buffer ' + str + '
>'
5147 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5148 if (!Buffer.isBuffer(target)) {
5149 throw new TypeError('Argument must be a Buffer')
5152 if (start === undefined) {
5155 if (end === undefined) {
5156 end = target ? target.length :
0
5158 if (thisStart === undefined) {
5161 if (thisEnd === undefined) {
5162 thisEnd = this.length
5165 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5166 throw new RangeError('out of range index')
5169 if (thisStart
>= thisEnd && start
>= end) {
5172 if (thisStart
>= thisEnd) {
5184 if (this === target) return
0
5186 var x = thisEnd - thisStart
5188 var len = Math.min(x, y)
5190 var thisCopy = this.slice(thisStart, thisEnd)
5191 var targetCopy = target.slice(start, end)
5193 for (var i =
0; i < len; ++i) {
5194 if (thisCopy[i] !== targetCopy[i]) {
5201 if (x < y) return -
1
5206 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5207 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5210 // - buffer - a Buffer to search
5211 // - val - a string, Buffer, or number
5212 // - byteOffset - an index into `buffer`; will be clamped to an int32
5213 // - encoding - an optional encoding, relevant is val is a string
5214 // - dir - true for indexOf, false for lastIndexOf
5215 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5216 // Empty buffer means no match
5217 if (buffer.length ===
0) return -
1
5219 // Normalize byteOffset
5220 if (typeof byteOffset === 'string') {
5221 encoding = byteOffset
5223 } else if (byteOffset
> 0x7fffffff) {
5224 byteOffset =
0x7fffffff
5225 } else if (byteOffset < -
0x80000000) {
5226 byteOffset = -
0x80000000
5228 byteOffset = +byteOffset // Coerce to Number.
5229 if (numberIsNaN(byteOffset)) {
5230 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5231 byteOffset = dir ?
0 : (buffer.length -
1)
5234 // Normalize byteOffset: negative offsets start from the end of the buffer
5235 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5236 if (byteOffset
>= buffer.length) {
5238 else byteOffset = buffer.length -
1
5239 } else if (byteOffset <
0) {
5240 if (dir) byteOffset =
0
5245 if (typeof val === 'string') {
5246 val = Buffer.from(val, encoding)
5249 // Finally, search either indexOf (if dir is true) or lastIndexOf
5250 if (Buffer.isBuffer(val)) {
5251 // Special case: looking for empty string/buffer always fails
5252 if (val.length ===
0) {
5255 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5256 } else if (typeof val === 'number') {
5257 val = val &
0xFF // Search for a byte value [
0-
255]
5258 if (typeof Uint8Array.prototype.indexOf === 'function') {
5260 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5262 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5265 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5268 throw new TypeError('val must be string, number or Buffer')
5271 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5273 var arrLength = arr.length
5274 var valLength = val.length
5276 if (encoding !== undefined) {
5277 encoding = String(encoding).toLowerCase()
5278 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5279 encoding === 'utf16le' || encoding === 'utf-
16le') {
5280 if (arr.length <
2 || val.length <
2) {
5290 function read (buf, i) {
5291 if (indexSize ===
1) {
5294 return buf.readUInt16BE(i * indexSize)
5301 for (i = byteOffset; i < arrLength; i++) {
5302 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5303 if (foundIndex === -
1) foundIndex = i
5304 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5306 if (foundIndex !== -
1) i -= i - foundIndex
5311 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5312 for (i = byteOffset; i
>=
0; i--) {
5314 for (var j =
0; j < valLength; j++) {
5315 if (read(arr, i + j) !== read(val, j)) {
5327 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5328 return this.indexOf(val, byteOffset, encoding) !== -
1
5331 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5332 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5335 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5336 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5339 function hexWrite (buf, string, offset, length) {
5340 offset = Number(offset) ||
0
5341 var remaining = buf.length - offset
5345 length = Number(length)
5346 if (length
> remaining) {
5351 // must be an even number of digits
5352 var strLen = string.length
5353 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5355 if (length
> strLen /
2) {
5358 for (var i =
0; i < length; ++i) {
5359 var parsed = parseInt(string.substr(i *
2,
2),
16)
5360 if (numberIsNaN(parsed)) return i
5361 buf[offset + i] = parsed
5366 function utf8Write (buf, string, offset, length) {
5367 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5370 function asciiWrite (buf, string, offset, length) {
5371 return blitBuffer(asciiToBytes(string), buf, offset, length)
5374 function latin1Write (buf, string, offset, length) {
5375 return asciiWrite(buf, string, offset, length)
5378 function base64Write (buf, string, offset, length) {
5379 return blitBuffer(base64ToBytes(string), buf, offset, length)
5382 function ucs2Write (buf, string, offset, length) {
5383 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5386 Buffer.prototype.write = function write (string, offset, length, encoding) {
5387 // Buffer#write(string)
5388 if (offset === undefined) {
5390 length = this.length
5392 // Buffer#write(string, encoding)
5393 } else if (length === undefined && typeof offset === 'string') {
5395 length = this.length
5397 // Buffer#write(string, offset[, length][, encoding])
5398 } else if (isFinite(offset)) {
5399 offset = offset
>>> 0
5400 if (isFinite(length)) {
5401 length = length
>>> 0
5402 if (encoding === undefined) encoding = 'utf8'
5409 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5413 var remaining = this.length - offset
5414 if (length === undefined || length
> remaining) length = remaining
5416 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5417 throw new RangeError('Attempt to write outside buffer bounds')
5420 if (!encoding) encoding = 'utf8'
5422 var loweredCase = false
5426 return hexWrite(this, string, offset, length)
5430 return utf8Write(this, string, offset, length)
5433 return asciiWrite(this, string, offset, length)
5437 return latin1Write(this, string, offset, length)
5440 // Warning: maxLength not taken into account in base64Write
5441 return base64Write(this, string, offset, length)
5447 return ucs2Write(this, string, offset, length)
5450 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5451 encoding = ('' + encoding).toLowerCase()
5457 Buffer.prototype.toJSON = function toJSON () {
5460 data: Array.prototype.slice.call(this._arr || this,
0)
5464 function base64Slice (buf, start, end) {
5465 if (start ===
0 && end === buf.length) {
5466 return base64.fromByteArray(buf)
5468 return base64.fromByteArray(buf.slice(start, end))
5472 function utf8Slice (buf, start, end) {
5473 end = Math.min(buf.length, end)
5478 var firstByte = buf[i]
5479 var codePoint = null
5480 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5481 : (firstByte
> 0xDF) ?
3
5482 : (firstByte
> 0xBF) ?
2
5485 if (i + bytesPerSequence <= end) {
5486 var secondByte, thirdByte, fourthByte, tempCodePoint
5488 switch (bytesPerSequence) {
5490 if (firstByte <
0x80) {
5491 codePoint = firstByte
5495 secondByte = buf[i +
1]
5496 if ((secondByte &
0xC0) ===
0x80) {
5497 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5498 if (tempCodePoint
> 0x7F) {
5499 codePoint = tempCodePoint
5504 secondByte = buf[i +
1]
5505 thirdByte = buf[i +
2]
5506 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5507 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5508 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5509 codePoint = tempCodePoint
5514 secondByte = buf[i +
1]
5515 thirdByte = buf[i +
2]
5516 fourthByte = buf[i +
3]
5517 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5518 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5519 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5520 codePoint = tempCodePoint
5526 if (codePoint === null) {
5527 // we did not generate a valid codePoint so insert a
5528 // replacement char (U+FFFD) and advance only
1 byte
5530 bytesPerSequence =
1
5531 } else if (codePoint
> 0xFFFF) {
5532 // encode to utf16 (surrogate pair dance)
5533 codePoint -=
0x10000
5534 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5535 codePoint =
0xDC00 | codePoint &
0x3FF
5539 i += bytesPerSequence
5542 return decodeCodePointsArray(res)
5545 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5546 // the lowest limit is Chrome, with
0x10000 args.
5547 // We go
1 magnitude less, for safety
5548 var MAX_ARGUMENTS_LENGTH =
0x1000
5550 function decodeCodePointsArray (codePoints) {
5551 var len = codePoints.length
5552 if (len <= MAX_ARGUMENTS_LENGTH) {
5553 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5556 // Decode in chunks to avoid
"call stack size exceeded".
5560 res += String.fromCharCode.apply(
5562 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5568 function asciiSlice (buf, start, end) {
5570 end = Math.min(buf.length, end)
5572 for (var i = start; i < end; ++i) {
5573 ret += String.fromCharCode(buf[i] &
0x7F)
5578 function latin1Slice (buf, start, end) {
5580 end = Math.min(buf.length, end)
5582 for (var i = start; i < end; ++i) {
5583 ret += String.fromCharCode(buf[i])
5588 function hexSlice (buf, start, end) {
5589 var len = buf.length
5591 if (!start || start <
0) start =
0
5592 if (!end || end <
0 || end
> len) end = len
5595 for (var i = start; i < end; ++i) {
5596 out += toHex(buf[i])
5601 function utf16leSlice (buf, start, end) {
5602 var bytes = buf.slice(start, end)
5604 for (var i =
0; i < bytes.length; i +=
2) {
5605 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5610 Buffer.prototype.slice = function slice (start, end) {
5611 var len = this.length
5613 end = end === undefined ? len : ~~end
5617 if (start <
0) start =
0
5618 } else if (start
> len) {
5624 if (end <
0) end =
0
5625 } else if (end
> len) {
5629 if (end < start) end = start
5631 var newBuf = this.subarray(start, end)
5632 // Return an augmented `Uint8Array` instance
5633 newBuf.__proto__ = Buffer.prototype
5638 * Need to make sure that buffer isn't trying to write out of bounds.
5640 function checkOffset (offset, ext, length) {
5641 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5642 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5645 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5646 offset = offset
>>> 0
5647 byteLength = byteLength
>>> 0
5648 if (!noAssert) checkOffset(offset, byteLength, this.length)
5650 var val = this[offset]
5653 while (++i < byteLength && (mul *=
0x100)) {
5654 val += this[offset + i] * mul
5660 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5661 offset = offset
>>> 0
5662 byteLength = byteLength
>>> 0
5664 checkOffset(offset, byteLength, this.length)
5667 var val = this[offset + --byteLength]
5669 while (byteLength
> 0 && (mul *=
0x100)) {
5670 val += this[offset + --byteLength] * mul
5676 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5677 offset = offset
>>> 0
5678 if (!noAssert) checkOffset(offset,
1, this.length)
5682 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5683 offset = offset
>>> 0
5684 if (!noAssert) checkOffset(offset,
2, this.length)
5685 return this[offset] | (this[offset +
1] <<
8)
5688 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5689 offset = offset
>>> 0
5690 if (!noAssert) checkOffset(offset,
2, this.length)
5691 return (this[offset] <<
8) | this[offset +
1]
5694 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5695 offset = offset
>>> 0
5696 if (!noAssert) checkOffset(offset,
4, this.length)
5698 return ((this[offset]) |
5699 (this[offset +
1] <<
8) |
5700 (this[offset +
2] <<
16)) +
5701 (this[offset +
3] *
0x1000000)
5704 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5705 offset = offset
>>> 0
5706 if (!noAssert) checkOffset(offset,
4, this.length)
5708 return (this[offset] *
0x1000000) +
5709 ((this[offset +
1] <<
16) |
5710 (this[offset +
2] <<
8) |
5714 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5715 offset = offset
>>> 0
5716 byteLength = byteLength
>>> 0
5717 if (!noAssert) checkOffset(offset, byteLength, this.length)
5719 var val = this[offset]
5722 while (++i < byteLength && (mul *=
0x100)) {
5723 val += this[offset + i] * mul
5727 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5732 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5733 offset = offset
>>> 0
5734 byteLength = byteLength
>>> 0
5735 if (!noAssert) checkOffset(offset, byteLength, this.length)
5739 var val = this[offset + --i]
5740 while (i
> 0 && (mul *=
0x100)) {
5741 val += this[offset + --i] * mul
5745 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5750 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5751 offset = offset
>>> 0
5752 if (!noAssert) checkOffset(offset,
1, this.length)
5753 if (!(this[offset] &
0x80)) return (this[offset])
5754 return ((
0xff - this[offset] +
1) * -
1)
5757 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5758 offset = offset
>>> 0
5759 if (!noAssert) checkOffset(offset,
2, this.length)
5760 var val = this[offset] | (this[offset +
1] <<
8)
5761 return (val &
0x8000) ? val |
0xFFFF0000 : val
5764 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5765 offset = offset
>>> 0
5766 if (!noAssert) checkOffset(offset,
2, this.length)
5767 var val = this[offset +
1] | (this[offset] <<
8)
5768 return (val &
0x8000) ? val |
0xFFFF0000 : val
5771 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5772 offset = offset
>>> 0
5773 if (!noAssert) checkOffset(offset,
4, this.length)
5775 return (this[offset]) |
5776 (this[offset +
1] <<
8) |
5777 (this[offset +
2] <<
16) |
5778 (this[offset +
3] <<
24)
5781 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5782 offset = offset
>>> 0
5783 if (!noAssert) checkOffset(offset,
4, this.length)
5785 return (this[offset] <<
24) |
5786 (this[offset +
1] <<
16) |
5787 (this[offset +
2] <<
8) |
5791 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5792 offset = offset
>>> 0
5793 if (!noAssert) checkOffset(offset,
4, this.length)
5794 return ieee754.read(this, offset, true,
23,
4)
5797 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5798 offset = offset
>>> 0
5799 if (!noAssert) checkOffset(offset,
4, this.length)
5800 return ieee754.read(this, offset, false,
23,
4)
5803 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5804 offset = offset
>>> 0
5805 if (!noAssert) checkOffset(offset,
8, this.length)
5806 return ieee754.read(this, offset, true,
52,
8)
5809 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5810 offset = offset
>>> 0
5811 if (!noAssert) checkOffset(offset,
8, this.length)
5812 return ieee754.read(this, offset, false,
52,
8)
5815 function checkInt (buf, value, offset, ext, max, min) {
5816 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5817 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5818 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5821 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5823 offset = offset
>>> 0
5824 byteLength = byteLength
>>> 0
5826 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5827 checkInt(this, value, offset, byteLength, maxBytes,
0)
5832 this[offset] = value &
0xFF
5833 while (++i < byteLength && (mul *=
0x100)) {
5834 this[offset + i] = (value / mul) &
0xFF
5837 return offset + byteLength
5840 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5842 offset = offset
>>> 0
5843 byteLength = byteLength
>>> 0
5845 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5846 checkInt(this, value, offset, byteLength, maxBytes,
0)
5849 var i = byteLength -
1
5851 this[offset + i] = value &
0xFF
5852 while (--i
>=
0 && (mul *=
0x100)) {
5853 this[offset + i] = (value / mul) &
0xFF
5856 return offset + byteLength
5859 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
5861 offset = offset
>>> 0
5862 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
5863 this[offset] = (value &
0xff)
5867 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
5869 offset = offset
>>> 0
5870 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5871 this[offset] = (value &
0xff)
5872 this[offset +
1] = (value
>>> 8)
5876 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
5878 offset = offset
>>> 0
5879 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5880 this[offset] = (value
>>> 8)
5881 this[offset +
1] = (value &
0xff)
5885 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
5887 offset = offset
>>> 0
5888 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5889 this[offset +
3] = (value
>>> 24)
5890 this[offset +
2] = (value
>>> 16)
5891 this[offset +
1] = (value
>>> 8)
5892 this[offset] = (value &
0xff)
5896 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
5898 offset = offset
>>> 0
5899 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5900 this[offset] = (value
>>> 24)
5901 this[offset +
1] = (value
>>> 16)
5902 this[offset +
2] = (value
>>> 8)
5903 this[offset +
3] = (value &
0xff)
5907 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
5909 offset = offset
>>> 0
5911 var limit = Math.pow(
2, (
8 * byteLength) -
1)
5913 checkInt(this, value, offset, byteLength, limit -
1, -limit)
5919 this[offset] = value &
0xFF
5920 while (++i < byteLength && (mul *=
0x100)) {
5921 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
5924 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
5927 return offset + byteLength
5930 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
5932 offset = offset
>>> 0
5934 var limit = Math.pow(
2, (
8 * byteLength) -
1)
5936 checkInt(this, value, offset, byteLength, limit -
1, -limit)
5939 var i = byteLength -
1
5942 this[offset + i] = value &
0xFF
5943 while (--i
>=
0 && (mul *=
0x100)) {
5944 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
5947 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
5950 return offset + byteLength
5953 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
5955 offset = offset
>>> 0
5956 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
5957 if (value <
0) value =
0xff + value +
1
5958 this[offset] = (value &
0xff)
5962 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
5964 offset = offset
>>> 0
5965 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
5966 this[offset] = (value &
0xff)
5967 this[offset +
1] = (value
>>> 8)
5971 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
5973 offset = offset
>>> 0
5974 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
5975 this[offset] = (value
>>> 8)
5976 this[offset +
1] = (value &
0xff)
5980 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
5982 offset = offset
>>> 0
5983 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
5984 this[offset] = (value &
0xff)
5985 this[offset +
1] = (value
>>> 8)
5986 this[offset +
2] = (value
>>> 16)
5987 this[offset +
3] = (value
>>> 24)
5991 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
5993 offset = offset
>>> 0
5994 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
5995 if (value <
0) value =
0xffffffff + value +
1
5996 this[offset] = (value
>>> 24)
5997 this[offset +
1] = (value
>>> 16)
5998 this[offset +
2] = (value
>>> 8)
5999 this[offset +
3] = (value &
0xff)
6003 function checkIEEE754 (buf, value, offset, ext, max, min) {
6004 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
6005 if (offset <
0) throw new RangeError('Index out of range')
6008 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6010 offset = offset
>>> 0
6012 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6014 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6018 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6019 return writeFloat(this, value, offset, true, noAssert)
6022 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6023 return writeFloat(this, value, offset, false, noAssert)
6026 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6028 offset = offset
>>> 0
6030 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6032 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6036 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6037 return writeDouble(this, value, offset, true, noAssert)
6040 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6041 return writeDouble(this, value, offset, false, noAssert)
6044 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6045 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6046 if (!start) start =
0
6047 if (!end && end !==
0) end = this.length
6048 if (targetStart
>= target.length) targetStart = target.length
6049 if (!targetStart) targetStart =
0
6050 if (end
> 0 && end < start) end = start
6052 // Copy
0 bytes; we're done
6053 if (end === start) return
0
6054 if (target.length ===
0 || this.length ===
0) return
0
6056 // Fatal error conditions
6057 if (targetStart <
0) {
6058 throw new RangeError('targetStart out of bounds')
6060 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6061 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6064 if (end
> this.length) end = this.length
6065 if (target.length - targetStart < end - start) {
6066 end = target.length - targetStart + start
6069 var len = end - start
6072 if (this === target && start < targetStart && targetStart < end) {
6073 // descending copy from end
6074 for (i = len -
1; i
>=
0; --i) {
6075 target[i + targetStart] = this[i + start]
6077 } else if (len <
1000) {
6078 // ascending copy from start
6079 for (i =
0; i < len; ++i) {
6080 target[i + targetStart] = this[i + start]
6083 Uint8Array.prototype.set.call(
6085 this.subarray(start, start + len),
6094 // buffer.fill(number[, offset[, end]])
6095 // buffer.fill(buffer[, offset[, end]])
6096 // buffer.fill(string[, offset[, end]][, encoding])
6097 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6098 // Handle string cases:
6099 if (typeof val === 'string') {
6100 if (typeof start === 'string') {
6104 } else if (typeof end === 'string') {
6108 if (val.length ===
1) {
6109 var code = val.charCodeAt(
0)
6114 if (encoding !== undefined && typeof encoding !== 'string') {
6115 throw new TypeError('encoding must be a string')
6117 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6118 throw new TypeError('Unknown encoding: ' + encoding)
6120 } else if (typeof val === 'number') {
6124 // Invalid ranges are not set to a default, so can range check early.
6125 if (start <
0 || this.length < start || this.length < end) {
6126 throw new RangeError('Out of range index')
6134 end = end === undefined ? this.length : end
>>> 0
6139 if (typeof val === 'number') {
6140 for (i = start; i < end; ++i) {
6144 var bytes = Buffer.isBuffer(val)
6146 : new Buffer(val, encoding)
6147 var len = bytes.length
6148 for (i =
0; i < end - start; ++i) {
6149 this[i + start] = bytes[i % len]
6159 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6161 function base64clean (str) {
6162 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6163 str = str.trim().replace(INVALID_BASE64_RE, '')
6164 // Node converts strings with length <
2 to ''
6165 if (str.length <
2) return ''
6166 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6167 while (str.length %
4 !==
0) {
6173 function toHex (n) {
6174 if (n <
16) return '
0' + n.toString(
16)
6175 return n.toString(
16)
6178 function utf8ToBytes (string, units) {
6179 units = units || Infinity
6181 var length = string.length
6182 var leadSurrogate = null
6185 for (var i =
0; i < length; ++i) {
6186 codePoint = string.charCodeAt(i)
6188 // is surrogate component
6189 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6190 // last char was a lead
6191 if (!leadSurrogate) {
6193 if (codePoint
> 0xDBFF) {
6195 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6197 } else if (i +
1 === length) {
6199 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6204 leadSurrogate = codePoint
6210 if (codePoint <
0xDC00) {
6211 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6212 leadSurrogate = codePoint
6216 // valid surrogate pair
6217 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6218 } else if (leadSurrogate) {
6219 // valid bmp char, but last char was a lead
6220 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6223 leadSurrogate = null
6226 if (codePoint <
0x80) {
6227 if ((units -=
1) <
0) break
6228 bytes.push(codePoint)
6229 } else if (codePoint <
0x800) {
6230 if ((units -=
2) <
0) break
6232 codePoint
>> 0x6 |
0xC0,
6233 codePoint &
0x3F |
0x80
6235 } else if (codePoint <
0x10000) {
6236 if ((units -=
3) <
0) break
6238 codePoint
>> 0xC |
0xE0,
6239 codePoint
>> 0x6 &
0x3F |
0x80,
6240 codePoint &
0x3F |
0x80
6242 } else if (codePoint <
0x110000) {
6243 if ((units -=
4) <
0) break
6245 codePoint
>> 0x12 |
0xF0,
6246 codePoint
>> 0xC &
0x3F |
0x80,
6247 codePoint
>> 0x6 &
0x3F |
0x80,
6248 codePoint &
0x3F |
0x80
6251 throw new Error('Invalid code point')
6258 function asciiToBytes (str) {
6260 for (var i =
0; i < str.length; ++i) {
6261 // Node's code seems to be doing this and not &
0x7F..
6262 byteArray.push(str.charCodeAt(i) &
0xFF)
6267 function utf16leToBytes (str, units) {
6270 for (var i =
0; i < str.length; ++i) {
6271 if ((units -=
2) <
0) break
6273 c = str.charCodeAt(i)
6283 function base64ToBytes (str) {
6284 return base64.toByteArray(base64clean(str))
6287 function blitBuffer (src, dst, offset, length) {
6288 for (var i =
0; i < length; ++i) {
6289 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6290 dst[i + offset] = src[i]
6295 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6296 function isArrayBufferView (obj) {
6297 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6300 function numberIsNaN (obj) {
6301 return obj !== obj // eslint-disable-line no-self-compare
6304 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6305 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6307 var eLen = nBytes *
8 - mLen -
1
6308 var eMax = (
1 << eLen) -
1
6309 var eBias = eMax
>> 1
6311 var i = isLE ? (nBytes -
1) :
0
6312 var d = isLE ? -
1 :
1
6313 var s = buffer[offset + i]
6317 e = s & ((
1 << (-nBits)) -
1)
6320 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6322 m = e & ((
1 << (-nBits)) -
1)
6325 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6329 } else if (e === eMax) {
6330 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6332 m = m + Math.pow(
2, mLen)
6335 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6338 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6340 var eLen = nBytes *
8 - mLen -
1
6341 var eMax = (
1 << eLen) -
1
6342 var eBias = eMax
>> 1
6343 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6344 var i = isLE ?
0 : (nBytes -
1)
6345 var d = isLE ?
1 : -
1
6346 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6348 value = Math.abs(value)
6350 if (isNaN(value) || value === Infinity) {
6351 m = isNaN(value) ?
1 :
0
6354 e = Math.floor(Math.log(value) / Math.LN2)
6355 if (value * (c = Math.pow(
2, -e)) <
1) {
6359 if (e + eBias
>=
1) {
6362 value += rt * Math.pow(
2,
1 - eBias)
6364 if (value * c
>=
2) {
6369 if (e + eBias
>= eMax) {
6372 } else if (e + eBias
>=
1) {
6373 m = (value * c -
1) * Math.pow(
2, mLen)
6376 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6381 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6385 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6387 buffer[offset + i - d] |= s *
128
6390 },{}],
4:[function(require,module,exports){
6391 window.basex = require('base-x')
6392 },{
"base-x":
5}],
5:[function(require,module,exports){
6394 // Forked from https://github.com/cryptocoinjs/bs58
6395 // Originally written by Mike Hearn for BitcoinJ
6396 // Copyright (c)
2011 Google Inc
6397 // Ported to JavaScript by Stefan Thomas
6398 // Merged Buffer refactorings from base58-native by Stephen Pair
6399 // Copyright (c)
2013 BitPay Inc
6401 var Buffer = require('safe-buffer').Buffer
6403 module.exports = function base (ALPHABET) {
6404 var ALPHABET_MAP = {}
6405 var BASE = ALPHABET.length
6406 var LEADER = ALPHABET.charAt(
0)
6408 // pre-compute lookup table
6409 for (var z =
0; z < ALPHABET.length; z++) {
6410 var x = ALPHABET.charAt(z)
6412 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6416 function encode (source) {
6417 if (source.length ===
0) return ''
6420 for (var i =
0; i < source.length; ++i) {
6421 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6422 carry += digits[j] <<
8
6423 digits[j] = carry % BASE
6424 carry = (carry / BASE) |
0
6428 digits.push(carry % BASE)
6429 carry = (carry / BASE) |
0
6435 // deal with leading zeros
6436 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6437 // convert digits to a string
6438 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6443 function decodeUnsafe (string) {
6444 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6447 for (var i =
0; i < string.length; i++) {
6448 var value = ALPHABET_MAP[string[i]]
6449 if (value === undefined) return
6451 for (var j =
0, carry = value; j < bytes.length; ++j) {
6452 carry += bytes[j] * BASE
6453 bytes[j] = carry &
0xff
6458 bytes.push(carry &
0xff)
6463 // deal with leading zeros
6464 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6468 return Buffer.from(bytes.reverse())
6471 function decode (string) {
6472 var buffer = decodeUnsafe(string)
6473 if (buffer) return buffer
6475 throw new Error('Non-base' + BASE + ' character')
6480 decodeUnsafe: decodeUnsafe,
6485 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6486 module.exports = require('buffer')
6488 },{"buffer":
2}]},{},[
4])(
4)
6490 <script>(function (root) {
6493 /***** unorm.js *****/
6496 * UnicodeNormalizer
1.0.0
6497 * Copyright (c)
2008 Matsuza
6498 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6499 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6503 var DEFAULT_FEATURE = [null,
0, {}];
6504 var CACHE_THRESHOLD =
10;
6505 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6506 var NCount = VCount * TCount; //
588
6507 var SCount = LCount * NCount; //
11172
6509 var UChar = function(cp, feature){
6510 this.codepoint = cp;
6511 this.feature = feature;
6516 var cacheCounter = [];
6517 for (var i =
0; i <=
0xFF; ++i){
6518 cacheCounter[i] =
0;
6521 function fromCache(next, cp, needFeature){
6522 var ret = cache[cp];
6524 ret = next(cp, needFeature);
6525 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6532 function fromData(next, cp, needFeature){
6533 var hash = cp &
0xFF00;
6534 var dunit = UChar.udata[hash] || {};
6536 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6538 function fromCpOnly(next, cp, needFeature){
6539 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6541 function fromRuleBasedJamo(next, cp, needFeature){
6543 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6544 return next(cp, needFeature);
6546 if(LBase <= cp && cp < LBase + LCount){
6548 var base = (cp - LBase) * VCount;
6549 for (j =
0; j < VCount; ++j){
6550 c[VBase + j] = SBase + TCount * (j + base);
6552 return new UChar(cp, [,,c]);
6555 var SIndex = cp - SBase;
6556 var TIndex = SIndex % TCount;
6559 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6561 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6563 for (j =
1; j < TCount; ++j){
6564 feature[
2][TBase + j] = cp + j;
6567 return new UChar(cp, feature);
6569 function fromCpFilter(next, cp, needFeature){
6570 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6573 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6575 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6576 return function (cp, needFeature) {
6577 return strategy(next, cp, needFeature);
6581 UChar.isHighSurrogate = function(cp){
6582 return cp
>=
0xD800 && cp <=
0xDBFF;
6584 UChar.isLowSurrogate = function(cp){
6585 return cp
>=
0xDC00 && cp <=
0xDFFF;
6588 UChar.prototype.prepFeature = function(){
6590 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6594 UChar.prototype.toString = function(){
6595 if(this.codepoint <
0x10000){
6596 return String.fromCharCode(this.codepoint);
6598 var x = this.codepoint -
0x10000;
6599 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6603 UChar.prototype.getDecomp = function(){
6605 return this.feature[
0] || null;
6608 UChar.prototype.isCompatibility = function(){
6610 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6612 UChar.prototype.isExclude = function(){
6614 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6616 UChar.prototype.getCanonicalClass = function(){
6618 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6620 UChar.prototype.getComposite = function(following){
6622 if(!this.feature[
2]){
6625 var cp = this.feature[
2][following.codepoint];
6626 return cp ? UChar.fromCharCode(cp) : null;
6629 var UCharIterator = function(str){
6633 UCharIterator.prototype.next = function(){
6634 if(!!this.str && this.cursor < this.str.length){
6635 var cp = this.str.charCodeAt(this.cursor++);
6637 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6638 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6641 return UChar.fromCharCode(cp);
6648 var RecursDecompIterator = function(it, cano){
6650 this.canonical = cano;
6654 RecursDecompIterator.prototype.next = function(){
6655 function recursiveDecomp(cano, uchar){
6656 var decomp = uchar.getDecomp();
6657 if(!!decomp && !(cano && uchar.isCompatibility())){
6659 for(var i =
0; i < decomp.length; ++i){
6660 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6661 ret = ret.concat(a);
6668 if(this.resBuf.length ===
0){
6669 var uchar = this.it.next();
6673 this.resBuf = recursiveDecomp(this.canonical, uchar);
6675 return this.resBuf.shift();
6678 var DecompIterator = function(it){
6683 DecompIterator.prototype.next = function(){
6685 if(this.resBuf.length ===
0){
6687 var uchar = this.it.next();
6691 cc = uchar.getCanonicalClass();
6692 var inspt = this.resBuf.length;
6694 for(; inspt
> 0; --inspt){
6695 var uchar2 = this.resBuf[inspt -
1];
6696 var cc2 = uchar2.getCanonicalClass();
6702 this.resBuf.splice(inspt,
0, uchar);
6705 return this.resBuf.shift();
6708 var CompIterator = function(it){
6712 this.lastClass = null;
6715 CompIterator.prototype.next = function(){
6716 while(this.resBuf.length ===
0){
6717 var uchar = this.it.next();
6719 this.resBuf = this.procBuf;
6723 if(this.procBuf.length ===
0){
6724 this.lastClass = uchar.getCanonicalClass();
6725 this.procBuf.push(uchar);
6727 var starter = this.procBuf[
0];
6728 var composite = starter.getComposite(uchar);
6729 var cc = uchar.getCanonicalClass();
6730 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6731 this.procBuf[
0] = composite;
6734 this.resBuf = this.procBuf;
6737 this.lastClass = cc;
6738 this.procBuf.push(uchar);
6742 return this.resBuf.shift();
6745 var createIterator = function(mode, str){
6748 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6750 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6752 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6754 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6756 throw mode +
" is invalid";
6758 var normalize = function(mode, str){
6759 var it = createIterator(mode, str);
6762 while(!!(uchar = it.next())){
6763 ret += uchar.toString();
6770 return normalize(
"NFD", str);
6774 return normalize(
"NFKD", str);
6778 return normalize(
"NFC", str);
6782 return normalize(
"NFKC", str);
6787 0:{
60:[,,{
824:
8814}],
61:[,,{
824:
8800}],
62:[,,{
824:
8815}],
65:[,,{
768:
192,
769:
193,
770:
194,
771:
195,
772:
256,
774:
258,
775:
550,
776:
196,
777:
7842,
778:
197,
780:
461,
783:
512,
785:
514,
803:
7840,
805:
7680,
808:
260}],
66:[,,{
775:
7682,
803:
7684,
817:
7686}],
67:[,,{
769:
262,
770:
264,
775:
266,
780:
268,
807:
199}],
68:[,,{
775:
7690,
780:
270,
803:
7692,
807:
7696,
813:
7698,
817:
7694}],
69:[,,{
768:
200,
769:
201,
770:
202,
771:
7868,
772:
274,
774:
276,
775:
278,
776:
203,
777:
7866,
780:
282,
783:
516,
785:
518,
803:
7864,
807:
552,
808:
280,
813:
7704,
816:
7706}],
70:[,,{
775:
7710}],
71:[,,{
769:
500,
770:
284,
772:
7712,
774:
286,
775:
288,
780:
486,
807:
290}],
72:[,,{
770:
292,
775:
7714,
776:
7718,
780:
542,
803:
7716,
807:
7720,
814:
7722}],
73:[,,{
768:
204,
769:
205,
770:
206,
771:
296,
772:
298,
774:
300,
775:
304,
776:
207,
777:
7880,
780:
463,
783:
520,
785:
522,
803:
7882,
808:
302,
816:
7724}],
74:[,,{
770:
308}],
75:[,,{
769:
7728,
780:
488,
803:
7730,
807:
310,
817:
7732}],
76:[,,{
769:
313,
780:
317,
803:
7734,
807:
315,
813:
7740,
817:
7738}],
77:[,,{
769:
7742,
775:
7744,
803:
7746}],
78:[,,{
768:
504,
769:
323,
771:
209,
775:
7748,
780:
327,
803:
7750,
807:
325,
813:
7754,
817:
7752}],
79:[,,{
768:
210,
769:
211,
770:
212,
771:
213,
772:
332,
774:
334,
775:
558,
776:
214,
777:
7886,
779:
336,
780:
465,
783:
524,
785:
526,
795:
416,
803:
7884,
808:
490}],
80:[,,{
769:
7764,
775:
7766}],
82:[,,{
769:
340,
775:
7768,
780:
344,
783:
528,
785:
530,
803:
7770,
807:
342,
817:
7774}],
83:[,,{
769:
346,
770:
348,
775:
7776,
780:
352,
803:
7778,
806:
536,
807:
350}],
84:[,,{
775:
7786,
780:
356,
803:
7788,
806:
538,
807:
354,
813:
7792,
817:
7790}],
85:[,,{
768:
217,
769:
218,
770:
219,
771:
360,
772:
362,
774:
364,
776:
220,
777:
7910,
778:
366,
779:
368,
780:
467,
783:
532,
785:
534,
795:
431,
803:
7908,
804:
7794,
808:
370,
813:
7798,
816:
7796}],
86:[,,{
771:
7804,
803:
7806}],
87:[,,{
768:
7808,
769:
7810,
770:
372,
775:
7814,
776:
7812,
803:
7816}],
88:[,,{
775:
7818,
776:
7820}],
89:[,,{
768:
7922,
769:
221,
770:
374,
771:
7928,
772:
562,
775:
7822,
776:
376,
777:
7926,
803:
7924}],
90:[,,{
769:
377,
770:
7824,
775:
379,
780:
381,
803:
7826,
817:
7828}],
97:[,,{
768:
224,
769:
225,
770:
226,
771:
227,
772:
257,
774:
259,
775:
551,
776:
228,
777:
7843,
778:
229,
780:
462,
783:
513,
785:
515,
803:
7841,
805:
7681,
808:
261}],
98:[,,{
775:
7683,
803:
7685,
817:
7687}],
99:[,,{
769:
263,
770:
265,
775:
267,
780:
269,
807:
231}],
100:[,,{
775:
7691,
780:
271,
803:
7693,
807:
7697,
813:
7699,
817:
7695}],
101:[,,{
768:
232,
769:
233,
770:
234,
771:
7869,
772:
275,
774:
277,
775:
279,
776:
235,
777:
7867,
780:
283,
783:
517,
785:
519,
803:
7865,
807:
553,
808:
281,
813:
7705,
816:
7707}],
102:[,,{
775:
7711}],
103:[,,{
769:
501,
770:
285,
772:
7713,
774:
287,
775:
289,
780:
487,
807:
291}],
104:[,,{
770:
293,
775:
7715,
776:
7719,
780:
543,
803:
7717,
807:
7721,
814:
7723,
817:
7830}],
105:[,,{
768:
236,
769:
237,
770:
238,
771:
297,
772:
299,
774:
301,
776:
239,
777:
7881,
780:
464,
783:
521,
785:
523,
803:
7883,
808:
303,
816:
7725}],
106:[,,{
770:
309,
780:
496}],
107:[,,{
769:
7729,
780:
489,
803:
7731,
807:
311,
817:
7733}],
108:[,,{
769:
314,
780:
318,
803:
7735,
807:
316,
813:
7741,
817:
7739}],
109:[,,{
769:
7743,
775:
7745,
803:
7747}],
110:[,,{
768:
505,
769:
324,
771:
241,
775:
7749,
780:
328,
803:
7751,
807:
326,
813:
7755,
817:
7753}],
111:[,,{
768:
242,
769:
243,
770:
244,
771:
245,
772:
333,
774:
335,
775:
559,
776:
246,
777:
7887,
779:
337,
780:
466,
783:
525,
785:
527,
795:
417,
803:
7885,
808:
491}],
112:[,,{
769:
7765,
775:
7767}],
114:[,,{
769:
341,
775:
7769,
780:
345,
783:
529,
785:
531,
803:
7771,
807:
343,
817:
7775}],
115:[,,{
769:
347,
770:
349,
775:
7777,
780:
353,
803:
7779,
806:
537,
807:
351}],
116:[,,{
775:
7787,
776:
7831,
780:
357,
803:
7789,
806:
539,
807:
355,
813:
7793,
817:
7791}],
117:[,,{
768:
249,
769:
250,
770:
251,
771:
361,
772:
363,
774:
365,
776:
252,
777:
7911,
778:
367,
779:
369,
780:
468,
783:
533,
785:
535,
795:
432,
803:
7909,
804:
7795,
808:
371,
813:
7799,
816:
7797}],
118:[,,{
771:
7805,
803:
7807}],
119:[,,{
768:
7809,
769:
7811,
770:
373,
775:
7815,
776:
7813,
778:
7832,
803:
7817}],
120:[,,{
775:
7819,
776:
7821}],
121:[,,{
768:
7923,
769:
253,
770:
375,
771:
7929,
772:
563,
775:
7823,
776:
255,
777:
7927,
778:
7833,
803:
7925}],
122:[,,{
769:
378,
770:
7825,
775:
380,
780:
382,
803:
7827,
817:
7829}],
160:[[
32],
256],
168:[[
32,
776],
256,{
768:
8173,
769:
901,
834:
8129}],
170:[[
97],
256],
175:[[
32,
772],
256],
178:[[
50],
256],
179:[[
51],
256],
180:[[
32,
769],
256],
181:[[
956],
256],
184:[[
32,
807],
256],
185:[[
49],
256],
186:[[
111],
256],
188:[[
49,
8260,
52],
256],
189:[[
49,
8260,
50],
256],
190:[[
51,
8260,
52],
256],
192:[[
65,
768]],
193:[[
65,
769]],
194:[[
65,
770],,{
768:
7846,
769:
7844,
771:
7850,
777:
7848}],
195:[[
65,
771]],
196:[[
65,
776],,{
772:
478}],
197:[[
65,
778],,{
769:
506}],
198:[,,{
769:
508,
772:
482}],
199:[[
67,
807],,{
769:
7688}],
200:[[
69,
768]],
201:[[
69,
769]],
202:[[
69,
770],,{
768:
7872,
769:
7870,
771:
7876,
777:
7874}],
203:[[
69,
776]],
204:[[
73,
768]],
205:[[
73,
769]],
206:[[
73,
770]],
207:[[
73,
776],,{
769:
7726}],
209:[[
78,
771]],
210:[[
79,
768]],
211:[[
79,
769]],
212:[[
79,
770],,{
768:
7890,
769:
7888,
771:
7894,
777:
7892}],
213:[[
79,
771],,{
769:
7756,
772:
556,
776:
7758}],
214:[[
79,
776],,{
772:
554}],
216:[,,{
769:
510}],
217:[[
85,
768]],
218:[[
85,
769]],
219:[[
85,
770]],
220:[[
85,
776],,{
768:
475,
769:
471,
772:
469,
780:
473}],
221:[[
89,
769]],
224:[[
97,
768]],
225:[[
97,
769]],
226:[[
97,
770],,{
768:
7847,
769:
7845,
771:
7851,
777:
7849}],
227:[[
97,
771]],
228:[[
97,
776],,{
772:
479}],
229:[[
97,
778],,{
769:
507}],
230:[,,{
769:
509,
772:
483}],
231:[[
99,
807],,{
769:
7689}],
232:[[
101,
768]],
233:[[
101,
769]],
234:[[
101,
770],,{
768:
7873,
769:
7871,
771:
7877,
777:
7875}],
235:[[
101,
776]],
236:[[
105,
768]],
237:[[
105,
769]],
238:[[
105,
770]],
239:[[
105,
776],,{
769:
7727}],
241:[[
110,
771]],
242:[[
111,
768]],
243:[[
111,
769]],
244:[[
111,
770],,{
768:
7891,
769:
7889,
771:
7895,
777:
7893}],
245:[[
111,
771],,{
769:
7757,
772:
557,
776:
7759}],
246:[[
111,
776],,{
772:
555}],
248:[,,{
769:
511}],
249:[[
117,
768]],
250:[[
117,
769]],
251:[[
117,
770]],
252:[[
117,
776],,{
768:
476,
769:
472,
772:
470,
780:
474}],
253:[[
121,
769]],
255:[[
121,
776]]},
6788 256:{
256:[[
65,
772]],
257:[[
97,
772]],
258:[[
65,
774],,{
768:
7856,
769:
7854,
771:
7860,
777:
7858}],
259:[[
97,
774],,{
768:
7857,
769:
7855,
771:
7861,
777:
7859}],
260:[[
65,
808]],
261:[[
97,
808]],
262:[[
67,
769]],
263:[[
99,
769]],
264:[[
67,
770]],
265:[[
99,
770]],
266:[[
67,
775]],
267:[[
99,
775]],
268:[[
67,
780]],
269:[[
99,
780]],
270:[[
68,
780]],
271:[[
100,
780]],
274:[[
69,
772],,{
768:
7700,
769:
7702}],
275:[[
101,
772],,{
768:
7701,
769:
7703}],
276:[[
69,
774]],
277:[[
101,
774]],
278:[[
69,
775]],
279:[[
101,
775]],
280:[[
69,
808]],
281:[[
101,
808]],
282:[[
69,
780]],
283:[[
101,
780]],
284:[[
71,
770]],
285:[[
103,
770]],
286:[[
71,
774]],
287:[[
103,
774]],
288:[[
71,
775]],
289:[[
103,
775]],
290:[[
71,
807]],
291:[[
103,
807]],
292:[[
72,
770]],
293:[[
104,
770]],
296:[[
73,
771]],
297:[[
105,
771]],
298:[[
73,
772]],
299:[[
105,
772]],
300:[[
73,
774]],
301:[[
105,
774]],
302:[[
73,
808]],
303:[[
105,
808]],
304:[[
73,
775]],
306:[[
73,
74],
256],
307:[[
105,
106],
256],
308:[[
74,
770]],
309:[[
106,
770]],
310:[[
75,
807]],
311:[[
107,
807]],
313:[[
76,
769]],
314:[[
108,
769]],
315:[[
76,
807]],
316:[[
108,
807]],
317:[[
76,
780]],
318:[[
108,
780]],
319:[[
76,
183],
256],
320:[[
108,
183],
256],
323:[[
78,
769]],
324:[[
110,
769]],
325:[[
78,
807]],
326:[[
110,
807]],
327:[[
78,
780]],
328:[[
110,
780]],
329:[[
700,
110],
256],
332:[[
79,
772],,{
768:
7760,
769:
7762}],
333:[[
111,
772],,{
768:
7761,
769:
7763}],
334:[[
79,
774]],
335:[[
111,
774]],
336:[[
79,
779]],
337:[[
111,
779]],
340:[[
82,
769]],
341:[[
114,
769]],
342:[[
82,
807]],
343:[[
114,
807]],
344:[[
82,
780]],
345:[[
114,
780]],
346:[[
83,
769],,{
775:
7780}],
347:[[
115,
769],,{
775:
7781}],
348:[[
83,
770]],
349:[[
115,
770]],
350:[[
83,
807]],
351:[[
115,
807]],
352:[[
83,
780],,{
775:
7782}],
353:[[
115,
780],,{
775:
7783}],
354:[[
84,
807]],
355:[[
116,
807]],
356:[[
84,
780]],
357:[[
116,
780]],
360:[[
85,
771],,{
769:
7800}],
361:[[
117,
771],,{
769:
7801}],
362:[[
85,
772],,{
776:
7802}],
363:[[
117,
772],,{
776:
7803}],
364:[[
85,
774]],
365:[[
117,
774]],
366:[[
85,
778]],
367:[[
117,
778]],
368:[[
85,
779]],
369:[[
117,
779]],
370:[[
85,
808]],
371:[[
117,
808]],
372:[[
87,
770]],
373:[[
119,
770]],
374:[[
89,
770]],
375:[[
121,
770]],
376:[[
89,
776]],
377:[[
90,
769]],
378:[[
122,
769]],
379:[[
90,
775]],
380:[[
122,
775]],
381:[[
90,
780]],
382:[[
122,
780]],
383:[[
115],
256,{
775:
7835}],
416:[[
79,
795],,{
768:
7900,
769:
7898,
771:
7904,
777:
7902,
803:
7906}],
417:[[
111,
795],,{
768:
7901,
769:
7899,
771:
7905,
777:
7903,
803:
7907}],
431:[[
85,
795],,{
768:
7914,
769:
7912,
771:
7918,
777:
7916,
803:
7920}],
432:[[
117,
795],,{
768:
7915,
769:
7913,
771:
7919,
777:
7917,
803:
7921}],
439:[,,{
780:
494}],
452:[[
68,
381],
256],
453:[[
68,
382],
256],
454:[[
100,
382],
256],
455:[[
76,
74],
256],
456:[[
76,
106],
256],
457:[[
108,
106],
256],
458:[[
78,
74],
256],
459:[[
78,
106],
256],
460:[[
110,
106],
256],
461:[[
65,
780]],
462:[[
97,
780]],
463:[[
73,
780]],
464:[[
105,
780]],
465:[[
79,
780]],
466:[[
111,
780]],
467:[[
85,
780]],
468:[[
117,
780]],
469:[[
220,
772]],
470:[[
252,
772]],
471:[[
220,
769]],
472:[[
252,
769]],
473:[[
220,
780]],
474:[[
252,
780]],
475:[[
220,
768]],
476:[[
252,
768]],
478:[[
196,
772]],
479:[[
228,
772]],
480:[[
550,
772]],
481:[[
551,
772]],
482:[[
198,
772]],
483:[[
230,
772]],
486:[[
71,
780]],
487:[[
103,
780]],
488:[[
75,
780]],
489:[[
107,
780]],
490:[[
79,
808],,{
772:
492}],
491:[[
111,
808],,{
772:
493}],
492:[[
490,
772]],
493:[[
491,
772]],
494:[[
439,
780]],
495:[[
658,
780]],
496:[[
106,
780]],
497:[[
68,
90],
256],
498:[[
68,
122],
256],
499:[[
100,
122],
256],
500:[[
71,
769]],
501:[[
103,
769]],
504:[[
78,
768]],
505:[[
110,
768]],
506:[[
197,
769]],
507:[[
229,
769]],
508:[[
198,
769]],
509:[[
230,
769]],
510:[[
216,
769]],
511:[[
248,
769]],
66045:[,
220]},
6789 512:{
512:[[
65,
783]],
513:[[
97,
783]],
514:[[
65,
785]],
515:[[
97,
785]],
516:[[
69,
783]],
517:[[
101,
783]],
518:[[
69,
785]],
519:[[
101,
785]],
520:[[
73,
783]],
521:[[
105,
783]],
522:[[
73,
785]],
523:[[
105,
785]],
524:[[
79,
783]],
525:[[
111,
783]],
526:[[
79,
785]],
527:[[
111,
785]],
528:[[
82,
783]],
529:[[
114,
783]],
530:[[
82,
785]],
531:[[
114,
785]],
532:[[
85,
783]],
533:[[
117,
783]],
534:[[
85,
785]],
535:[[
117,
785]],
536:[[
83,
806]],
537:[[
115,
806]],
538:[[
84,
806]],
539:[[
116,
806]],
542:[[
72,
780]],
543:[[
104,
780]],
550:[[
65,
775],,{
772:
480}],
551:[[
97,
775],,{
772:
481}],
552:[[
69,
807],,{
774:
7708}],
553:[[
101,
807],,{
774:
7709}],
554:[[
214,
772]],
555:[[
246,
772]],
556:[[
213,
772]],
557:[[
245,
772]],
558:[[
79,
775],,{
772:
560}],
559:[[
111,
775],,{
772:
561}],
560:[[
558,
772]],
561:[[
559,
772]],
562:[[
89,
772]],
563:[[
121,
772]],
658:[,,{
780:
495}],
688:[[
104],
256],
689:[[
614],
256],
690:[[
106],
256],
691:[[
114],
256],
692:[[
633],
256],
693:[[
635],
256],
694:[[
641],
256],
695:[[
119],
256],
696:[[
121],
256],
728:[[
32,
774],
256],
729:[[
32,
775],
256],
730:[[
32,
778],
256],
731:[[
32,
808],
256],
732:[[
32,
771],
256],
733:[[
32,
779],
256],
736:[[
611],
256],
737:[[
108],
256],
738:[[
115],
256],
739:[[
120],
256],
740:[[
661],
256],
66272:[,
220]},
6790 768:{
768:[,
230],
769:[,
230],
770:[,
230],
771:[,
230],
772:[,
230],
773:[,
230],
774:[,
230],
775:[,
230],
776:[,
230,{
769:
836}],
777:[,
230],
778:[,
230],
779:[,
230],
780:[,
230],
781:[,
230],
782:[,
230],
783:[,
230],
784:[,
230],
785:[,
230],
786:[,
230],
787:[,
230],
788:[,
230],
789:[,
232],
790:[,
220],
791:[,
220],
792:[,
220],
793:[,
220],
794:[,
232],
795:[,
216],
796:[,
220],
797:[,
220],
798:[,
220],
799:[,
220],
800:[,
220],
801:[,
202],
802:[,
202],
803:[,
220],
804:[,
220],
805:[,
220],
806:[,
220],
807:[,
202],
808:[,
202],
809:[,
220],
810:[,
220],
811:[,
220],
812:[,
220],
813:[,
220],
814:[,
220],
815:[,
220],
816:[,
220],
817:[,
220],
818:[,
220],
819:[,
220],
820:[,
1],
821:[,
1],
822:[,
1],
823:[,
1],
824:[,
1],
825:[,
220],
826:[,
220],
827:[,
220],
828:[,
220],
829:[,
230],
830:[,
230],
831:[,
230],
832:[[
768],
230],
833:[[
769],
230],
834:[,
230],
835:[[
787],
230],
836:[[
776,
769],
230],
837:[,
240],
838:[,
230],
839:[,
220],
840:[,
220],
841:[,
220],
842:[,
230],
843:[,
230],
844:[,
230],
845:[,
220],
846:[,
220],
848:[,
230],
849:[,
230],
850:[,
230],
851:[,
220],
852:[,
220],
853:[,
220],
854:[,
220],
855:[,
230],
856:[,
232],
857:[,
220],
858:[,
220],
859:[,
230],
860:[,
233],
861:[,
234],
862:[,
234],
863:[,
233],
864:[,
234],
865:[,
234],
866:[,
233],
867:[,
230],
868:[,
230],
869:[,
230],
870:[,
230],
871:[,
230],
872:[,
230],
873:[,
230],
874:[,
230],
875:[,
230],
876:[,
230],
877:[,
230],
878:[,
230],
879:[,
230],
884:[[
697]],
890:[[
32,
837],
256],
894:[[
59]],
900:[[
32,
769],
256],
901:[[
168,
769]],
902:[[
913,
769]],
903:[[
183]],
904:[[
917,
769]],
905:[[
919,
769]],
906:[[
921,
769]],
908:[[
927,
769]],
910:[[
933,
769]],
911:[[
937,
769]],
912:[[
970,
769]],
913:[,,{
768:
8122,
769:
902,
772:
8121,
774:
8120,
787:
7944,
788:
7945,
837:
8124}],
917:[,,{
768:
8136,
769:
904,
787:
7960,
788:
7961}],
919:[,,{
768:
8138,
769:
905,
787:
7976,
788:
7977,
837:
8140}],
921:[,,{
768:
8154,
769:
906,
772:
8153,
774:
8152,
776:
938,
787:
7992,
788:
7993}],
927:[,,{
768:
8184,
769:
908,
787:
8008,
788:
8009}],
929:[,,{
788:
8172}],
933:[,,{
768:
8170,
769:
910,
772:
8169,
774:
8168,
776:
939,
788:
8025}],
937:[,,{
768:
8186,
769:
911,
787:
8040,
788:
8041,
837:
8188}],
938:[[
921,
776]],
939:[[
933,
776]],
940:[[
945,
769],,{
837:
8116}],
941:[[
949,
769]],
942:[[
951,
769],,{
837:
8132}],
943:[[
953,
769]],
944:[[
971,
769]],
945:[,,{
768:
8048,
769:
940,
772:
8113,
774:
8112,
787:
7936,
788:
7937,
834:
8118,
837:
8115}],
949:[,,{
768:
8050,
769:
941,
787:
7952,
788:
7953}],
951:[,,{
768:
8052,
769:
942,
787:
7968,
788:
7969,
834:
8134,
837:
8131}],
953:[,,{
768:
8054,
769:
943,
772:
8145,
774:
8144,
776:
970,
787:
7984,
788:
7985,
834:
8150}],
959:[,,{
768:
8056,
769:
972,
787:
8000,
788:
8001}],
961:[,,{
787:
8164,
788:
8165}],
965:[,,{
768:
8058,
769:
973,
772:
8161,
774:
8160,
776:
971,
787:
8016,
788:
8017,
834:
8166}],
969:[,,{
768:
8060,
769:
974,
787:
8032,
788:
8033,
834:
8182,
837:
8179}],
970:[[
953,
776],,{
768:
8146,
769:
912,
834:
8151}],
971:[[
965,
776],,{
768:
8162,
769:
944,
834:
8167}],
972:[[
959,
769]],
973:[[
965,
769]],
974:[[
969,
769],,{
837:
8180}],
976:[[
946],
256],
977:[[
952],
256],
978:[[
933],
256,{
769:
979,
776:
980}],
979:[[
978,
769]],
980:[[
978,
776]],
981:[[
966],
256],
982:[[
960],
256],
1008:[[
954],
256],
1009:[[
961],
256],
1010:[[
962],
256],
1012:[[
920],
256],
1013:[[
949],
256],
1017:[[
931],
256],
66422:[,
230],
66423:[,
230],
66424:[,
230],
66425:[,
230],
66426:[,
230]},
6791 1024:{
1024:[[
1045,
768]],
1025:[[
1045,
776]],
1027:[[
1043,
769]],
1030:[,,{
776:
1031}],
1031:[[
1030,
776]],
1036:[[
1050,
769]],
1037:[[
1048,
768]],
1038:[[
1059,
774]],
1040:[,,{
774:
1232,
776:
1234}],
1043:[,,{
769:
1027}],
1045:[,,{
768:
1024,
774:
1238,
776:
1025}],
1046:[,,{
774:
1217,
776:
1244}],
1047:[,,{
776:
1246}],
1048:[,,{
768:
1037,
772:
1250,
774:
1049,
776:
1252}],
1049:[[
1048,
774]],
1050:[,,{
769:
1036}],
1054:[,,{
776:
1254}],
1059:[,,{
772:
1262,
774:
1038,
776:
1264,
779:
1266}],
1063:[,,{
776:
1268}],
1067:[,,{
776:
1272}],
1069:[,,{
776:
1260}],
1072:[,,{
774:
1233,
776:
1235}],
1075:[,,{
769:
1107}],
1077:[,,{
768:
1104,
774:
1239,
776:
1105}],
1078:[,,{
774:
1218,
776:
1245}],
1079:[,,{
776:
1247}],
1080:[,,{
768:
1117,
772:
1251,
774:
1081,
776:
1253}],
1081:[[
1080,
774]],
1082:[,,{
769:
1116}],
1086:[,,{
776:
1255}],
1091:[,,{
772:
1263,
774:
1118,
776:
1265,
779:
1267}],
1095:[,,{
776:
1269}],
1099:[,,{
776:
1273}],
1101:[,,{
776:
1261}],
1104:[[
1077,
768]],
1105:[[
1077,
776]],
1107:[[
1075,
769]],
1110:[,,{
776:
1111}],
1111:[[
1110,
776]],
1116:[[
1082,
769]],
1117:[[
1080,
768]],
1118:[[
1091,
774]],
1140:[,,{
783:
1142}],
1141:[,,{
783:
1143}],
1142:[[
1140,
783]],
1143:[[
1141,
783]],
1155:[,
230],
1156:[,
230],
1157:[,
230],
1158:[,
230],
1159:[,
230],
1217:[[
1046,
774]],
1218:[[
1078,
774]],
1232:[[
1040,
774]],
1233:[[
1072,
774]],
1234:[[
1040,
776]],
1235:[[
1072,
776]],
1238:[[
1045,
774]],
1239:[[
1077,
774]],
1240:[,,{
776:
1242}],
1241:[,,{
776:
1243}],
1242:[[
1240,
776]],
1243:[[
1241,
776]],
1244:[[
1046,
776]],
1245:[[
1078,
776]],
1246:[[
1047,
776]],
1247:[[
1079,
776]],
1250:[[
1048,
772]],
1251:[[
1080,
772]],
1252:[[
1048,
776]],
1253:[[
1080,
776]],
1254:[[
1054,
776]],
1255:[[
1086,
776]],
1256:[,,{
776:
1258}],
1257:[,,{
776:
1259}],
1258:[[
1256,
776]],
1259:[[
1257,
776]],
1260:[[
1069,
776]],
1261:[[
1101,
776]],
1262:[[
1059,
772]],
1263:[[
1091,
772]],
1264:[[
1059,
776]],
1265:[[
1091,
776]],
1266:[[
1059,
779]],
1267:[[
1091,
779]],
1268:[[
1063,
776]],
1269:[[
1095,
776]],
1272:[[
1067,
776]],
1273:[[
1099,
776]]},
6792 1280:{
1415:[[
1381,
1410],
256],
1425:[,
220],
1426:[,
230],
1427:[,
230],
1428:[,
230],
1429:[,
230],
1430:[,
220],
1431:[,
230],
1432:[,
230],
1433:[,
230],
1434:[,
222],
1435:[,
220],
1436:[,
230],
1437:[,
230],
1438:[,
230],
1439:[,
230],
1440:[,
230],
1441:[,
230],
1442:[,
220],
1443:[,
220],
1444:[,
220],
1445:[,
220],
1446:[,
220],
1447:[,
220],
1448:[,
230],
1449:[,
230],
1450:[,
220],
1451:[,
230],
1452:[,
230],
1453:[,
222],
1454:[,
228],
1455:[,
230],
1456:[,
10],
1457:[,
11],
1458:[,
12],
1459:[,
13],
1460:[,
14],
1461:[,
15],
1462:[,
16],
1463:[,
17],
1464:[,
18],
1465:[,
19],
1466:[,
19],
1467:[,
20],
1468:[,
21],
1469:[,
22],
1471:[,
23],
1473:[,
24],
1474:[,
25],
1476:[,
230],
1477:[,
220],
1479:[,
18]},
6793 1536:{
1552:[,
230],
1553:[,
230],
1554:[,
230],
1555:[,
230],
1556:[,
230],
1557:[,
230],
1558:[,
230],
1559:[,
230],
1560:[,
30],
1561:[,
31],
1562:[,
32],
1570:[[
1575,
1619]],
1571:[[
1575,
1620]],
1572:[[
1608,
1620]],
1573:[[
1575,
1621]],
1574:[[
1610,
1620]],
1575:[,,{
1619:
1570,
1620:
1571,
1621:
1573}],
1608:[,,{
1620:
1572}],
1610:[,,{
1620:
1574}],
1611:[,
27],
1612:[,
28],
1613:[,
29],
1614:[,
30],
1615:[,
31],
1616:[,
32],
1617:[,
33],
1618:[,
34],
1619:[,
230],
1620:[,
230],
1621:[,
220],
1622:[,
220],
1623:[,
230],
1624:[,
230],
1625:[,
230],
1626:[,
230],
1627:[,
230],
1628:[,
220],
1629:[,
230],
1630:[,
230],
1631:[,
220],
1648:[,
35],
1653:[[
1575,
1652],
256],
1654:[[
1608,
1652],
256],
1655:[[
1735,
1652],
256],
1656:[[
1610,
1652],
256],
1728:[[
1749,
1620]],
1729:[,,{
1620:
1730}],
1730:[[
1729,
1620]],
1746:[,,{
1620:
1747}],
1747:[[
1746,
1620]],
1749:[,,{
1620:
1728}],
1750:[,
230],
1751:[,
230],
1752:[,
230],
1753:[,
230],
1754:[,
230],
1755:[,
230],
1756:[,
230],
1759:[,
230],
1760:[,
230],
1761:[,
230],
1762:[,
230],
1763:[,
220],
1764:[,
230],
1767:[,
230],
1768:[,
230],
1770:[,
220],
1771:[,
230],
1772:[,
230],
1773:[,
220]},
6794 1792:{
1809:[,
36],
1840:[,
230],
1841:[,
220],
1842:[,
230],
1843:[,
230],
1844:[,
220],
1845:[,
230],
1846:[,
230],
1847:[,
220],
1848:[,
220],
1849:[,
220],
1850:[,
230],
1851:[,
220],
1852:[,
220],
1853:[,
230],
1854:[,
220],
1855:[,
230],
1856:[,
230],
1857:[,
230],
1858:[,
220],
1859:[,
230],
1860:[,
220],
1861:[,
230],
1862:[,
220],
1863:[,
230],
1864:[,
220],
1865:[,
230],
1866:[,
230],
2027:[,
230],
2028:[,
230],
2029:[,
230],
2030:[,
230],
2031:[,
230],
2032:[,
230],
2033:[,
230],
2034:[,
220],
2035:[,
230]},
6795 2048:{
2070:[,
230],
2071:[,
230],
2072:[,
230],
2073:[,
230],
2075:[,
230],
2076:[,
230],
2077:[,
230],
2078:[,
230],
2079:[,
230],
2080:[,
230],
2081:[,
230],
2082:[,
230],
2083:[,
230],
2085:[,
230],
2086:[,
230],
2087:[,
230],
2089:[,
230],
2090:[,
230],
2091:[,
230],
2092:[,
230],
2093:[,
230],
2137:[,
220],
2138:[,
220],
2139:[,
220],
2276:[,
230],
2277:[,
230],
2278:[,
220],
2279:[,
230],
2280:[,
230],
2281:[,
220],
2282:[,
230],
2283:[,
230],
2284:[,
230],
2285:[,
220],
2286:[,
220],
2287:[,
220],
2288:[,
27],
2289:[,
28],
2290:[,
29],
2291:[,
230],
2292:[,
230],
2293:[,
230],
2294:[,
220],
2295:[,
230],
2296:[,
230],
2297:[,
220],
2298:[,
220],
2299:[,
230],
2300:[,
230],
2301:[,
230],
2302:[,
230],
2303:[,
230]},
6796 2304:{
2344:[,,{
2364:
2345}],
2345:[[
2344,
2364]],
2352:[,,{
2364:
2353}],
2353:[[
2352,
2364]],
2355:[,,{
2364:
2356}],
2356:[[
2355,
2364]],
2364:[,
7],
2381:[,
9],
2385:[,
230],
2386:[,
220],
2387:[,
230],
2388:[,
230],
2392:[[
2325,
2364],
512],
2393:[[
2326,
2364],
512],
2394:[[
2327,
2364],
512],
2395:[[
2332,
2364],
512],
2396:[[
2337,
2364],
512],
2397:[[
2338,
2364],
512],
2398:[[
2347,
2364],
512],
2399:[[
2351,
2364],
512],
2492:[,
7],
2503:[,,{
2494:
2507,
2519:
2508}],
2507:[[
2503,
2494]],
2508:[[
2503,
2519]],
2509:[,
9],
2524:[[
2465,
2492],
512],
2525:[[
2466,
2492],
512],
2527:[[
2479,
2492],
512]},
6797 2560:{
2611:[[
2610,
2620],
512],
2614:[[
2616,
2620],
512],
2620:[,
7],
2637:[,
9],
2649:[[
2582,
2620],
512],
2650:[[
2583,
2620],
512],
2651:[[
2588,
2620],
512],
2654:[[
2603,
2620],
512],
2748:[,
7],
2765:[,
9],
68109:[,
220],
68111:[,
230],
68152:[,
230],
68153:[,
1],
68154:[,
220],
68159:[,
9],
68325:[,
230],
68326:[,
220]},
6798 2816:{
2876:[,
7],
2887:[,,{
2878:
2891,
2902:
2888,
2903:
2892}],
2888:[[
2887,
2902]],
2891:[[
2887,
2878]],
2892:[[
2887,
2903]],
2893:[,
9],
2908:[[
2849,
2876],
512],
2909:[[
2850,
2876],
512],
2962:[,,{
3031:
2964}],
2964:[[
2962,
3031]],
3014:[,,{
3006:
3018,
3031:
3020}],
3015:[,,{
3006:
3019}],
3018:[[
3014,
3006]],
3019:[[
3015,
3006]],
3020:[[
3014,
3031]],
3021:[,
9]},
6799 3072:{
3142:[,,{
3158:
3144}],
3144:[[
3142,
3158]],
3149:[,
9],
3157:[,
84],
3158:[,
91],
3260:[,
7],
3263:[,,{
3285:
3264}],
3264:[[
3263,
3285]],
3270:[,,{
3266:
3274,
3285:
3271,
3286:
3272}],
3271:[[
3270,
3285]],
3272:[[
3270,
3286]],
3274:[[
3270,
3266],,{
3285:
3275}],
3275:[[
3274,
3285]],
3277:[,
9]},
6800 3328:{
3398:[,,{
3390:
3402,
3415:
3404}],
3399:[,,{
3390:
3403}],
3402:[[
3398,
3390]],
3403:[[
3399,
3390]],
3404:[[
3398,
3415]],
3405:[,
9],
3530:[,
9],
3545:[,,{
3530:
3546,
3535:
3548,
3551:
3550}],
3546:[[
3545,
3530]],
3548:[[
3545,
3535],,{
3530:
3549}],
3549:[[
3548,
3530]],
3550:[[
3545,
3551]]},
6801 3584:{
3635:[[
3661,
3634],
256],
3640:[,
103],
3641:[,
103],
3642:[,
9],
3656:[,
107],
3657:[,
107],
3658:[,
107],
3659:[,
107],
3763:[[
3789,
3762],
256],
3768:[,
118],
3769:[,
118],
3784:[,
122],
3785:[,
122],
3786:[,
122],
3787:[,
122],
3804:[[
3755,
3737],
256],
3805:[[
3755,
3745],
256]},
6802 3840:{
3852:[[
3851],
256],
3864:[,
220],
3865:[,
220],
3893:[,
220],
3895:[,
220],
3897:[,
216],
3907:[[
3906,
4023],
512],
3917:[[
3916,
4023],
512],
3922:[[
3921,
4023],
512],
3927:[[
3926,
4023],
512],
3932:[[
3931,
4023],
512],
3945:[[
3904,
4021],
512],
3953:[,
129],
3954:[,
130],
3955:[[
3953,
3954],
512],
3956:[,
132],
3957:[[
3953,
3956],
512],
3958:[[
4018,
3968],
512],
3959:[[
4018,
3969],
256],
3960:[[
4019,
3968],
512],
3961:[[
4019,
3969],
256],
3962:[,
130],
3963:[,
130],
3964:[,
130],
3965:[,
130],
3968:[,
130],
3969:[[
3953,
3968],
512],
3970:[,
230],
3971:[,
230],
3972:[,
9],
3974:[,
230],
3975:[,
230],
3987:[[
3986,
4023],
512],
3997:[[
3996,
4023],
512],
4002:[[
4001,
4023],
512],
4007:[[
4006,
4023],
512],
4012:[[
4011,
4023],
512],
4025:[[
3984,
4021],
512],
4038:[,
220]},
6803 4096:{
4133:[,,{
4142:
4134}],
4134:[[
4133,
4142]],
4151:[,
7],
4153:[,
9],
4154:[,
9],
4237:[,
220],
4348:[[
4316],
256],
69702:[,
9],
69759:[,
9],
69785:[,,{
69818:
69786}],
69786:[[
69785,
69818]],
69787:[,,{
69818:
69788}],
69788:[[
69787,
69818]],
69797:[,,{
69818:
69803}],
69803:[[
69797,
69818]],
69817:[,
9],
69818:[,
7]},
6804 4352:{
69888:[,
230],
69889:[,
230],
69890:[,
230],
69934:[[
69937,
69927]],
69935:[[
69938,
69927]],
69937:[,,{
69927:
69934}],
69938:[,,{
69927:
69935}],
69939:[,
9],
69940:[,
9],
70003:[,
7],
70080:[,
9]},
6805 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6806 4864:{
4957:[,
230],
4958:[,
230],
4959:[,
230],
70460:[,
7],
70471:[,,{
70462:
70475,
70487:
70476}],
70475:[[
70471,
70462]],
70476:[[
70471,
70487]],
70477:[,
9],
70502:[,
230],
70503:[,
230],
70504:[,
230],
70505:[,
230],
70506:[,
230],
70507:[,
230],
70508:[,
230],
70512:[,
230],
70513:[,
230],
70514:[,
230],
70515:[,
230],
70516:[,
230]},
6807 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6808 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6809 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6810 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6812 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6813 6656:{
6679:[,
230],
6680:[,
220],
6752:[,
9],
6773:[,
230],
6774:[,
230],
6775:[,
230],
6776:[,
230],
6777:[,
230],
6778:[,
230],
6779:[,
230],
6780:[,
230],
6783:[,
220],
6832:[,
230],
6833:[,
230],
6834:[,
230],
6835:[,
230],
6836:[,
230],
6837:[,
220],
6838:[,
220],
6839:[,
220],
6840:[,
220],
6841:[,
220],
6842:[,
220],
6843:[,
230],
6844:[,
230],
6845:[,
220]},
6814 6912:{
6917:[,,{
6965:
6918}],
6918:[[
6917,
6965]],
6919:[,,{
6965:
6920}],
6920:[[
6919,
6965]],
6921:[,,{
6965:
6922}],
6922:[[
6921,
6965]],
6923:[,,{
6965:
6924}],
6924:[[
6923,
6965]],
6925:[,,{
6965:
6926}],
6926:[[
6925,
6965]],
6929:[,,{
6965:
6930}],
6930:[[
6929,
6965]],
6964:[,
7],
6970:[,,{
6965:
6971}],
6971:[[
6970,
6965]],
6972:[,,{
6965:
6973}],
6973:[[
6972,
6965]],
6974:[,,{
6965:
6976}],
6975:[,,{
6965:
6977}],
6976:[[
6974,
6965]],
6977:[[
6975,
6965]],
6978:[,,{
6965:
6979}],
6979:[[
6978,
6965]],
6980:[,
9],
7019:[,
230],
7020:[,
220],
7021:[,
230],
7022:[,
230],
7023:[,
230],
7024:[,
230],
7025:[,
230],
7026:[,
230],
7027:[,
230],
7082:[,
9],
7083:[,
9],
7142:[,
7],
7154:[,
9],
7155:[,
9]},
6815 7168:{
7223:[,
7],
7376:[,
230],
7377:[,
230],
7378:[,
230],
7380:[,
1],
7381:[,
220],
7382:[,
220],
7383:[,
220],
7384:[,
220],
7385:[,
220],
7386:[,
230],
7387:[,
230],
7388:[,
220],
7389:[,
220],
7390:[,
220],
7391:[,
220],
7392:[,
230],
7394:[,
1],
7395:[,
1],
7396:[,
1],
7397:[,
1],
7398:[,
1],
7399:[,
1],
7400:[,
1],
7405:[,
220],
7412:[,
230],
7416:[,
230],
7417:[,
230]},
6816 7424:{
7468:[[
65],
256],
7469:[[
198],
256],
7470:[[
66],
256],
7472:[[
68],
256],
7473:[[
69],
256],
7474:[[
398],
256],
7475:[[
71],
256],
7476:[[
72],
256],
7477:[[
73],
256],
7478:[[
74],
256],
7479:[[
75],
256],
7480:[[
76],
256],
7481:[[
77],
256],
7482:[[
78],
256],
7484:[[
79],
256],
7485:[[
546],
256],
7486:[[
80],
256],
7487:[[
82],
256],
7488:[[
84],
256],
7489:[[
85],
256],
7490:[[
87],
256],
7491:[[
97],
256],
7492:[[
592],
256],
7493:[[
593],
256],
7494:[[
7426],
256],
7495:[[
98],
256],
7496:[[
100],
256],
7497:[[
101],
256],
7498:[[
601],
256],
7499:[[
603],
256],
7500:[[
604],
256],
7501:[[
103],
256],
7503:[[
107],
256],
7504:[[
109],
256],
7505:[[
331],
256],
7506:[[
111],
256],
7507:[[
596],
256],
7508:[[
7446],
256],
7509:[[
7447],
256],
7510:[[
112],
256],
7511:[[
116],
256],
7512:[[
117],
256],
7513:[[
7453],
256],
7514:[[
623],
256],
7515:[[
118],
256],
7516:[[
7461],
256],
7517:[[
946],
256],
7518:[[
947],
256],
7519:[[
948],
256],
7520:[[
966],
256],
7521:[[
967],
256],
7522:[[
105],
256],
7523:[[
114],
256],
7524:[[
117],
256],
7525:[[
118],
256],
7526:[[
946],
256],
7527:[[
947],
256],
7528:[[
961],
256],
7529:[[
966],
256],
7530:[[
967],
256],
7544:[[
1085],
256],
7579:[[
594],
256],
7580:[[
99],
256],
7581:[[
597],
256],
7582:[[
240],
256],
7583:[[
604],
256],
7584:[[
102],
256],
7585:[[
607],
256],
7586:[[
609],
256],
7587:[[
613],
256],
7588:[[
616],
256],
7589:[[
617],
256],
7590:[[
618],
256],
7591:[[
7547],
256],
7592:[[
669],
256],
7593:[[
621],
256],
7594:[[
7557],
256],
7595:[[
671],
256],
7596:[[
625],
256],
7597:[[
624],
256],
7598:[[
626],
256],
7599:[[
627],
256],
7600:[[
628],
256],
7601:[[
629],
256],
7602:[[
632],
256],
7603:[[
642],
256],
7604:[[
643],
256],
7605:[[
427],
256],
7606:[[
649],
256],
7607:[[
650],
256],
7608:[[
7452],
256],
7609:[[
651],
256],
7610:[[
652],
256],
7611:[[
122],
256],
7612:[[
656],
256],
7613:[[
657],
256],
7614:[[
658],
256],
7615:[[
952],
256],
7616:[,
230],
7617:[,
230],
7618:[,
220],
7619:[,
230],
7620:[,
230],
7621:[,
230],
7622:[,
230],
7623:[,
230],
7624:[,
230],
7625:[,
230],
7626:[,
220],
7627:[,
230],
7628:[,
230],
7629:[,
234],
7630:[,
214],
7631:[,
220],
7632:[,
202],
7633:[,
230],
7634:[,
230],
7635:[,
230],
7636:[,
230],
7637:[,
230],
7638:[,
230],
7639:[,
230],
7640:[,
230],
7641:[,
230],
7642:[,
230],
7643:[,
230],
7644:[,
230],
7645:[,
230],
7646:[,
230],
7647:[,
230],
7648:[,
230],
7649:[,
230],
7650:[,
230],
7651:[,
230],
7652:[,
230],
7653:[,
230],
7654:[,
230],
7655:[,
230],
7656:[,
230],
7657:[,
230],
7658:[,
230],
7659:[,
230],
7660:[,
230],
7661:[,
230],
7662:[,
230],
7663:[,
230],
7664:[,
230],
7665:[,
230],
7666:[,
230],
7667:[,
230],
7668:[,
230],
7669:[,
230],
7676:[,
233],
7677:[,
220],
7678:[,
230],
7679:[,
220]},
6817 7680:{
7680:[[
65,
805]],
7681:[[
97,
805]],
7682:[[
66,
775]],
7683:[[
98,
775]],
7684:[[
66,
803]],
7685:[[
98,
803]],
7686:[[
66,
817]],
7687:[[
98,
817]],
7688:[[
199,
769]],
7689:[[
231,
769]],
7690:[[
68,
775]],
7691:[[
100,
775]],
7692:[[
68,
803]],
7693:[[
100,
803]],
7694:[[
68,
817]],
7695:[[
100,
817]],
7696:[[
68,
807]],
7697:[[
100,
807]],
7698:[[
68,
813]],
7699:[[
100,
813]],
7700:[[
274,
768]],
7701:[[
275,
768]],
7702:[[
274,
769]],
7703:[[
275,
769]],
7704:[[
69,
813]],
7705:[[
101,
813]],
7706:[[
69,
816]],
7707:[[
101,
816]],
7708:[[
552,
774]],
7709:[[
553,
774]],
7710:[[
70,
775]],
7711:[[
102,
775]],
7712:[[
71,
772]],
7713:[[
103,
772]],
7714:[[
72,
775]],
7715:[[
104,
775]],
7716:[[
72,
803]],
7717:[[
104,
803]],
7718:[[
72,
776]],
7719:[[
104,
776]],
7720:[[
72,
807]],
7721:[[
104,
807]],
7722:[[
72,
814]],
7723:[[
104,
814]],
7724:[[
73,
816]],
7725:[[
105,
816]],
7726:[[
207,
769]],
7727:[[
239,
769]],
7728:[[
75,
769]],
7729:[[
107,
769]],
7730:[[
75,
803]],
7731:[[
107,
803]],
7732:[[
75,
817]],
7733:[[
107,
817]],
7734:[[
76,
803],,{
772:
7736}],
7735:[[
108,
803],,{
772:
7737}],
7736:[[
7734,
772]],
7737:[[
7735,
772]],
7738:[[
76,
817]],
7739:[[
108,
817]],
7740:[[
76,
813]],
7741:[[
108,
813]],
7742:[[
77,
769]],
7743:[[
109,
769]],
7744:[[
77,
775]],
7745:[[
109,
775]],
7746:[[
77,
803]],
7747:[[
109,
803]],
7748:[[
78,
775]],
7749:[[
110,
775]],
7750:[[
78,
803]],
7751:[[
110,
803]],
7752:[[
78,
817]],
7753:[[
110,
817]],
7754:[[
78,
813]],
7755:[[
110,
813]],
7756:[[
213,
769]],
7757:[[
245,
769]],
7758:[[
213,
776]],
7759:[[
245,
776]],
7760:[[
332,
768]],
7761:[[
333,
768]],
7762:[[
332,
769]],
7763:[[
333,
769]],
7764:[[
80,
769]],
7765:[[
112,
769]],
7766:[[
80,
775]],
7767:[[
112,
775]],
7768:[[
82,
775]],
7769:[[
114,
775]],
7770:[[
82,
803],,{
772:
7772}],
7771:[[
114,
803],,{
772:
7773}],
7772:[[
7770,
772]],
7773:[[
7771,
772]],
7774:[[
82,
817]],
7775:[[
114,
817]],
7776:[[
83,
775]],
7777:[[
115,
775]],
7778:[[
83,
803],,{
775:
7784}],
7779:[[
115,
803],,{
775:
7785}],
7780:[[
346,
775]],
7781:[[
347,
775]],
7782:[[
352,
775]],
7783:[[
353,
775]],
7784:[[
7778,
775]],
7785:[[
7779,
775]],
7786:[[
84,
775]],
7787:[[
116,
775]],
7788:[[
84,
803]],
7789:[[
116,
803]],
7790:[[
84,
817]],
7791:[[
116,
817]],
7792:[[
84,
813]],
7793:[[
116,
813]],
7794:[[
85,
804]],
7795:[[
117,
804]],
7796:[[
85,
816]],
7797:[[
117,
816]],
7798:[[
85,
813]],
7799:[[
117,
813]],
7800:[[
360,
769]],
7801:[[
361,
769]],
7802:[[
362,
776]],
7803:[[
363,
776]],
7804:[[
86,
771]],
7805:[[
118,
771]],
7806:[[
86,
803]],
7807:[[
118,
803]],
7808:[[
87,
768]],
7809:[[
119,
768]],
7810:[[
87,
769]],
7811:[[
119,
769]],
7812:[[
87,
776]],
7813:[[
119,
776]],
7814:[[
87,
775]],
7815:[[
119,
775]],
7816:[[
87,
803]],
7817:[[
119,
803]],
7818:[[
88,
775]],
7819:[[
120,
775]],
7820:[[
88,
776]],
7821:[[
120,
776]],
7822:[[
89,
775]],
7823:[[
121,
775]],
7824:[[
90,
770]],
7825:[[
122,
770]],
7826:[[
90,
803]],
7827:[[
122,
803]],
7828:[[
90,
817]],
7829:[[
122,
817]],
7830:[[
104,
817]],
7831:[[
116,
776]],
7832:[[
119,
778]],
7833:[[
121,
778]],
7834:[[
97,
702],
256],
7835:[[
383,
775]],
7840:[[
65,
803],,{
770:
7852,
774:
7862}],
7841:[[
97,
803],,{
770:
7853,
774:
7863}],
7842:[[
65,
777]],
7843:[[
97,
777]],
7844:[[
194,
769]],
7845:[[
226,
769]],
7846:[[
194,
768]],
7847:[[
226,
768]],
7848:[[
194,
777]],
7849:[[
226,
777]],
7850:[[
194,
771]],
7851:[[
226,
771]],
7852:[[
7840,
770]],
7853:[[
7841,
770]],
7854:[[
258,
769]],
7855:[[
259,
769]],
7856:[[
258,
768]],
7857:[[
259,
768]],
7858:[[
258,
777]],
7859:[[
259,
777]],
7860:[[
258,
771]],
7861:[[
259,
771]],
7862:[[
7840,
774]],
7863:[[
7841,
774]],
7864:[[
69,
803],,{
770:
7878}],
7865:[[
101,
803],,{
770:
7879}],
7866:[[
69,
777]],
7867:[[
101,
777]],
7868:[[
69,
771]],
7869:[[
101,
771]],
7870:[[
202,
769]],
7871:[[
234,
769]],
7872:[[
202,
768]],
7873:[[
234,
768]],
7874:[[
202,
777]],
7875:[[
234,
777]],
7876:[[
202,
771]],
7877:[[
234,
771]],
7878:[[
7864,
770]],
7879:[[
7865,
770]],
7880:[[
73,
777]],
7881:[[
105,
777]],
7882:[[
73,
803]],
7883:[[
105,
803]],
7884:[[
79,
803],,{
770:
7896}],
7885:[[
111,
803],,{
770:
7897}],
7886:[[
79,
777]],
7887:[[
111,
777]],
7888:[[
212,
769]],
7889:[[
244,
769]],
7890:[[
212,
768]],
7891:[[
244,
768]],
7892:[[
212,
777]],
7893:[[
244,
777]],
7894:[[
212,
771]],
7895:[[
244,
771]],
7896:[[
7884,
770]],
7897:[[
7885,
770]],
7898:[[
416,
769]],
7899:[[
417,
769]],
7900:[[
416,
768]],
7901:[[
417,
768]],
7902:[[
416,
777]],
7903:[[
417,
777]],
7904:[[
416,
771]],
7905:[[
417,
771]],
7906:[[
416,
803]],
7907:[[
417,
803]],
7908:[[
85,
803]],
7909:[[
117,
803]],
7910:[[
85,
777]],
7911:[[
117,
777]],
7912:[[
431,
769]],
7913:[[
432,
769]],
7914:[[
431,
768]],
7915:[[
432,
768]],
7916:[[
431,
777]],
7917:[[
432,
777]],
7918:[[
431,
771]],
7919:[[
432,
771]],
7920:[[
431,
803]],
7921:[[
432,
803]],
7922:[[
89,
768]],
7923:[[
121,
768]],
7924:[[
89,
803]],
7925:[[
121,
803]],
7926:[[
89,
777]],
7927:[[
121,
777]],
7928:[[
89,
771]],
7929:[[
121,
771]]},
6818 7936:{
7936:[[
945,
787],,{
768:
7938,
769:
7940,
834:
7942,
837:
8064}],
7937:[[
945,
788],,{
768:
7939,
769:
7941,
834:
7943,
837:
8065}],
7938:[[
7936,
768],,{
837:
8066}],
7939:[[
7937,
768],,{
837:
8067}],
7940:[[
7936,
769],,{
837:
8068}],
7941:[[
7937,
769],,{
837:
8069}],
7942:[[
7936,
834],,{
837:
8070}],
7943:[[
7937,
834],,{
837:
8071}],
7944:[[
913,
787],,{
768:
7946,
769:
7948,
834:
7950,
837:
8072}],
7945:[[
913,
788],,{
768:
7947,
769:
7949,
834:
7951,
837:
8073}],
7946:[[
7944,
768],,{
837:
8074}],
7947:[[
7945,
768],,{
837:
8075}],
7948:[[
7944,
769],,{
837:
8076}],
7949:[[
7945,
769],,{
837:
8077}],
7950:[[
7944,
834],,{
837:
8078}],
7951:[[
7945,
834],,{
837:
8079}],
7952:[[
949,
787],,{
768:
7954,
769:
7956}],
7953:[[
949,
788],,{
768:
7955,
769:
7957}],
7954:[[
7952,
768]],
7955:[[
7953,
768]],
7956:[[
7952,
769]],
7957:[[
7953,
769]],
7960:[[
917,
787],,{
768:
7962,
769:
7964}],
7961:[[
917,
788],,{
768:
7963,
769:
7965}],
7962:[[
7960,
768]],
7963:[[
7961,
768]],
7964:[[
7960,
769]],
7965:[[
7961,
769]],
7968:[[
951,
787],,{
768:
7970,
769:
7972,
834:
7974,
837:
8080}],
7969:[[
951,
788],,{
768:
7971,
769:
7973,
834:
7975,
837:
8081}],
7970:[[
7968,
768],,{
837:
8082}],
7971:[[
7969,
768],,{
837:
8083}],
7972:[[
7968,
769],,{
837:
8084}],
7973:[[
7969,
769],,{
837:
8085}],
7974:[[
7968,
834],,{
837:
8086}],
7975:[[
7969,
834],,{
837:
8087}],
7976:[[
919,
787],,{
768:
7978,
769:
7980,
834:
7982,
837:
8088}],
7977:[[
919,
788],,{
768:
7979,
769:
7981,
834:
7983,
837:
8089}],
7978:[[
7976,
768],,{
837:
8090}],
7979:[[
7977,
768],,{
837:
8091}],
7980:[[
7976,
769],,{
837:
8092}],
7981:[[
7977,
769],,{
837:
8093}],
7982:[[
7976,
834],,{
837:
8094}],
7983:[[
7977,
834],,{
837:
8095}],
7984:[[
953,
787],,{
768:
7986,
769:
7988,
834:
7990}],
7985:[[
953,
788],,{
768:
7987,
769:
7989,
834:
7991}],
7986:[[
7984,
768]],
7987:[[
7985,
768]],
7988:[[
7984,
769]],
7989:[[
7985,
769]],
7990:[[
7984,
834]],
7991:[[
7985,
834]],
7992:[[
921,
787],,{
768:
7994,
769:
7996,
834:
7998}],
7993:[[
921,
788],,{
768:
7995,
769:
7997,
834:
7999}],
7994:[[
7992,
768]],
7995:[[
7993,
768]],
7996:[[
7992,
769]],
7997:[[
7993,
769]],
7998:[[
7992,
834]],
7999:[[
7993,
834]],
8000:[[
959,
787],,{
768:
8002,
769:
8004}],
8001:[[
959,
788],,{
768:
8003,
769:
8005}],
8002:[[
8000,
768]],
8003:[[
8001,
768]],
8004:[[
8000,
769]],
8005:[[
8001,
769]],
8008:[[
927,
787],,{
768:
8010,
769:
8012}],
8009:[[
927,
788],,{
768:
8011,
769:
8013}],
8010:[[
8008,
768]],
8011:[[
8009,
768]],
8012:[[
8008,
769]],
8013:[[
8009,
769]],
8016:[[
965,
787],,{
768:
8018,
769:
8020,
834:
8022}],
8017:[[
965,
788],,{
768:
8019,
769:
8021,
834:
8023}],
8018:[[
8016,
768]],
8019:[[
8017,
768]],
8020:[[
8016,
769]],
8021:[[
8017,
769]],
8022:[[
8016,
834]],
8023:[[
8017,
834]],
8025:[[
933,
788],,{
768:
8027,
769:
8029,
834:
8031}],
8027:[[
8025,
768]],
8029:[[
8025,
769]],
8031:[[
8025,
834]],
8032:[[
969,
787],,{
768:
8034,
769:
8036,
834:
8038,
837:
8096}],
8033:[[
969,
788],,{
768:
8035,
769:
8037,
834:
8039,
837:
8097}],
8034:[[
8032,
768],,{
837:
8098}],
8035:[[
8033,
768],,{
837:
8099}],
8036:[[
8032,
769],,{
837:
8100}],
8037:[[
8033,
769],,{
837:
8101}],
8038:[[
8032,
834],,{
837:
8102}],
8039:[[
8033,
834],,{
837:
8103}],
8040:[[
937,
787],,{
768:
8042,
769:
8044,
834:
8046,
837:
8104}],
8041:[[
937,
788],,{
768:
8043,
769:
8045,
834:
8047,
837:
8105}],
8042:[[
8040,
768],,{
837:
8106}],
8043:[[
8041,
768],,{
837:
8107}],
8044:[[
8040,
769],,{
837:
8108}],
8045:[[
8041,
769],,{
837:
8109}],
8046:[[
8040,
834],,{
837:
8110}],
8047:[[
8041,
834],,{
837:
8111}],
8048:[[
945,
768],,{
837:
8114}],
8049:[[
940]],
8050:[[
949,
768]],
8051:[[
941]],
8052:[[
951,
768],,{
837:
8130}],
8053:[[
942]],
8054:[[
953,
768]],
8055:[[
943]],
8056:[[
959,
768]],
8057:[[
972]],
8058:[[
965,
768]],
8059:[[
973]],
8060:[[
969,
768],,{
837:
8178}],
8061:[[
974]],
8064:[[
7936,
837]],
8065:[[
7937,
837]],
8066:[[
7938,
837]],
8067:[[
7939,
837]],
8068:[[
7940,
837]],
8069:[[
7941,
837]],
8070:[[
7942,
837]],
8071:[[
7943,
837]],
8072:[[
7944,
837]],
8073:[[
7945,
837]],
8074:[[
7946,
837]],
8075:[[
7947,
837]],
8076:[[
7948,
837]],
8077:[[
7949,
837]],
8078:[[
7950,
837]],
8079:[[
7951,
837]],
8080:[[
7968,
837]],
8081:[[
7969,
837]],
8082:[[
7970,
837]],
8083:[[
7971,
837]],
8084:[[
7972,
837]],
8085:[[
7973,
837]],
8086:[[
7974,
837]],
8087:[[
7975,
837]],
8088:[[
7976,
837]],
8089:[[
7977,
837]],
8090:[[
7978,
837]],
8091:[[
7979,
837]],
8092:[[
7980,
837]],
8093:[[
7981,
837]],
8094:[[
7982,
837]],
8095:[[
7983,
837]],
8096:[[
8032,
837]],
8097:[[
8033,
837]],
8098:[[
8034,
837]],
8099:[[
8035,
837]],
8100:[[
8036,
837]],
8101:[[
8037,
837]],
8102:[[
8038,
837]],
8103:[[
8039,
837]],
8104:[[
8040,
837]],
8105:[[
8041,
837]],
8106:[[
8042,
837]],
8107:[[
8043,
837]],
8108:[[
8044,
837]],
8109:[[
8045,
837]],
8110:[[
8046,
837]],
8111:[[
8047,
837]],
8112:[[
945,
774]],
8113:[[
945,
772]],
8114:[[
8048,
837]],
8115:[[
945,
837]],
8116:[[
940,
837]],
8118:[[
945,
834],,{
837:
8119}],
8119:[[
8118,
837]],
8120:[[
913,
774]],
8121:[[
913,
772]],
8122:[[
913,
768]],
8123:[[
902]],
8124:[[
913,
837]],
8125:[[
32,
787],
256],
8126:[[
953]],
8127:[[
32,
787],
256,{
768:
8141,
769:
8142,
834:
8143}],
8128:[[
32,
834],
256],
8129:[[
168,
834]],
8130:[[
8052,
837]],
8131:[[
951,
837]],
8132:[[
942,
837]],
8134:[[
951,
834],,{
837:
8135}],
8135:[[
8134,
837]],
8136:[[
917,
768]],
8137:[[
904]],
8138:[[
919,
768]],
8139:[[
905]],
8140:[[
919,
837]],
8141:[[
8127,
768]],
8142:[[
8127,
769]],
8143:[[
8127,
834]],
8144:[[
953,
774]],
8145:[[
953,
772]],
8146:[[
970,
768]],
8147:[[
912]],
8150:[[
953,
834]],
8151:[[
970,
834]],
8152:[[
921,
774]],
8153:[[
921,
772]],
8154:[[
921,
768]],
8155:[[
906]],
8157:[[
8190,
768]],
8158:[[
8190,
769]],
8159:[[
8190,
834]],
8160:[[
965,
774]],
8161:[[
965,
772]],
8162:[[
971,
768]],
8163:[[
944]],
8164:[[
961,
787]],
8165:[[
961,
788]],
8166:[[
965,
834]],
8167:[[
971,
834]],
8168:[[
933,
774]],
8169:[[
933,
772]],
8170:[[
933,
768]],
8171:[[
910]],
8172:[[
929,
788]],
8173:[[
168,
768]],
8174:[[
901]],
8175:[[
96]],
8178:[[
8060,
837]],
8179:[[
969,
837]],
8180:[[
974,
837]],
8182:[[
969,
834],,{
837:
8183}],
8183:[[
8182,
837]],
8184:[[
927,
768]],
8185:[[
908]],
8186:[[
937,
768]],
8187:[[
911]],
8188:[[
937,
837]],
8189:[[
180]],
8190:[[
32,
788],
256,{
768:
8157,
769:
8158,
834:
8159}]},
6819 8192:{
8192:[[
8194]],
8193:[[
8195]],
8194:[[
32],
256],
8195:[[
32],
256],
8196:[[
32],
256],
8197:[[
32],
256],
8198:[[
32],
256],
8199:[[
32],
256],
8200:[[
32],
256],
8201:[[
32],
256],
8202:[[
32],
256],
8209:[[
8208],
256],
8215:[[
32,
819],
256],
8228:[[
46],
256],
8229:[[
46,
46],
256],
8230:[[
46,
46,
46],
256],
8239:[[
32],
256],
8243:[[
8242,
8242],
256],
8244:[[
8242,
8242,
8242],
256],
8246:[[
8245,
8245],
256],
8247:[[
8245,
8245,
8245],
256],
8252:[[
33,
33],
256],
8254:[[
32,
773],
256],
8263:[[
63,
63],
256],
8264:[[
63,
33],
256],
8265:[[
33,
63],
256],
8279:[[
8242,
8242,
8242,
8242],
256],
8287:[[
32],
256],
8304:[[
48],
256],
8305:[[
105],
256],
8308:[[
52],
256],
8309:[[
53],
256],
8310:[[
54],
256],
8311:[[
55],
256],
8312:[[
56],
256],
8313:[[
57],
256],
8314:[[
43],
256],
8315:[[
8722],
256],
8316:[[
61],
256],
8317:[[
40],
256],
8318:[[
41],
256],
8319:[[
110],
256],
8320:[[
48],
256],
8321:[[
49],
256],
8322:[[
50],
256],
8323:[[
51],
256],
8324:[[
52],
256],
8325:[[
53],
256],
8326:[[
54],
256],
8327:[[
55],
256],
8328:[[
56],
256],
8329:[[
57],
256],
8330:[[
43],
256],
8331:[[
8722],
256],
8332:[[
61],
256],
8333:[[
40],
256],
8334:[[
41],
256],
8336:[[
97],
256],
8337:[[
101],
256],
8338:[[
111],
256],
8339:[[
120],
256],
8340:[[
601],
256],
8341:[[
104],
256],
8342:[[
107],
256],
8343:[[
108],
256],
8344:[[
109],
256],
8345:[[
110],
256],
8346:[[
112],
256],
8347:[[
115],
256],
8348:[[
116],
256],
8360:[[
82,
115],
256],
8400:[,
230],
8401:[,
230],
8402:[,
1],
8403:[,
1],
8404:[,
230],
8405:[,
230],
8406:[,
230],
8407:[,
230],
8408:[,
1],
8409:[,
1],
8410:[,
1],
8411:[,
230],
8412:[,
230],
8417:[,
230],
8421:[,
1],
8422:[,
1],
8423:[,
230],
8424:[,
220],
8425:[,
230],
8426:[,
1],
8427:[,
1],
8428:[,
220],
8429:[,
220],
8430:[,
220],
8431:[,
220],
8432:[,
230]},
6820 8448:{
8448:[[
97,
47,
99],
256],
8449:[[
97,
47,
115],
256],
8450:[[
67],
256],
8451:[[
176,
67],
256],
8453:[[
99,
47,
111],
256],
8454:[[
99,
47,
117],
256],
8455:[[
400],
256],
8457:[[
176,
70],
256],
8458:[[
103],
256],
8459:[[
72],
256],
8460:[[
72],
256],
8461:[[
72],
256],
8462:[[
104],
256],
8463:[[
295],
256],
8464:[[
73],
256],
8465:[[
73],
256],
8466:[[
76],
256],
8467:[[
108],
256],
8469:[[
78],
256],
8470:[[
78,
111],
256],
8473:[[
80],
256],
8474:[[
81],
256],
8475:[[
82],
256],
8476:[[
82],
256],
8477:[[
82],
256],
8480:[[
83,
77],
256],
8481:[[
84,
69,
76],
256],
8482:[[
84,
77],
256],
8484:[[
90],
256],
8486:[[
937]],
8488:[[
90],
256],
8490:[[
75]],
8491:[[
197]],
8492:[[
66],
256],
8493:[[
67],
256],
8495:[[
101],
256],
8496:[[
69],
256],
8497:[[
70],
256],
8499:[[
77],
256],
8500:[[
111],
256],
8501:[[
1488],
256],
8502:[[
1489],
256],
8503:[[
1490],
256],
8504:[[
1491],
256],
8505:[[
105],
256],
8507:[[
70,
65,
88],
256],
8508:[[
960],
256],
8509:[[
947],
256],
8510:[[
915],
256],
8511:[[
928],
256],
8512:[[
8721],
256],
8517:[[
68],
256],
8518:[[
100],
256],
8519:[[
101],
256],
8520:[[
105],
256],
8521:[[
106],
256],
8528:[[
49,
8260,
55],
256],
8529:[[
49,
8260,
57],
256],
8530:[[
49,
8260,
49,
48],
256],
8531:[[
49,
8260,
51],
256],
8532:[[
50,
8260,
51],
256],
8533:[[
49,
8260,
53],
256],
8534:[[
50,
8260,
53],
256],
8535:[[
51,
8260,
53],
256],
8536:[[
52,
8260,
53],
256],
8537:[[
49,
8260,
54],
256],
8538:[[
53,
8260,
54],
256],
8539:[[
49,
8260,
56],
256],
8540:[[
51,
8260,
56],
256],
8541:[[
53,
8260,
56],
256],
8542:[[
55,
8260,
56],
256],
8543:[[
49,
8260],
256],
8544:[[
73],
256],
8545:[[
73,
73],
256],
8546:[[
73,
73,
73],
256],
8547:[[
73,
86],
256],
8548:[[
86],
256],
8549:[[
86,
73],
256],
8550:[[
86,
73,
73],
256],
8551:[[
86,
73,
73,
73],
256],
8552:[[
73,
88],
256],
8553:[[
88],
256],
8554:[[
88,
73],
256],
8555:[[
88,
73,
73],
256],
8556:[[
76],
256],
8557:[[
67],
256],
8558:[[
68],
256],
8559:[[
77],
256],
8560:[[
105],
256],
8561:[[
105,
105],
256],
8562:[[
105,
105,
105],
256],
8563:[[
105,
118],
256],
8564:[[
118],
256],
8565:[[
118,
105],
256],
8566:[[
118,
105,
105],
256],
8567:[[
118,
105,
105,
105],
256],
8568:[[
105,
120],
256],
8569:[[
120],
256],
8570:[[
120,
105],
256],
8571:[[
120,
105,
105],
256],
8572:[[
108],
256],
8573:[[
99],
256],
8574:[[
100],
256],
8575:[[
109],
256],
8585:[[
48,
8260,
51],
256],
8592:[,,{
824:
8602}],
8594:[,,{
824:
8603}],
8596:[,,{
824:
8622}],
8602:[[
8592,
824]],
8603:[[
8594,
824]],
8622:[[
8596,
824]],
8653:[[
8656,
824]],
8654:[[
8660,
824]],
8655:[[
8658,
824]],
8656:[,,{
824:
8653}],
8658:[,,{
824:
8655}],
8660:[,,{
824:
8654}]},
6821 8704:{
8707:[,,{
824:
8708}],
8708:[[
8707,
824]],
8712:[,,{
824:
8713}],
8713:[[
8712,
824]],
8715:[,,{
824:
8716}],
8716:[[
8715,
824]],
8739:[,,{
824:
8740}],
8740:[[
8739,
824]],
8741:[,,{
824:
8742}],
8742:[[
8741,
824]],
8748:[[
8747,
8747],
256],
8749:[[
8747,
8747,
8747],
256],
8751:[[
8750,
8750],
256],
8752:[[
8750,
8750,
8750],
256],
8764:[,,{
824:
8769}],
8769:[[
8764,
824]],
8771:[,,{
824:
8772}],
8772:[[
8771,
824]],
8773:[,,{
824:
8775}],
8775:[[
8773,
824]],
8776:[,,{
824:
8777}],
8777:[[
8776,
824]],
8781:[,,{
824:
8813}],
8800:[[
61,
824]],
8801:[,,{
824:
8802}],
8802:[[
8801,
824]],
8804:[,,{
824:
8816}],
8805:[,,{
824:
8817}],
8813:[[
8781,
824]],
8814:[[
60,
824]],
8815:[[
62,
824]],
8816:[[
8804,
824]],
8817:[[
8805,
824]],
8818:[,,{
824:
8820}],
8819:[,,{
824:
8821}],
8820:[[
8818,
824]],
8821:[[
8819,
824]],
8822:[,,{
824:
8824}],
8823:[,,{
824:
8825}],
8824:[[
8822,
824]],
8825:[[
8823,
824]],
8826:[,,{
824:
8832}],
8827:[,,{
824:
8833}],
8828:[,,{
824:
8928}],
8829:[,,{
824:
8929}],
8832:[[
8826,
824]],
8833:[[
8827,
824]],
8834:[,,{
824:
8836}],
8835:[,,{
824:
8837}],
8836:[[
8834,
824]],
8837:[[
8835,
824]],
8838:[,,{
824:
8840}],
8839:[,,{
824:
8841}],
8840:[[
8838,
824]],
8841:[[
8839,
824]],
8849:[,,{
824:
8930}],
8850:[,,{
824:
8931}],
8866:[,,{
824:
8876}],
8872:[,,{
824:
8877}],
8873:[,,{
824:
8878}],
8875:[,,{
824:
8879}],
8876:[[
8866,
824]],
8877:[[
8872,
824]],
8878:[[
8873,
824]],
8879:[[
8875,
824]],
8882:[,,{
824:
8938}],
8883:[,,{
824:
8939}],
8884:[,,{
824:
8940}],
8885:[,,{
824:
8941}],
8928:[[
8828,
824]],
8929:[[
8829,
824]],
8930:[[
8849,
824]],
8931:[[
8850,
824]],
8938:[[
8882,
824]],
8939:[[
8883,
824]],
8940:[[
8884,
824]],
8941:[[
8885,
824]]},
6822 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6823 9216:{
9312:[[
49],
256],
9313:[[
50],
256],
9314:[[
51],
256],
9315:[[
52],
256],
9316:[[
53],
256],
9317:[[
54],
256],
9318:[[
55],
256],
9319:[[
56],
256],
9320:[[
57],
256],
9321:[[
49,
48],
256],
9322:[[
49,
49],
256],
9323:[[
49,
50],
256],
9324:[[
49,
51],
256],
9325:[[
49,
52],
256],
9326:[[
49,
53],
256],
9327:[[
49,
54],
256],
9328:[[
49,
55],
256],
9329:[[
49,
56],
256],
9330:[[
49,
57],
256],
9331:[[
50,
48],
256],
9332:[[
40,
49,
41],
256],
9333:[[
40,
50,
41],
256],
9334:[[
40,
51,
41],
256],
9335:[[
40,
52,
41],
256],
9336:[[
40,
53,
41],
256],
9337:[[
40,
54,
41],
256],
9338:[[
40,
55,
41],
256],
9339:[[
40,
56,
41],
256],
9340:[[
40,
57,
41],
256],
9341:[[
40,
49,
48,
41],
256],
9342:[[
40,
49,
49,
41],
256],
9343:[[
40,
49,
50,
41],
256],
9344:[[
40,
49,
51,
41],
256],
9345:[[
40,
49,
52,
41],
256],
9346:[[
40,
49,
53,
41],
256],
9347:[[
40,
49,
54,
41],
256],
9348:[[
40,
49,
55,
41],
256],
9349:[[
40,
49,
56,
41],
256],
9350:[[
40,
49,
57,
41],
256],
9351:[[
40,
50,
48,
41],
256],
9352:[[
49,
46],
256],
9353:[[
50,
46],
256],
9354:[[
51,
46],
256],
9355:[[
52,
46],
256],
9356:[[
53,
46],
256],
9357:[[
54,
46],
256],
9358:[[
55,
46],
256],
9359:[[
56,
46],
256],
9360:[[
57,
46],
256],
9361:[[
49,
48,
46],
256],
9362:[[
49,
49,
46],
256],
9363:[[
49,
50,
46],
256],
9364:[[
49,
51,
46],
256],
9365:[[
49,
52,
46],
256],
9366:[[
49,
53,
46],
256],
9367:[[
49,
54,
46],
256],
9368:[[
49,
55,
46],
256],
9369:[[
49,
56,
46],
256],
9370:[[
49,
57,
46],
256],
9371:[[
50,
48,
46],
256],
9372:[[
40,
97,
41],
256],
9373:[[
40,
98,
41],
256],
9374:[[
40,
99,
41],
256],
9375:[[
40,
100,
41],
256],
9376:[[
40,
101,
41],
256],
9377:[[
40,
102,
41],
256],
9378:[[
40,
103,
41],
256],
9379:[[
40,
104,
41],
256],
9380:[[
40,
105,
41],
256],
9381:[[
40,
106,
41],
256],
9382:[[
40,
107,
41],
256],
9383:[[
40,
108,
41],
256],
9384:[[
40,
109,
41],
256],
9385:[[
40,
110,
41],
256],
9386:[[
40,
111,
41],
256],
9387:[[
40,
112,
41],
256],
9388:[[
40,
113,
41],
256],
9389:[[
40,
114,
41],
256],
9390:[[
40,
115,
41],
256],
9391:[[
40,
116,
41],
256],
9392:[[
40,
117,
41],
256],
9393:[[
40,
118,
41],
256],
9394:[[
40,
119,
41],
256],
9395:[[
40,
120,
41],
256],
9396:[[
40,
121,
41],
256],
9397:[[
40,
122,
41],
256],
9398:[[
65],
256],
9399:[[
66],
256],
9400:[[
67],
256],
9401:[[
68],
256],
9402:[[
69],
256],
9403:[[
70],
256],
9404:[[
71],
256],
9405:[[
72],
256],
9406:[[
73],
256],
9407:[[
74],
256],
9408:[[
75],
256],
9409:[[
76],
256],
9410:[[
77],
256],
9411:[[
78],
256],
9412:[[
79],
256],
9413:[[
80],
256],
9414:[[
81],
256],
9415:[[
82],
256],
9416:[[
83],
256],
9417:[[
84],
256],
9418:[[
85],
256],
9419:[[
86],
256],
9420:[[
87],
256],
9421:[[
88],
256],
9422:[[
89],
256],
9423:[[
90],
256],
9424:[[
97],
256],
9425:[[
98],
256],
9426:[[
99],
256],
9427:[[
100],
256],
9428:[[
101],
256],
9429:[[
102],
256],
9430:[[
103],
256],
9431:[[
104],
256],
9432:[[
105],
256],
9433:[[
106],
256],
9434:[[
107],
256],
9435:[[
108],
256],
9436:[[
109],
256],
9437:[[
110],
256],
9438:[[
111],
256],
9439:[[
112],
256],
9440:[[
113],
256],
9441:[[
114],
256],
9442:[[
115],
256],
9443:[[
116],
256],
9444:[[
117],
256],
9445:[[
118],
256],
9446:[[
119],
256],
9447:[[
120],
256],
9448:[[
121],
256],
9449:[[
122],
256],
9450:[[
48],
256]},
6824 10752:{
10764:[[
8747,
8747,
8747,
8747],
256],
10868:[[
58,
58,
61],
256],
10869:[[
61,
61],
256],
10870:[[
61,
61,
61],
256],
10972:[[
10973,
824],
512]},
6825 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6826 11520:{
11631:[[
11617],
256],
11647:[,
9],
11744:[,
230],
11745:[,
230],
11746:[,
230],
11747:[,
230],
11748:[,
230],
11749:[,
230],
11750:[,
230],
11751:[,
230],
11752:[,
230],
11753:[,
230],
11754:[,
230],
11755:[,
230],
11756:[,
230],
11757:[,
230],
11758:[,
230],
11759:[,
230],
11760:[,
230],
11761:[,
230],
11762:[,
230],
11763:[,
230],
11764:[,
230],
11765:[,
230],
11766:[,
230],
11767:[,
230],
11768:[,
230],
11769:[,
230],
11770:[,
230],
11771:[,
230],
11772:[,
230],
11773:[,
230],
11774:[,
230],
11775:[,
230]},
6827 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6828 12032:{
12032:[[
19968],
256],
12033:[[
20008],
256],
12034:[[
20022],
256],
12035:[[
20031],
256],
12036:[[
20057],
256],
12037:[[
20101],
256],
12038:[[
20108],
256],
12039:[[
20128],
256],
12040:[[
20154],
256],
12041:[[
20799],
256],
12042:[[
20837],
256],
12043:[[
20843],
256],
12044:[[
20866],
256],
12045:[[
20886],
256],
12046:[[
20907],
256],
12047:[[
20960],
256],
12048:[[
20981],
256],
12049:[[
20992],
256],
12050:[[
21147],
256],
12051:[[
21241],
256],
12052:[[
21269],
256],
12053:[[
21274],
256],
12054:[[
21304],
256],
12055:[[
21313],
256],
12056:[[
21340],
256],
12057:[[
21353],
256],
12058:[[
21378],
256],
12059:[[
21430],
256],
12060:[[
21448],
256],
12061:[[
21475],
256],
12062:[[
22231],
256],
12063:[[
22303],
256],
12064:[[
22763],
256],
12065:[[
22786],
256],
12066:[[
22794],
256],
12067:[[
22805],
256],
12068:[[
22823],
256],
12069:[[
22899],
256],
12070:[[
23376],
256],
12071:[[
23424],
256],
12072:[[
23544],
256],
12073:[[
23567],
256],
12074:[[
23586],
256],
12075:[[
23608],
256],
12076:[[
23662],
256],
12077:[[
23665],
256],
12078:[[
24027],
256],
12079:[[
24037],
256],
12080:[[
24049],
256],
12081:[[
24062],
256],
12082:[[
24178],
256],
12083:[[
24186],
256],
12084:[[
24191],
256],
12085:[[
24308],
256],
12086:[[
24318],
256],
12087:[[
24331],
256],
12088:[[
24339],
256],
12089:[[
24400],
256],
12090:[[
24417],
256],
12091:[[
24435],
256],
12092:[[
24515],
256],
12093:[[
25096],
256],
12094:[[
25142],
256],
12095:[[
25163],
256],
12096:[[
25903],
256],
12097:[[
25908],
256],
12098:[[
25991],
256],
12099:[[
26007],
256],
12100:[[
26020],
256],
12101:[[
26041],
256],
12102:[[
26080],
256],
12103:[[
26085],
256],
12104:[[
26352],
256],
12105:[[
26376],
256],
12106:[[
26408],
256],
12107:[[
27424],
256],
12108:[[
27490],
256],
12109:[[
27513],
256],
12110:[[
27571],
256],
12111:[[
27595],
256],
12112:[[
27604],
256],
12113:[[
27611],
256],
12114:[[
27663],
256],
12115:[[
27668],
256],
12116:[[
27700],
256],
12117:[[
28779],
256],
12118:[[
29226],
256],
12119:[[
29238],
256],
12120:[[
29243],
256],
12121:[[
29247],
256],
12122:[[
29255],
256],
12123:[[
29273],
256],
12124:[[
29275],
256],
12125:[[
29356],
256],
12126:[[
29572],
256],
12127:[[
29577],
256],
12128:[[
29916],
256],
12129:[[
29926],
256],
12130:[[
29976],
256],
12131:[[
29983],
256],
12132:[[
29992],
256],
12133:[[
30000],
256],
12134:[[
30091],
256],
12135:[[
30098],
256],
12136:[[
30326],
256],
12137:[[
30333],
256],
12138:[[
30382],
256],
12139:[[
30399],
256],
12140:[[
30446],
256],
12141:[[
30683],
256],
12142:[[
30690],
256],
12143:[[
30707],
256],
12144:[[
31034],
256],
12145:[[
31160],
256],
12146:[[
31166],
256],
12147:[[
31348],
256],
12148:[[
31435],
256],
12149:[[
31481],
256],
12150:[[
31859],
256],
12151:[[
31992],
256],
12152:[[
32566],
256],
12153:[[
32593],
256],
12154:[[
32650],
256],
12155:[[
32701],
256],
12156:[[
32769],
256],
12157:[[
32780],
256],
12158:[[
32786],
256],
12159:[[
32819],
256],
12160:[[
32895],
256],
12161:[[
32905],
256],
12162:[[
33251],
256],
12163:[[
33258],
256],
12164:[[
33267],
256],
12165:[[
33276],
256],
12166:[[
33292],
256],
12167:[[
33307],
256],
12168:[[
33311],
256],
12169:[[
33390],
256],
12170:[[
33394],
256],
12171:[[
33400],
256],
12172:[[
34381],
256],
12173:[[
34411],
256],
12174:[[
34880],
256],
12175:[[
34892],
256],
12176:[[
34915],
256],
12177:[[
35198],
256],
12178:[[
35211],
256],
12179:[[
35282],
256],
12180:[[
35328],
256],
12181:[[
35895],
256],
12182:[[
35910],
256],
12183:[[
35925],
256],
12184:[[
35960],
256],
12185:[[
35997],
256],
12186:[[
36196],
256],
12187:[[
36208],
256],
12188:[[
36275],
256],
12189:[[
36523],
256],
12190:[[
36554],
256],
12191:[[
36763],
256],
12192:[[
36784],
256],
12193:[[
36789],
256],
12194:[[
37009],
256],
12195:[[
37193],
256],
12196:[[
37318],
256],
12197:[[
37324],
256],
12198:[[
37329],
256],
12199:[[
38263],
256],
12200:[[
38272],
256],
12201:[[
38428],
256],
12202:[[
38582],
256],
12203:[[
38585],
256],
12204:[[
38632],
256],
12205:[[
38737],
256],
12206:[[
38750],
256],
12207:[[
38754],
256],
12208:[[
38761],
256],
12209:[[
38859],
256],
12210:[[
38893],
256],
12211:[[
38899],
256],
12212:[[
38913],
256],
12213:[[
39080],
256],
12214:[[
39131],
256],
12215:[[
39135],
256],
12216:[[
39318],
256],
12217:[[
39321],
256],
12218:[[
39340],
256],
12219:[[
39592],
256],
12220:[[
39640],
256],
12221:[[
39647],
256],
12222:[[
39717],
256],
12223:[[
39727],
256],
12224:[[
39730],
256],
12225:[[
39740],
256],
12226:[[
39770],
256],
12227:[[
40165],
256],
12228:[[
40565],
256],
12229:[[
40575],
256],
12230:[[
40613],
256],
12231:[[
40635],
256],
12232:[[
40643],
256],
12233:[[
40653],
256],
12234:[[
40657],
256],
12235:[[
40697],
256],
12236:[[
40701],
256],
12237:[[
40718],
256],
12238:[[
40723],
256],
12239:[[
40736],
256],
12240:[[
40763],
256],
12241:[[
40778],
256],
12242:[[
40786],
256],
12243:[[
40845],
256],
12244:[[
40860],
256],
12245:[[
40864],
256]},
6829 12288:{
12288:[[
32],
256],
12330:[,
218],
12331:[,
228],
12332:[,
232],
12333:[,
222],
12334:[,
224],
12335:[,
224],
12342:[[
12306],
256],
12344:[[
21313],
256],
12345:[[
21316],
256],
12346:[[
21317],
256],
12358:[,,{
12441:
12436}],
12363:[,,{
12441:
12364}],
12364:[[
12363,
12441]],
12365:[,,{
12441:
12366}],
12366:[[
12365,
12441]],
12367:[,,{
12441:
12368}],
12368:[[
12367,
12441]],
12369:[,,{
12441:
12370}],
12370:[[
12369,
12441]],
12371:[,,{
12441:
12372}],
12372:[[
12371,
12441]],
12373:[,,{
12441:
12374}],
12374:[[
12373,
12441]],
12375:[,,{
12441:
12376}],
12376:[[
12375,
12441]],
12377:[,,{
12441:
12378}],
12378:[[
12377,
12441]],
12379:[,,{
12441:
12380}],
12380:[[
12379,
12441]],
12381:[,,{
12441:
12382}],
12382:[[
12381,
12441]],
12383:[,,{
12441:
12384}],
12384:[[
12383,
12441]],
12385:[,,{
12441:
12386}],
12386:[[
12385,
12441]],
12388:[,,{
12441:
12389}],
12389:[[
12388,
12441]],
12390:[,,{
12441:
12391}],
12391:[[
12390,
12441]],
12392:[,,{
12441:
12393}],
12393:[[
12392,
12441]],
12399:[,,{
12441:
12400,
12442:
12401}],
12400:[[
12399,
12441]],
12401:[[
12399,
12442]],
12402:[,,{
12441:
12403,
12442:
12404}],
12403:[[
12402,
12441]],
12404:[[
12402,
12442]],
12405:[,,{
12441:
12406,
12442:
12407}],
12406:[[
12405,
12441]],
12407:[[
12405,
12442]],
12408:[,,{
12441:
12409,
12442:
12410}],
12409:[[
12408,
12441]],
12410:[[
12408,
12442]],
12411:[,,{
12441:
12412,
12442:
12413}],
12412:[[
12411,
12441]],
12413:[[
12411,
12442]],
12436:[[
12358,
12441]],
12441:[,
8],
12442:[,
8],
12443:[[
32,
12441],
256],
12444:[[
32,
12442],
256],
12445:[,,{
12441:
12446}],
12446:[[
12445,
12441]],
12447:[[
12424,
12426],
256],
12454:[,,{
12441:
12532}],
12459:[,,{
12441:
12460}],
12460:[[
12459,
12441]],
12461:[,,{
12441:
12462}],
12462:[[
12461,
12441]],
12463:[,,{
12441:
12464}],
12464:[[
12463,
12441]],
12465:[,,{
12441:
12466}],
12466:[[
12465,
12441]],
12467:[,,{
12441:
12468}],
12468:[[
12467,
12441]],
12469:[,,{
12441:
12470}],
12470:[[
12469,
12441]],
12471:[,,{
12441:
12472}],
12472:[[
12471,
12441]],
12473:[,,{
12441:
12474}],
12474:[[
12473,
12441]],
12475:[,,{
12441:
12476}],
12476:[[
12475,
12441]],
12477:[,,{
12441:
12478}],
12478:[[
12477,
12441]],
12479:[,,{
12441:
12480}],
12480:[[
12479,
12441]],
12481:[,,{
12441:
12482}],
12482:[[
12481,
12441]],
12484:[,,{
12441:
12485}],
12485:[[
12484,
12441]],
12486:[,,{
12441:
12487}],
12487:[[
12486,
12441]],
12488:[,,{
12441:
12489}],
12489:[[
12488,
12441]],
12495:[,,{
12441:
12496,
12442:
12497}],
12496:[[
12495,
12441]],
12497:[[
12495,
12442]],
12498:[,,{
12441:
12499,
12442:
12500}],
12499:[[
12498,
12441]],
12500:[[
12498,
12442]],
12501:[,,{
12441:
12502,
12442:
12503}],
12502:[[
12501,
12441]],
12503:[[
12501,
12442]],
12504:[,,{
12441:
12505,
12442:
12506}],
12505:[[
12504,
12441]],
12506:[[
12504,
12442]],
12507:[,,{
12441:
12508,
12442:
12509}],
12508:[[
12507,
12441]],
12509:[[
12507,
12442]],
12527:[,,{
12441:
12535}],
12528:[,,{
12441:
12536}],
12529:[,,{
12441:
12537}],
12530:[,,{
12441:
12538}],
12532:[[
12454,
12441]],
12535:[[
12527,
12441]],
12536:[[
12528,
12441]],
12537:[[
12529,
12441]],
12538:[[
12530,
12441]],
12541:[,,{
12441:
12542}],
12542:[[
12541,
12441]],
12543:[[
12467,
12488],
256]},
6830 12544:{
12593:[[
4352],
256],
12594:[[
4353],
256],
12595:[[
4522],
256],
12596:[[
4354],
256],
12597:[[
4524],
256],
12598:[[
4525],
256],
12599:[[
4355],
256],
12600:[[
4356],
256],
12601:[[
4357],
256],
12602:[[
4528],
256],
12603:[[
4529],
256],
12604:[[
4530],
256],
12605:[[
4531],
256],
12606:[[
4532],
256],
12607:[[
4533],
256],
12608:[[
4378],
256],
12609:[[
4358],
256],
12610:[[
4359],
256],
12611:[[
4360],
256],
12612:[[
4385],
256],
12613:[[
4361],
256],
12614:[[
4362],
256],
12615:[[
4363],
256],
12616:[[
4364],
256],
12617:[[
4365],
256],
12618:[[
4366],
256],
12619:[[
4367],
256],
12620:[[
4368],
256],
12621:[[
4369],
256],
12622:[[
4370],
256],
12623:[[
4449],
256],
12624:[[
4450],
256],
12625:[[
4451],
256],
12626:[[
4452],
256],
12627:[[
4453],
256],
12628:[[
4454],
256],
12629:[[
4455],
256],
12630:[[
4456],
256],
12631:[[
4457],
256],
12632:[[
4458],
256],
12633:[[
4459],
256],
12634:[[
4460],
256],
12635:[[
4461],
256],
12636:[[
4462],
256],
12637:[[
4463],
256],
12638:[[
4464],
256],
12639:[[
4465],
256],
12640:[[
4466],
256],
12641:[[
4467],
256],
12642:[[
4468],
256],
12643:[[
4469],
256],
12644:[[
4448],
256],
12645:[[
4372],
256],
12646:[[
4373],
256],
12647:[[
4551],
256],
12648:[[
4552],
256],
12649:[[
4556],
256],
12650:[[
4558],
256],
12651:[[
4563],
256],
12652:[[
4567],
256],
12653:[[
4569],
256],
12654:[[
4380],
256],
12655:[[
4573],
256],
12656:[[
4575],
256],
12657:[[
4381],
256],
12658:[[
4382],
256],
12659:[[
4384],
256],
12660:[[
4386],
256],
12661:[[
4387],
256],
12662:[[
4391],
256],
12663:[[
4393],
256],
12664:[[
4395],
256],
12665:[[
4396],
256],
12666:[[
4397],
256],
12667:[[
4398],
256],
12668:[[
4399],
256],
12669:[[
4402],
256],
12670:[[
4406],
256],
12671:[[
4416],
256],
12672:[[
4423],
256],
12673:[[
4428],
256],
12674:[[
4593],
256],
12675:[[
4594],
256],
12676:[[
4439],
256],
12677:[[
4440],
256],
12678:[[
4441],
256],
12679:[[
4484],
256],
12680:[[
4485],
256],
12681:[[
4488],
256],
12682:[[
4497],
256],
12683:[[
4498],
256],
12684:[[
4500],
256],
12685:[[
4510],
256],
12686:[[
4513],
256],
12690:[[
19968],
256],
12691:[[
20108],
256],
12692:[[
19977],
256],
12693:[[
22235],
256],
12694:[[
19978],
256],
12695:[[
20013],
256],
12696:[[
19979],
256],
12697:[[
30002],
256],
12698:[[
20057],
256],
12699:[[
19993],
256],
12700:[[
19969],
256],
12701:[[
22825],
256],
12702:[[
22320],
256],
12703:[[
20154],
256]},
6831 12800:{
12800:[[
40,
4352,
41],
256],
12801:[[
40,
4354,
41],
256],
12802:[[
40,
4355,
41],
256],
12803:[[
40,
4357,
41],
256],
12804:[[
40,
4358,
41],
256],
12805:[[
40,
4359,
41],
256],
12806:[[
40,
4361,
41],
256],
12807:[[
40,
4363,
41],
256],
12808:[[
40,
4364,
41],
256],
12809:[[
40,
4366,
41],
256],
12810:[[
40,
4367,
41],
256],
12811:[[
40,
4368,
41],
256],
12812:[[
40,
4369,
41],
256],
12813:[[
40,
4370,
41],
256],
12814:[[
40,
4352,
4449,
41],
256],
12815:[[
40,
4354,
4449,
41],
256],
12816:[[
40,
4355,
4449,
41],
256],
12817:[[
40,
4357,
4449,
41],
256],
12818:[[
40,
4358,
4449,
41],
256],
12819:[[
40,
4359,
4449,
41],
256],
12820:[[
40,
4361,
4449,
41],
256],
12821:[[
40,
4363,
4449,
41],
256],
12822:[[
40,
4364,
4449,
41],
256],
12823:[[
40,
4366,
4449,
41],
256],
12824:[[
40,
4367,
4449,
41],
256],
12825:[[
40,
4368,
4449,
41],
256],
12826:[[
40,
4369,
4449,
41],
256],
12827:[[
40,
4370,
4449,
41],
256],
12828:[[
40,
4364,
4462,
41],
256],
12829:[[
40,
4363,
4457,
4364,
4453,
4523,
41],
256],
12830:[[
40,
4363,
4457,
4370,
4462,
41],
256],
12832:[[
40,
19968,
41],
256],
12833:[[
40,
20108,
41],
256],
12834:[[
40,
19977,
41],
256],
12835:[[
40,
22235,
41],
256],
12836:[[
40,
20116,
41],
256],
12837:[[
40,
20845,
41],
256],
12838:[[
40,
19971,
41],
256],
12839:[[
40,
20843,
41],
256],
12840:[[
40,
20061,
41],
256],
12841:[[
40,
21313,
41],
256],
12842:[[
40,
26376,
41],
256],
12843:[[
40,
28779,
41],
256],
12844:[[
40,
27700,
41],
256],
12845:[[
40,
26408,
41],
256],
12846:[[
40,
37329,
41],
256],
12847:[[
40,
22303,
41],
256],
12848:[[
40,
26085,
41],
256],
12849:[[
40,
26666,
41],
256],
12850:[[
40,
26377,
41],
256],
12851:[[
40,
31038,
41],
256],
12852:[[
40,
21517,
41],
256],
12853:[[
40,
29305,
41],
256],
12854:[[
40,
36001,
41],
256],
12855:[[
40,
31069,
41],
256],
12856:[[
40,
21172,
41],
256],
12857:[[
40,
20195,
41],
256],
12858:[[
40,
21628,
41],
256],
12859:[[
40,
23398,
41],
256],
12860:[[
40,
30435,
41],
256],
12861:[[
40,
20225,
41],
256],
12862:[[
40,
36039,
41],
256],
12863:[[
40,
21332,
41],
256],
12864:[[
40,
31085,
41],
256],
12865:[[
40,
20241,
41],
256],
12866:[[
40,
33258,
41],
256],
12867:[[
40,
33267,
41],
256],
12868:[[
21839],
256],
12869:[[
24188],
256],
12870:[[
25991],
256],
12871:[[
31631],
256],
12880:[[
80,
84,
69],
256],
12881:[[
50,
49],
256],
12882:[[
50,
50],
256],
12883:[[
50,
51],
256],
12884:[[
50,
52],
256],
12885:[[
50,
53],
256],
12886:[[
50,
54],
256],
12887:[[
50,
55],
256],
12888:[[
50,
56],
256],
12889:[[
50,
57],
256],
12890:[[
51,
48],
256],
12891:[[
51,
49],
256],
12892:[[
51,
50],
256],
12893:[[
51,
51],
256],
12894:[[
51,
52],
256],
12895:[[
51,
53],
256],
12896:[[
4352],
256],
12897:[[
4354],
256],
12898:[[
4355],
256],
12899:[[
4357],
256],
12900:[[
4358],
256],
12901:[[
4359],
256],
12902:[[
4361],
256],
12903:[[
4363],
256],
12904:[[
4364],
256],
12905:[[
4366],
256],
12906:[[
4367],
256],
12907:[[
4368],
256],
12908:[[
4369],
256],
12909:[[
4370],
256],
12910:[[
4352,
4449],
256],
12911:[[
4354,
4449],
256],
12912:[[
4355,
4449],
256],
12913:[[
4357,
4449],
256],
12914:[[
4358,
4449],
256],
12915:[[
4359,
4449],
256],
12916:[[
4361,
4449],
256],
12917:[[
4363,
4449],
256],
12918:[[
4364,
4449],
256],
12919:[[
4366,
4449],
256],
12920:[[
4367,
4449],
256],
12921:[[
4368,
4449],
256],
12922:[[
4369,
4449],
256],
12923:[[
4370,
4449],
256],
12924:[[
4366,
4449,
4535,
4352,
4457],
256],
12925:[[
4364,
4462,
4363,
4468],
256],
12926:[[
4363,
4462],
256],
12928:[[
19968],
256],
12929:[[
20108],
256],
12930:[[
19977],
256],
12931:[[
22235],
256],
12932:[[
20116],
256],
12933:[[
20845],
256],
12934:[[
19971],
256],
12935:[[
20843],
256],
12936:[[
20061],
256],
12937:[[
21313],
256],
12938:[[
26376],
256],
12939:[[
28779],
256],
12940:[[
27700],
256],
12941:[[
26408],
256],
12942:[[
37329],
256],
12943:[[
22303],
256],
12944:[[
26085],
256],
12945:[[
26666],
256],
12946:[[
26377],
256],
12947:[[
31038],
256],
12948:[[
21517],
256],
12949:[[
29305],
256],
12950:[[
36001],
256],
12951:[[
31069],
256],
12952:[[
21172],
256],
12953:[[
31192],
256],
12954:[[
30007],
256],
12955:[[
22899],
256],
12956:[[
36969],
256],
12957:[[
20778],
256],
12958:[[
21360],
256],
12959:[[
27880],
256],
12960:[[
38917],
256],
12961:[[
20241],
256],
12962:[[
20889],
256],
12963:[[
27491],
256],
12964:[[
19978],
256],
12965:[[
20013],
256],
12966:[[
19979],
256],
12967:[[
24038],
256],
12968:[[
21491],
256],
12969:[[
21307],
256],
12970:[[
23447],
256],
12971:[[
23398],
256],
12972:[[
30435],
256],
12973:[[
20225],
256],
12974:[[
36039],
256],
12975:[[
21332],
256],
12976:[[
22812],
256],
12977:[[
51,
54],
256],
12978:[[
51,
55],
256],
12979:[[
51,
56],
256],
12980:[[
51,
57],
256],
12981:[[
52,
48],
256],
12982:[[
52,
49],
256],
12983:[[
52,
50],
256],
12984:[[
52,
51],
256],
12985:[[
52,
52],
256],
12986:[[
52,
53],
256],
12987:[[
52,
54],
256],
12988:[[
52,
55],
256],
12989:[[
52,
56],
256],
12990:[[
52,
57],
256],
12991:[[
53,
48],
256],
12992:[[
49,
26376],
256],
12993:[[
50,
26376],
256],
12994:[[
51,
26376],
256],
12995:[[
52,
26376],
256],
12996:[[
53,
26376],
256],
12997:[[
54,
26376],
256],
12998:[[
55,
26376],
256],
12999:[[
56,
26376],
256],
13000:[[
57,
26376],
256],
13001:[[
49,
48,
26376],
256],
13002:[[
49,
49,
26376],
256],
13003:[[
49,
50,
26376],
256],
13004:[[
72,
103],
256],
13005:[[
101,
114,
103],
256],
13006:[[
101,
86],
256],
13007:[[
76,
84,
68],
256],
13008:[[
12450],
256],
13009:[[
12452],
256],
13010:[[
12454],
256],
13011:[[
12456],
256],
13012:[[
12458],
256],
13013:[[
12459],
256],
13014:[[
12461],
256],
13015:[[
12463],
256],
13016:[[
12465],
256],
13017:[[
12467],
256],
13018:[[
12469],
256],
13019:[[
12471],
256],
13020:[[
12473],
256],
13021:[[
12475],
256],
13022:[[
12477],
256],
13023:[[
12479],
256],
13024:[[
12481],
256],
13025:[[
12484],
256],
13026:[[
12486],
256],
13027:[[
12488],
256],
13028:[[
12490],
256],
13029:[[
12491],
256],
13030:[[
12492],
256],
13031:[[
12493],
256],
13032:[[
12494],
256],
13033:[[
12495],
256],
13034:[[
12498],
256],
13035:[[
12501],
256],
13036:[[
12504],
256],
13037:[[
12507],
256],
13038:[[
12510],
256],
13039:[[
12511],
256],
13040:[[
12512],
256],
13041:[[
12513],
256],
13042:[[
12514],
256],
13043:[[
12516],
256],
13044:[[
12518],
256],
13045:[[
12520],
256],
13046:[[
12521],
256],
13047:[[
12522],
256],
13048:[[
12523],
256],
13049:[[
12524],
256],
13050:[[
12525],
256],
13051:[[
12527],
256],
13052:[[
12528],
256],
13053:[[
12529],
256],
13054:[[
12530],
256]},
6832 13056:{
13056:[[
12450,
12497,
12540,
12488],
256],
13057:[[
12450,
12523,
12501,
12449],
256],
13058:[[
12450,
12531,
12506,
12450],
256],
13059:[[
12450,
12540,
12523],
256],
13060:[[
12452,
12491,
12531,
12464],
256],
13061:[[
12452,
12531,
12481],
256],
13062:[[
12454,
12457,
12531],
256],
13063:[[
12456,
12473,
12463,
12540,
12489],
256],
13064:[[
12456,
12540,
12459,
12540],
256],
13065:[[
12458,
12531,
12473],
256],
13066:[[
12458,
12540,
12512],
256],
13067:[[
12459,
12452,
12522],
256],
13068:[[
12459,
12521,
12483,
12488],
256],
13069:[[
12459,
12525,
12522,
12540],
256],
13070:[[
12460,
12525,
12531],
256],
13071:[[
12460,
12531,
12510],
256],
13072:[[
12462,
12460],
256],
13073:[[
12462,
12491,
12540],
256],
13074:[[
12461,
12517,
12522,
12540],
256],
13075:[[
12462,
12523,
12480,
12540],
256],
13076:[[
12461,
12525],
256],
13077:[[
12461,
12525,
12464,
12521,
12512],
256],
13078:[[
12461,
12525,
12513,
12540,
12488,
12523],
256],
13079:[[
12461,
12525,
12527,
12483,
12488],
256],
13080:[[
12464,
12521,
12512],
256],
13081:[[
12464,
12521,
12512,
12488,
12531],
256],
13082:[[
12463,
12523,
12476,
12452,
12525],
256],
13083:[[
12463,
12525,
12540,
12493],
256],
13084:[[
12465,
12540,
12473],
256],
13085:[[
12467,
12523,
12490],
256],
13086:[[
12467,
12540,
12509],
256],
13087:[[
12469,
12452,
12463,
12523],
256],
13088:[[
12469,
12531,
12481,
12540,
12512],
256],
13089:[[
12471,
12522,
12531,
12464],
256],
13090:[[
12475,
12531,
12481],
256],
13091:[[
12475,
12531,
12488],
256],
13092:[[
12480,
12540,
12473],
256],
13093:[[
12487,
12471],
256],
13094:[[
12489,
12523],
256],
13095:[[
12488,
12531],
256],
13096:[[
12490,
12494],
256],
13097:[[
12494,
12483,
12488],
256],
13098:[[
12495,
12452,
12484],
256],
13099:[[
12497,
12540,
12475,
12531,
12488],
256],
13100:[[
12497,
12540,
12484],
256],
13101:[[
12496,
12540,
12524,
12523],
256],
13102:[[
12500,
12450,
12473,
12488,
12523],
256],
13103:[[
12500,
12463,
12523],
256],
13104:[[
12500,
12467],
256],
13105:[[
12499,
12523],
256],
13106:[[
12501,
12449,
12521,
12483,
12489],
256],
13107:[[
12501,
12451,
12540,
12488],
256],
13108:[[
12502,
12483,
12471,
12455,
12523],
256],
13109:[[
12501,
12521,
12531],
256],
13110:[[
12504,
12463,
12479,
12540,
12523],
256],
13111:[[
12506,
12477],
256],
13112:[[
12506,
12491,
12498],
256],
13113:[[
12504,
12523,
12484],
256],
13114:[[
12506,
12531,
12473],
256],
13115:[[
12506,
12540,
12472],
256],
13116:[[
12505,
12540,
12479],
256],
13117:[[
12509,
12452,
12531,
12488],
256],
13118:[[
12508,
12523,
12488],
256],
13119:[[
12507,
12531],
256],
13120:[[
12509,
12531,
12489],
256],
13121:[[
12507,
12540,
12523],
256],
13122:[[
12507,
12540,
12531],
256],
13123:[[
12510,
12452,
12463,
12525],
256],
13124:[[
12510,
12452,
12523],
256],
13125:[[
12510,
12483,
12495],
256],
13126:[[
12510,
12523,
12463],
256],
13127:[[
12510,
12531,
12471,
12519,
12531],
256],
13128:[[
12511,
12463,
12525,
12531],
256],
13129:[[
12511,
12522],
256],
13130:[[
12511,
12522,
12496,
12540,
12523],
256],
13131:[[
12513,
12460],
256],
13132:[[
12513,
12460,
12488,
12531],
256],
13133:[[
12513,
12540,
12488,
12523],
256],
13134:[[
12516,
12540,
12489],
256],
13135:[[
12516,
12540,
12523],
256],
13136:[[
12518,
12450,
12531],
256],
13137:[[
12522,
12483,
12488,
12523],
256],
13138:[[
12522,
12521],
256],
13139:[[
12523,
12500,
12540],
256],
13140:[[
12523,
12540,
12502,
12523],
256],
13141:[[
12524,
12512],
256],
13142:[[
12524,
12531,
12488,
12466,
12531],
256],
13143:[[
12527,
12483,
12488],
256],
13144:[[
48,
28857],
256],
13145:[[
49,
28857],
256],
13146:[[
50,
28857],
256],
13147:[[
51,
28857],
256],
13148:[[
52,
28857],
256],
13149:[[
53,
28857],
256],
13150:[[
54,
28857],
256],
13151:[[
55,
28857],
256],
13152:[[
56,
28857],
256],
13153:[[
57,
28857],
256],
13154:[[
49,
48,
28857],
256],
13155:[[
49,
49,
28857],
256],
13156:[[
49,
50,
28857],
256],
13157:[[
49,
51,
28857],
256],
13158:[[
49,
52,
28857],
256],
13159:[[
49,
53,
28857],
256],
13160:[[
49,
54,
28857],
256],
13161:[[
49,
55,
28857],
256],
13162:[[
49,
56,
28857],
256],
13163:[[
49,
57,
28857],
256],
13164:[[
50,
48,
28857],
256],
13165:[[
50,
49,
28857],
256],
13166:[[
50,
50,
28857],
256],
13167:[[
50,
51,
28857],
256],
13168:[[
50,
52,
28857],
256],
13169:[[
104,
80,
97],
256],
13170:[[
100,
97],
256],
13171:[[
65,
85],
256],
13172:[[
98,
97,
114],
256],
13173:[[
111,
86],
256],
13174:[[
112,
99],
256],
13175:[[
100,
109],
256],
13176:[[
100,
109,
178],
256],
13177:[[
100,
109,
179],
256],
13178:[[
73,
85],
256],
13179:[[
24179,
25104],
256],
13180:[[
26157,
21644],
256],
13181:[[
22823,
27491],
256],
13182:[[
26126,
27835],
256],
13183:[[
26666,
24335,
20250,
31038],
256],
13184:[[
112,
65],
256],
13185:[[
110,
65],
256],
13186:[[
956,
65],
256],
13187:[[
109,
65],
256],
13188:[[
107,
65],
256],
13189:[[
75,
66],
256],
13190:[[
77,
66],
256],
13191:[[
71,
66],
256],
13192:[[
99,
97,
108],
256],
13193:[[
107,
99,
97,
108],
256],
13194:[[
112,
70],
256],
13195:[[
110,
70],
256],
13196:[[
956,
70],
256],
13197:[[
956,
103],
256],
13198:[[
109,
103],
256],
13199:[[
107,
103],
256],
13200:[[
72,
122],
256],
13201:[[
107,
72,
122],
256],
13202:[[
77,
72,
122],
256],
13203:[[
71,
72,
122],
256],
13204:[[
84,
72,
122],
256],
13205:[[
956,
8467],
256],
13206:[[
109,
8467],
256],
13207:[[
100,
8467],
256],
13208:[[
107,
8467],
256],
13209:[[
102,
109],
256],
13210:[[
110,
109],
256],
13211:[[
956,
109],
256],
13212:[[
109,
109],
256],
13213:[[
99,
109],
256],
13214:[[
107,
109],
256],
13215:[[
109,
109,
178],
256],
13216:[[
99,
109,
178],
256],
13217:[[
109,
178],
256],
13218:[[
107,
109,
178],
256],
13219:[[
109,
109,
179],
256],
13220:[[
99,
109,
179],
256],
13221:[[
109,
179],
256],
13222:[[
107,
109,
179],
256],
13223:[[
109,
8725,
115],
256],
13224:[[
109,
8725,
115,
178],
256],
13225:[[
80,
97],
256],
13226:[[
107,
80,
97],
256],
13227:[[
77,
80,
97],
256],
13228:[[
71,
80,
97],
256],
13229:[[
114,
97,
100],
256],
13230:[[
114,
97,
100,
8725,
115],
256],
13231:[[
114,
97,
100,
8725,
115,
178],
256],
13232:[[
112,
115],
256],
13233:[[
110,
115],
256],
13234:[[
956,
115],
256],
13235:[[
109,
115],
256],
13236:[[
112,
86],
256],
13237:[[
110,
86],
256],
13238:[[
956,
86],
256],
13239:[[
109,
86],
256],
13240:[[
107,
86],
256],
13241:[[
77,
86],
256],
13242:[[
112,
87],
256],
13243:[[
110,
87],
256],
13244:[[
956,
87],
256],
13245:[[
109,
87],
256],
13246:[[
107,
87],
256],
13247:[[
77,
87],
256],
13248:[[
107,
937],
256],
13249:[[
77,
937],
256],
13250:[[
97,
46,
109,
46],
256],
13251:[[
66,
113],
256],
13252:[[
99,
99],
256],
13253:[[
99,
100],
256],
13254:[[
67,
8725,
107,
103],
256],
13255:[[
67,
111,
46],
256],
13256:[[
100,
66],
256],
13257:[[
71,
121],
256],
13258:[[
104,
97],
256],
13259:[[
72,
80],
256],
13260:[[
105,
110],
256],
13261:[[
75,
75],
256],
13262:[[
75,
77],
256],
13263:[[
107,
116],
256],
13264:[[
108,
109],
256],
13265:[[
108,
110],
256],
13266:[[
108,
111,
103],
256],
13267:[[
108,
120],
256],
13268:[[
109,
98],
256],
13269:[[
109,
105,
108],
256],
13270:[[
109,
111,
108],
256],
13271:[[
80,
72],
256],
13272:[[
112,
46,
109,
46],
256],
13273:[[
80,
80,
77],
256],
13274:[[
80,
82],
256],
13275:[[
115,
114],
256],
13276:[[
83,
118],
256],
13277:[[
87,
98],
256],
13278:[[
86,
8725,
109],
256],
13279:[[
65,
8725,
109],
256],
13280:[[
49,
26085],
256],
13281:[[
50,
26085],
256],
13282:[[
51,
26085],
256],
13283:[[
52,
26085],
256],
13284:[[
53,
26085],
256],
13285:[[
54,
26085],
256],
13286:[[
55,
26085],
256],
13287:[[
56,
26085],
256],
13288:[[
57,
26085],
256],
13289:[[
49,
48,
26085],
256],
13290:[[
49,
49,
26085],
256],
13291:[[
49,
50,
26085],
256],
13292:[[
49,
51,
26085],
256],
13293:[[
49,
52,
26085],
256],
13294:[[
49,
53,
26085],
256],
13295:[[
49,
54,
26085],
256],
13296:[[
49,
55,
26085],
256],
13297:[[
49,
56,
26085],
256],
13298:[[
49,
57,
26085],
256],
13299:[[
50,
48,
26085],
256],
13300:[[
50,
49,
26085],
256],
13301:[[
50,
50,
26085],
256],
13302:[[
50,
51,
26085],
256],
13303:[[
50,
52,
26085],
256],
13304:[[
50,
53,
26085],
256],
13305:[[
50,
54,
26085],
256],
13306:[[
50,
55,
26085],
256],
13307:[[
50,
56,
26085],
256],
13308:[[
50,
57,
26085],
256],
13309:[[
51,
48,
26085],
256],
13310:[[
51,
49,
26085],
256],
13311:[[
103,
97,
108],
256]},
6833 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6834 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6835 42496:{
42607:[,
230],
42612:[,
230],
42613:[,
230],
42614:[,
230],
42615:[,
230],
42616:[,
230],
42617:[,
230],
42618:[,
230],
42619:[,
230],
42620:[,
230],
42621:[,
230],
42652:[[
1098],
256],
42653:[[
1100],
256],
42655:[,
230],
42736:[,
230],
42737:[,
230]},
6836 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6837 43008:{
43014:[,
9],
43204:[,
9],
43232:[,
230],
43233:[,
230],
43234:[,
230],
43235:[,
230],
43236:[,
230],
43237:[,
230],
43238:[,
230],
43239:[,
230],
43240:[,
230],
43241:[,
230],
43242:[,
230],
43243:[,
230],
43244:[,
230],
43245:[,
230],
43246:[,
230],
43247:[,
230],
43248:[,
230],
43249:[,
230]},
6838 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6839 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6840 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6841 48128:{
113822:[,
1]},
6842 53504:{
119134:[[
119127,
119141],
512],
119135:[[
119128,
119141],
512],
119136:[[
119135,
119150],
512],
119137:[[
119135,
119151],
512],
119138:[[
119135,
119152],
512],
119139:[[
119135,
119153],
512],
119140:[[
119135,
119154],
512],
119141:[,
216],
119142:[,
216],
119143:[,
1],
119144:[,
1],
119145:[,
1],
119149:[,
226],
119150:[,
216],
119151:[,
216],
119152:[,
216],
119153:[,
216],
119154:[,
216],
119163:[,
220],
119164:[,
220],
119165:[,
220],
119166:[,
220],
119167:[,
220],
119168:[,
220],
119169:[,
220],
119170:[,
220],
119173:[,
230],
119174:[,
230],
119175:[,
230],
119176:[,
230],
119177:[,
230],
119178:[,
220],
119179:[,
220],
119210:[,
230],
119211:[,
230],
119212:[,
230],
119213:[,
230],
119227:[[
119225,
119141],
512],
119228:[[
119226,
119141],
512],
119229:[[
119227,
119150],
512],
119230:[[
119228,
119150],
512],
119231:[[
119227,
119151],
512],
119232:[[
119228,
119151],
512]},
6843 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6844 54272:{
119808:[[
65],
256],
119809:[[
66],
256],
119810:[[
67],
256],
119811:[[
68],
256],
119812:[[
69],
256],
119813:[[
70],
256],
119814:[[
71],
256],
119815:[[
72],
256],
119816:[[
73],
256],
119817:[[
74],
256],
119818:[[
75],
256],
119819:[[
76],
256],
119820:[[
77],
256],
119821:[[
78],
256],
119822:[[
79],
256],
119823:[[
80],
256],
119824:[[
81],
256],
119825:[[
82],
256],
119826:[[
83],
256],
119827:[[
84],
256],
119828:[[
85],
256],
119829:[[
86],
256],
119830:[[
87],
256],
119831:[[
88],
256],
119832:[[
89],
256],
119833:[[
90],
256],
119834:[[
97],
256],
119835:[[
98],
256],
119836:[[
99],
256],
119837:[[
100],
256],
119838:[[
101],
256],
119839:[[
102],
256],
119840:[[
103],
256],
119841:[[
104],
256],
119842:[[
105],
256],
119843:[[
106],
256],
119844:[[
107],
256],
119845:[[
108],
256],
119846:[[
109],
256],
119847:[[
110],
256],
119848:[[
111],
256],
119849:[[
112],
256],
119850:[[
113],
256],
119851:[[
114],
256],
119852:[[
115],
256],
119853:[[
116],
256],
119854:[[
117],
256],
119855:[[
118],
256],
119856:[[
119],
256],
119857:[[
120],
256],
119858:[[
121],
256],
119859:[[
122],
256],
119860:[[
65],
256],
119861:[[
66],
256],
119862:[[
67],
256],
119863:[[
68],
256],
119864:[[
69],
256],
119865:[[
70],
256],
119866:[[
71],
256],
119867:[[
72],
256],
119868:[[
73],
256],
119869:[[
74],
256],
119870:[[
75],
256],
119871:[[
76],
256],
119872:[[
77],
256],
119873:[[
78],
256],
119874:[[
79],
256],
119875:[[
80],
256],
119876:[[
81],
256],
119877:[[
82],
256],
119878:[[
83],
256],
119879:[[
84],
256],
119880:[[
85],
256],
119881:[[
86],
256],
119882:[[
87],
256],
119883:[[
88],
256],
119884:[[
89],
256],
119885:[[
90],
256],
119886:[[
97],
256],
119887:[[
98],
256],
119888:[[
99],
256],
119889:[[
100],
256],
119890:[[
101],
256],
119891:[[
102],
256],
119892:[[
103],
256],
119894:[[
105],
256],
119895:[[
106],
256],
119896:[[
107],
256],
119897:[[
108],
256],
119898:[[
109],
256],
119899:[[
110],
256],
119900:[[
111],
256],
119901:[[
112],
256],
119902:[[
113],
256],
119903:[[
114],
256],
119904:[[
115],
256],
119905:[[
116],
256],
119906:[[
117],
256],
119907:[[
118],
256],
119908:[[
119],
256],
119909:[[
120],
256],
119910:[[
121],
256],
119911:[[
122],
256],
119912:[[
65],
256],
119913:[[
66],
256],
119914:[[
67],
256],
119915:[[
68],
256],
119916:[[
69],
256],
119917:[[
70],
256],
119918:[[
71],
256],
119919:[[
72],
256],
119920:[[
73],
256],
119921:[[
74],
256],
119922:[[
75],
256],
119923:[[
76],
256],
119924:[[
77],
256],
119925:[[
78],
256],
119926:[[
79],
256],
119927:[[
80],
256],
119928:[[
81],
256],
119929:[[
82],
256],
119930:[[
83],
256],
119931:[[
84],
256],
119932:[[
85],
256],
119933:[[
86],
256],
119934:[[
87],
256],
119935:[[
88],
256],
119936:[[
89],
256],
119937:[[
90],
256],
119938:[[
97],
256],
119939:[[
98],
256],
119940:[[
99],
256],
119941:[[
100],
256],
119942:[[
101],
256],
119943:[[
102],
256],
119944:[[
103],
256],
119945:[[
104],
256],
119946:[[
105],
256],
119947:[[
106],
256],
119948:[[
107],
256],
119949:[[
108],
256],
119950:[[
109],
256],
119951:[[
110],
256],
119952:[[
111],
256],
119953:[[
112],
256],
119954:[[
113],
256],
119955:[[
114],
256],
119956:[[
115],
256],
119957:[[
116],
256],
119958:[[
117],
256],
119959:[[
118],
256],
119960:[[
119],
256],
119961:[[
120],
256],
119962:[[
121],
256],
119963:[[
122],
256],
119964:[[
65],
256],
119966:[[
67],
256],
119967:[[
68],
256],
119970:[[
71],
256],
119973:[[
74],
256],
119974:[[
75],
256],
119977:[[
78],
256],
119978:[[
79],
256],
119979:[[
80],
256],
119980:[[
81],
256],
119982:[[
83],
256],
119983:[[
84],
256],
119984:[[
85],
256],
119985:[[
86],
256],
119986:[[
87],
256],
119987:[[
88],
256],
119988:[[
89],
256],
119989:[[
90],
256],
119990:[[
97],
256],
119991:[[
98],
256],
119992:[[
99],
256],
119993:[[
100],
256],
119995:[[
102],
256],
119997:[[
104],
256],
119998:[[
105],
256],
119999:[[
106],
256],
120000:[[
107],
256],
120001:[[
108],
256],
120002:[[
109],
256],
120003:[[
110],
256],
120005:[[
112],
256],
120006:[[
113],
256],
120007:[[
114],
256],
120008:[[
115],
256],
120009:[[
116],
256],
120010:[[
117],
256],
120011:[[
118],
256],
120012:[[
119],
256],
120013:[[
120],
256],
120014:[[
121],
256],
120015:[[
122],
256],
120016:[[
65],
256],
120017:[[
66],
256],
120018:[[
67],
256],
120019:[[
68],
256],
120020:[[
69],
256],
120021:[[
70],
256],
120022:[[
71],
256],
120023:[[
72],
256],
120024:[[
73],
256],
120025:[[
74],
256],
120026:[[
75],
256],
120027:[[
76],
256],
120028:[[
77],
256],
120029:[[
78],
256],
120030:[[
79],
256],
120031:[[
80],
256],
120032:[[
81],
256],
120033:[[
82],
256],
120034:[[
83],
256],
120035:[[
84],
256],
120036:[[
85],
256],
120037:[[
86],
256],
120038:[[
87],
256],
120039:[[
88],
256],
120040:[[
89],
256],
120041:[[
90],
256],
120042:[[
97],
256],
120043:[[
98],
256],
120044:[[
99],
256],
120045:[[
100],
256],
120046:[[
101],
256],
120047:[[
102],
256],
120048:[[
103],
256],
120049:[[
104],
256],
120050:[[
105],
256],
120051:[[
106],
256],
120052:[[
107],
256],
120053:[[
108],
256],
120054:[[
109],
256],
120055:[[
110],
256],
120056:[[
111],
256],
120057:[[
112],
256],
120058:[[
113],
256],
120059:[[
114],
256],
120060:[[
115],
256],
120061:[[
116],
256],
120062:[[
117],
256],
120063:[[
118],
256]},
6845 54528:{
120064:[[
119],
256],
120065:[[
120],
256],
120066:[[
121],
256],
120067:[[
122],
256],
120068:[[
65],
256],
120069:[[
66],
256],
120071:[[
68],
256],
120072:[[
69],
256],
120073:[[
70],
256],
120074:[[
71],
256],
120077:[[
74],
256],
120078:[[
75],
256],
120079:[[
76],
256],
120080:[[
77],
256],
120081:[[
78],
256],
120082:[[
79],
256],
120083:[[
80],
256],
120084:[[
81],
256],
120086:[[
83],
256],
120087:[[
84],
256],
120088:[[
85],
256],
120089:[[
86],
256],
120090:[[
87],
256],
120091:[[
88],
256],
120092:[[
89],
256],
120094:[[
97],
256],
120095:[[
98],
256],
120096:[[
99],
256],
120097:[[
100],
256],
120098:[[
101],
256],
120099:[[
102],
256],
120100:[[
103],
256],
120101:[[
104],
256],
120102:[[
105],
256],
120103:[[
106],
256],
120104:[[
107],
256],
120105:[[
108],
256],
120106:[[
109],
256],
120107:[[
110],
256],
120108:[[
111],
256],
120109:[[
112],
256],
120110:[[
113],
256],
120111:[[
114],
256],
120112:[[
115],
256],
120113:[[
116],
256],
120114:[[
117],
256],
120115:[[
118],
256],
120116:[[
119],
256],
120117:[[
120],
256],
120118:[[
121],
256],
120119:[[
122],
256],
120120:[[
65],
256],
120121:[[
66],
256],
120123:[[
68],
256],
120124:[[
69],
256],
120125:[[
70],
256],
120126:[[
71],
256],
120128:[[
73],
256],
120129:[[
74],
256],
120130:[[
75],
256],
120131:[[
76],
256],
120132:[[
77],
256],
120134:[[
79],
256],
120138:[[
83],
256],
120139:[[
84],
256],
120140:[[
85],
256],
120141:[[
86],
256],
120142:[[
87],
256],
120143:[[
88],
256],
120144:[[
89],
256],
120146:[[
97],
256],
120147:[[
98],
256],
120148:[[
99],
256],
120149:[[
100],
256],
120150:[[
101],
256],
120151:[[
102],
256],
120152:[[
103],
256],
120153:[[
104],
256],
120154:[[
105],
256],
120155:[[
106],
256],
120156:[[
107],
256],
120157:[[
108],
256],
120158:[[
109],
256],
120159:[[
110],
256],
120160:[[
111],
256],
120161:[[
112],
256],
120162:[[
113],
256],
120163:[[
114],
256],
120164:[[
115],
256],
120165:[[
116],
256],
120166:[[
117],
256],
120167:[[
118],
256],
120168:[[
119],
256],
120169:[[
120],
256],
120170:[[
121],
256],
120171:[[
122],
256],
120172:[[
65],
256],
120173:[[
66],
256],
120174:[[
67],
256],
120175:[[
68],
256],
120176:[[
69],
256],
120177:[[
70],
256],
120178:[[
71],
256],
120179:[[
72],
256],
120180:[[
73],
256],
120181:[[
74],
256],
120182:[[
75],
256],
120183:[[
76],
256],
120184:[[
77],
256],
120185:[[
78],
256],
120186:[[
79],
256],
120187:[[
80],
256],
120188:[[
81],
256],
120189:[[
82],
256],
120190:[[
83],
256],
120191:[[
84],
256],
120192:[[
85],
256],
120193:[[
86],
256],
120194:[[
87],
256],
120195:[[
88],
256],
120196:[[
89],
256],
120197:[[
90],
256],
120198:[[
97],
256],
120199:[[
98],
256],
120200:[[
99],
256],
120201:[[
100],
256],
120202:[[
101],
256],
120203:[[
102],
256],
120204:[[
103],
256],
120205:[[
104],
256],
120206:[[
105],
256],
120207:[[
106],
256],
120208:[[
107],
256],
120209:[[
108],
256],
120210:[[
109],
256],
120211:[[
110],
256],
120212:[[
111],
256],
120213:[[
112],
256],
120214:[[
113],
256],
120215:[[
114],
256],
120216:[[
115],
256],
120217:[[
116],
256],
120218:[[
117],
256],
120219:[[
118],
256],
120220:[[
119],
256],
120221:[[
120],
256],
120222:[[
121],
256],
120223:[[
122],
256],
120224:[[
65],
256],
120225:[[
66],
256],
120226:[[
67],
256],
120227:[[
68],
256],
120228:[[
69],
256],
120229:[[
70],
256],
120230:[[
71],
256],
120231:[[
72],
256],
120232:[[
73],
256],
120233:[[
74],
256],
120234:[[
75],
256],
120235:[[
76],
256],
120236:[[
77],
256],
120237:[[
78],
256],
120238:[[
79],
256],
120239:[[
80],
256],
120240:[[
81],
256],
120241:[[
82],
256],
120242:[[
83],
256],
120243:[[
84],
256],
120244:[[
85],
256],
120245:[[
86],
256],
120246:[[
87],
256],
120247:[[
88],
256],
120248:[[
89],
256],
120249:[[
90],
256],
120250:[[
97],
256],
120251:[[
98],
256],
120252:[[
99],
256],
120253:[[
100],
256],
120254:[[
101],
256],
120255:[[
102],
256],
120256:[[
103],
256],
120257:[[
104],
256],
120258:[[
105],
256],
120259:[[
106],
256],
120260:[[
107],
256],
120261:[[
108],
256],
120262:[[
109],
256],
120263:[[
110],
256],
120264:[[
111],
256],
120265:[[
112],
256],
120266:[[
113],
256],
120267:[[
114],
256],
120268:[[
115],
256],
120269:[[
116],
256],
120270:[[
117],
256],
120271:[[
118],
256],
120272:[[
119],
256],
120273:[[
120],
256],
120274:[[
121],
256],
120275:[[
122],
256],
120276:[[
65],
256],
120277:[[
66],
256],
120278:[[
67],
256],
120279:[[
68],
256],
120280:[[
69],
256],
120281:[[
70],
256],
120282:[[
71],
256],
120283:[[
72],
256],
120284:[[
73],
256],
120285:[[
74],
256],
120286:[[
75],
256],
120287:[[
76],
256],
120288:[[
77],
256],
120289:[[
78],
256],
120290:[[
79],
256],
120291:[[
80],
256],
120292:[[
81],
256],
120293:[[
82],
256],
120294:[[
83],
256],
120295:[[
84],
256],
120296:[[
85],
256],
120297:[[
86],
256],
120298:[[
87],
256],
120299:[[
88],
256],
120300:[[
89],
256],
120301:[[
90],
256],
120302:[[
97],
256],
120303:[[
98],
256],
120304:[[
99],
256],
120305:[[
100],
256],
120306:[[
101],
256],
120307:[[
102],
256],
120308:[[
103],
256],
120309:[[
104],
256],
120310:[[
105],
256],
120311:[[
106],
256],
120312:[[
107],
256],
120313:[[
108],
256],
120314:[[
109],
256],
120315:[[
110],
256],
120316:[[
111],
256],
120317:[[
112],
256],
120318:[[
113],
256],
120319:[[
114],
256]},
6846 54784:{
120320:[[
115],
256],
120321:[[
116],
256],
120322:[[
117],
256],
120323:[[
118],
256],
120324:[[
119],
256],
120325:[[
120],
256],
120326:[[
121],
256],
120327:[[
122],
256],
120328:[[
65],
256],
120329:[[
66],
256],
120330:[[
67],
256],
120331:[[
68],
256],
120332:[[
69],
256],
120333:[[
70],
256],
120334:[[
71],
256],
120335:[[
72],
256],
120336:[[
73],
256],
120337:[[
74],
256],
120338:[[
75],
256],
120339:[[
76],
256],
120340:[[
77],
256],
120341:[[
78],
256],
120342:[[
79],
256],
120343:[[
80],
256],
120344:[[
81],
256],
120345:[[
82],
256],
120346:[[
83],
256],
120347:[[
84],
256],
120348:[[
85],
256],
120349:[[
86],
256],
120350:[[
87],
256],
120351:[[
88],
256],
120352:[[
89],
256],
120353:[[
90],
256],
120354:[[
97],
256],
120355:[[
98],
256],
120356:[[
99],
256],
120357:[[
100],
256],
120358:[[
101],
256],
120359:[[
102],
256],
120360:[[
103],
256],
120361:[[
104],
256],
120362:[[
105],
256],
120363:[[
106],
256],
120364:[[
107],
256],
120365:[[
108],
256],
120366:[[
109],
256],
120367:[[
110],
256],
120368:[[
111],
256],
120369:[[
112],
256],
120370:[[
113],
256],
120371:[[
114],
256],
120372:[[
115],
256],
120373:[[
116],
256],
120374:[[
117],
256],
120375:[[
118],
256],
120376:[[
119],
256],
120377:[[
120],
256],
120378:[[
121],
256],
120379:[[
122],
256],
120380:[[
65],
256],
120381:[[
66],
256],
120382:[[
67],
256],
120383:[[
68],
256],
120384:[[
69],
256],
120385:[[
70],
256],
120386:[[
71],
256],
120387:[[
72],
256],
120388:[[
73],
256],
120389:[[
74],
256],
120390:[[
75],
256],
120391:[[
76],
256],
120392:[[
77],
256],
120393:[[
78],
256],
120394:[[
79],
256],
120395:[[
80],
256],
120396:[[
81],
256],
120397:[[
82],
256],
120398:[[
83],
256],
120399:[[
84],
256],
120400:[[
85],
256],
120401:[[
86],
256],
120402:[[
87],
256],
120403:[[
88],
256],
120404:[[
89],
256],
120405:[[
90],
256],
120406:[[
97],
256],
120407:[[
98],
256],
120408:[[
99],
256],
120409:[[
100],
256],
120410:[[
101],
256],
120411:[[
102],
256],
120412:[[
103],
256],
120413:[[
104],
256],
120414:[[
105],
256],
120415:[[
106],
256],
120416:[[
107],
256],
120417:[[
108],
256],
120418:[[
109],
256],
120419:[[
110],
256],
120420:[[
111],
256],
120421:[[
112],
256],
120422:[[
113],
256],
120423:[[
114],
256],
120424:[[
115],
256],
120425:[[
116],
256],
120426:[[
117],
256],
120427:[[
118],
256],
120428:[[
119],
256],
120429:[[
120],
256],
120430:[[
121],
256],
120431:[[
122],
256],
120432:[[
65],
256],
120433:[[
66],
256],
120434:[[
67],
256],
120435:[[
68],
256],
120436:[[
69],
256],
120437:[[
70],
256],
120438:[[
71],
256],
120439:[[
72],
256],
120440:[[
73],
256],
120441:[[
74],
256],
120442:[[
75],
256],
120443:[[
76],
256],
120444:[[
77],
256],
120445:[[
78],
256],
120446:[[
79],
256],
120447:[[
80],
256],
120448:[[
81],
256],
120449:[[
82],
256],
120450:[[
83],
256],
120451:[[
84],
256],
120452:[[
85],
256],
120453:[[
86],
256],
120454:[[
87],
256],
120455:[[
88],
256],
120456:[[
89],
256],
120457:[[
90],
256],
120458:[[
97],
256],
120459:[[
98],
256],
120460:[[
99],
256],
120461:[[
100],
256],
120462:[[
101],
256],
120463:[[
102],
256],
120464:[[
103],
256],
120465:[[
104],
256],
120466:[[
105],
256],
120467:[[
106],
256],
120468:[[
107],
256],
120469:[[
108],
256],
120470:[[
109],
256],
120471:[[
110],
256],
120472:[[
111],
256],
120473:[[
112],
256],
120474:[[
113],
256],
120475:[[
114],
256],
120476:[[
115],
256],
120477:[[
116],
256],
120478:[[
117],
256],
120479:[[
118],
256],
120480:[[
119],
256],
120481:[[
120],
256],
120482:[[
121],
256],
120483:[[
122],
256],
120484:[[
305],
256],
120485:[[
567],
256],
120488:[[
913],
256],
120489:[[
914],
256],
120490:[[
915],
256],
120491:[[
916],
256],
120492:[[
917],
256],
120493:[[
918],
256],
120494:[[
919],
256],
120495:[[
920],
256],
120496:[[
921],
256],
120497:[[
922],
256],
120498:[[
923],
256],
120499:[[
924],
256],
120500:[[
925],
256],
120501:[[
926],
256],
120502:[[
927],
256],
120503:[[
928],
256],
120504:[[
929],
256],
120505:[[
1012],
256],
120506:[[
931],
256],
120507:[[
932],
256],
120508:[[
933],
256],
120509:[[
934],
256],
120510:[[
935],
256],
120511:[[
936],
256],
120512:[[
937],
256],
120513:[[
8711],
256],
120514:[[
945],
256],
120515:[[
946],
256],
120516:[[
947],
256],
120517:[[
948],
256],
120518:[[
949],
256],
120519:[[
950],
256],
120520:[[
951],
256],
120521:[[
952],
256],
120522:[[
953],
256],
120523:[[
954],
256],
120524:[[
955],
256],
120525:[[
956],
256],
120526:[[
957],
256],
120527:[[
958],
256],
120528:[[
959],
256],
120529:[[
960],
256],
120530:[[
961],
256],
120531:[[
962],
256],
120532:[[
963],
256],
120533:[[
964],
256],
120534:[[
965],
256],
120535:[[
966],
256],
120536:[[
967],
256],
120537:[[
968],
256],
120538:[[
969],
256],
120539:[[
8706],
256],
120540:[[
1013],
256],
120541:[[
977],
256],
120542:[[
1008],
256],
120543:[[
981],
256],
120544:[[
1009],
256],
120545:[[
982],
256],
120546:[[
913],
256],
120547:[[
914],
256],
120548:[[
915],
256],
120549:[[
916],
256],
120550:[[
917],
256],
120551:[[
918],
256],
120552:[[
919],
256],
120553:[[
920],
256],
120554:[[
921],
256],
120555:[[
922],
256],
120556:[[
923],
256],
120557:[[
924],
256],
120558:[[
925],
256],
120559:[[
926],
256],
120560:[[
927],
256],
120561:[[
928],
256],
120562:[[
929],
256],
120563:[[
1012],
256],
120564:[[
931],
256],
120565:[[
932],
256],
120566:[[
933],
256],
120567:[[
934],
256],
120568:[[
935],
256],
120569:[[
936],
256],
120570:[[
937],
256],
120571:[[
8711],
256],
120572:[[
945],
256],
120573:[[
946],
256],
120574:[[
947],
256],
120575:[[
948],
256]},
6847 55040:{
120576:[[
949],
256],
120577:[[
950],
256],
120578:[[
951],
256],
120579:[[
952],
256],
120580:[[
953],
256],
120581:[[
954],
256],
120582:[[
955],
256],
120583:[[
956],
256],
120584:[[
957],
256],
120585:[[
958],
256],
120586:[[
959],
256],
120587:[[
960],
256],
120588:[[
961],
256],
120589:[[
962],
256],
120590:[[
963],
256],
120591:[[
964],
256],
120592:[[
965],
256],
120593:[[
966],
256],
120594:[[
967],
256],
120595:[[
968],
256],
120596:[[
969],
256],
120597:[[
8706],
256],
120598:[[
1013],
256],
120599:[[
977],
256],
120600:[[
1008],
256],
120601:[[
981],
256],
120602:[[
1009],
256],
120603:[[
982],
256],
120604:[[
913],
256],
120605:[[
914],
256],
120606:[[
915],
256],
120607:[[
916],
256],
120608:[[
917],
256],
120609:[[
918],
256],
120610:[[
919],
256],
120611:[[
920],
256],
120612:[[
921],
256],
120613:[[
922],
256],
120614:[[
923],
256],
120615:[[
924],
256],
120616:[[
925],
256],
120617:[[
926],
256],
120618:[[
927],
256],
120619:[[
928],
256],
120620:[[
929],
256],
120621:[[
1012],
256],
120622:[[
931],
256],
120623:[[
932],
256],
120624:[[
933],
256],
120625:[[
934],
256],
120626:[[
935],
256],
120627:[[
936],
256],
120628:[[
937],
256],
120629:[[
8711],
256],
120630:[[
945],
256],
120631:[[
946],
256],
120632:[[
947],
256],
120633:[[
948],
256],
120634:[[
949],
256],
120635:[[
950],
256],
120636:[[
951],
256],
120637:[[
952],
256],
120638:[[
953],
256],
120639:[[
954],
256],
120640:[[
955],
256],
120641:[[
956],
256],
120642:[[
957],
256],
120643:[[
958],
256],
120644:[[
959],
256],
120645:[[
960],
256],
120646:[[
961],
256],
120647:[[
962],
256],
120648:[[
963],
256],
120649:[[
964],
256],
120650:[[
965],
256],
120651:[[
966],
256],
120652:[[
967],
256],
120653:[[
968],
256],
120654:[[
969],
256],
120655:[[
8706],
256],
120656:[[
1013],
256],
120657:[[
977],
256],
120658:[[
1008],
256],
120659:[[
981],
256],
120660:[[
1009],
256],
120661:[[
982],
256],
120662:[[
913],
256],
120663:[[
914],
256],
120664:[[
915],
256],
120665:[[
916],
256],
120666:[[
917],
256],
120667:[[
918],
256],
120668:[[
919],
256],
120669:[[
920],
256],
120670:[[
921],
256],
120671:[[
922],
256],
120672:[[
923],
256],
120673:[[
924],
256],
120674:[[
925],
256],
120675:[[
926],
256],
120676:[[
927],
256],
120677:[[
928],
256],
120678:[[
929],
256],
120679:[[
1012],
256],
120680:[[
931],
256],
120681:[[
932],
256],
120682:[[
933],
256],
120683:[[
934],
256],
120684:[[
935],
256],
120685:[[
936],
256],
120686:[[
937],
256],
120687:[[
8711],
256],
120688:[[
945],
256],
120689:[[
946],
256],
120690:[[
947],
256],
120691:[[
948],
256],
120692:[[
949],
256],
120693:[[
950],
256],
120694:[[
951],
256],
120695:[[
952],
256],
120696:[[
953],
256],
120697:[[
954],
256],
120698:[[
955],
256],
120699:[[
956],
256],
120700:[[
957],
256],
120701:[[
958],
256],
120702:[[
959],
256],
120703:[[
960],
256],
120704:[[
961],
256],
120705:[[
962],
256],
120706:[[
963],
256],
120707:[[
964],
256],
120708:[[
965],
256],
120709:[[
966],
256],
120710:[[
967],
256],
120711:[[
968],
256],
120712:[[
969],
256],
120713:[[
8706],
256],
120714:[[
1013],
256],
120715:[[
977],
256],
120716:[[
1008],
256],
120717:[[
981],
256],
120718:[[
1009],
256],
120719:[[
982],
256],
120720:[[
913],
256],
120721:[[
914],
256],
120722:[[
915],
256],
120723:[[
916],
256],
120724:[[
917],
256],
120725:[[
918],
256],
120726:[[
919],
256],
120727:[[
920],
256],
120728:[[
921],
256],
120729:[[
922],
256],
120730:[[
923],
256],
120731:[[
924],
256],
120732:[[
925],
256],
120733:[[
926],
256],
120734:[[
927],
256],
120735:[[
928],
256],
120736:[[
929],
256],
120737:[[
1012],
256],
120738:[[
931],
256],
120739:[[
932],
256],
120740:[[
933],
256],
120741:[[
934],
256],
120742:[[
935],
256],
120743:[[
936],
256],
120744:[[
937],
256],
120745:[[
8711],
256],
120746:[[
945],
256],
120747:[[
946],
256],
120748:[[
947],
256],
120749:[[
948],
256],
120750:[[
949],
256],
120751:[[
950],
256],
120752:[[
951],
256],
120753:[[
952],
256],
120754:[[
953],
256],
120755:[[
954],
256],
120756:[[
955],
256],
120757:[[
956],
256],
120758:[[
957],
256],
120759:[[
958],
256],
120760:[[
959],
256],
120761:[[
960],
256],
120762:[[
961],
256],
120763:[[
962],
256],
120764:[[
963],
256],
120765:[[
964],
256],
120766:[[
965],
256],
120767:[[
966],
256],
120768:[[
967],
256],
120769:[[
968],
256],
120770:[[
969],
256],
120771:[[
8706],
256],
120772:[[
1013],
256],
120773:[[
977],
256],
120774:[[
1008],
256],
120775:[[
981],
256],
120776:[[
1009],
256],
120777:[[
982],
256],
120778:[[
988],
256],
120779:[[
989],
256],
120782:[[
48],
256],
120783:[[
49],
256],
120784:[[
50],
256],
120785:[[
51],
256],
120786:[[
52],
256],
120787:[[
53],
256],
120788:[[
54],
256],
120789:[[
55],
256],
120790:[[
56],
256],
120791:[[
57],
256],
120792:[[
48],
256],
120793:[[
49],
256],
120794:[[
50],
256],
120795:[[
51],
256],
120796:[[
52],
256],
120797:[[
53],
256],
120798:[[
54],
256],
120799:[[
55],
256],
120800:[[
56],
256],
120801:[[
57],
256],
120802:[[
48],
256],
120803:[[
49],
256],
120804:[[
50],
256],
120805:[[
51],
256],
120806:[[
52],
256],
120807:[[
53],
256],
120808:[[
54],
256],
120809:[[
55],
256],
120810:[[
56],
256],
120811:[[
57],
256],
120812:[[
48],
256],
120813:[[
49],
256],
120814:[[
50],
256],
120815:[[
51],
256],
120816:[[
52],
256],
120817:[[
53],
256],
120818:[[
54],
256],
120819:[[
55],
256],
120820:[[
56],
256],
120821:[[
57],
256],
120822:[[
48],
256],
120823:[[
49],
256],
120824:[[
50],
256],
120825:[[
51],
256],
120826:[[
52],
256],
120827:[[
53],
256],
120828:[[
54],
256],
120829:[[
55],
256],
120830:[[
56],
256],
120831:[[
57],
256]},
6848 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6849 60928:{
126464:[[
1575],
256],
126465:[[
1576],
256],
126466:[[
1580],
256],
126467:[[
1583],
256],
126469:[[
1608],
256],
126470:[[
1586],
256],
126471:[[
1581],
256],
126472:[[
1591],
256],
126473:[[
1610],
256],
126474:[[
1603],
256],
126475:[[
1604],
256],
126476:[[
1605],
256],
126477:[[
1606],
256],
126478:[[
1587],
256],
126479:[[
1593],
256],
126480:[[
1601],
256],
126481:[[
1589],
256],
126482:[[
1602],
256],
126483:[[
1585],
256],
126484:[[
1588],
256],
126485:[[
1578],
256],
126486:[[
1579],
256],
126487:[[
1582],
256],
126488:[[
1584],
256],
126489:[[
1590],
256],
126490:[[
1592],
256],
126491:[[
1594],
256],
126492:[[
1646],
256],
126493:[[
1722],
256],
126494:[[
1697],
256],
126495:[[
1647],
256],
126497:[[
1576],
256],
126498:[[
1580],
256],
126500:[[
1607],
256],
126503:[[
1581],
256],
126505:[[
1610],
256],
126506:[[
1603],
256],
126507:[[
1604],
256],
126508:[[
1605],
256],
126509:[[
1606],
256],
126510:[[
1587],
256],
126511:[[
1593],
256],
126512:[[
1601],
256],
126513:[[
1589],
256],
126514:[[
1602],
256],
126516:[[
1588],
256],
126517:[[
1578],
256],
126518:[[
1579],
256],
126519:[[
1582],
256],
126521:[[
1590],
256],
126523:[[
1594],
256],
126530:[[
1580],
256],
126535:[[
1581],
256],
126537:[[
1610],
256],
126539:[[
1604],
256],
126541:[[
1606],
256],
126542:[[
1587],
256],
126543:[[
1593],
256],
126545:[[
1589],
256],
126546:[[
1602],
256],
126548:[[
1588],
256],
126551:[[
1582],
256],
126553:[[
1590],
256],
126555:[[
1594],
256],
126557:[[
1722],
256],
126559:[[
1647],
256],
126561:[[
1576],
256],
126562:[[
1580],
256],
126564:[[
1607],
256],
126567:[[
1581],
256],
126568:[[
1591],
256],
126569:[[
1610],
256],
126570:[[
1603],
256],
126572:[[
1605],
256],
126573:[[
1606],
256],
126574:[[
1587],
256],
126575:[[
1593],
256],
126576:[[
1601],
256],
126577:[[
1589],
256],
126578:[[
1602],
256],
126580:[[
1588],
256],
126581:[[
1578],
256],
126582:[[
1579],
256],
126583:[[
1582],
256],
126585:[[
1590],
256],
126586:[[
1592],
256],
126587:[[
1594],
256],
126588:[[
1646],
256],
126590:[[
1697],
256],
126592:[[
1575],
256],
126593:[[
1576],
256],
126594:[[
1580],
256],
126595:[[
1583],
256],
126596:[[
1607],
256],
126597:[[
1608],
256],
126598:[[
1586],
256],
126599:[[
1581],
256],
126600:[[
1591],
256],
126601:[[
1610],
256],
126603:[[
1604],
256],
126604:[[
1605],
256],
126605:[[
1606],
256],
126606:[[
1587],
256],
126607:[[
1593],
256],
126608:[[
1601],
256],
126609:[[
1589],
256],
126610:[[
1602],
256],
126611:[[
1585],
256],
126612:[[
1588],
256],
126613:[[
1578],
256],
126614:[[
1579],
256],
126615:[[
1582],
256],
126616:[[
1584],
256],
126617:[[
1590],
256],
126618:[[
1592],
256],
126619:[[
1594],
256],
126625:[[
1576],
256],
126626:[[
1580],
256],
126627:[[
1583],
256],
126629:[[
1608],
256],
126630:[[
1586],
256],
126631:[[
1581],
256],
126632:[[
1591],
256],
126633:[[
1610],
256],
126635:[[
1604],
256],
126636:[[
1605],
256],
126637:[[
1606],
256],
126638:[[
1587],
256],
126639:[[
1593],
256],
126640:[[
1601],
256],
126641:[[
1589],
256],
126642:[[
1602],
256],
126643:[[
1585],
256],
126644:[[
1588],
256],
126645:[[
1578],
256],
126646:[[
1579],
256],
126647:[[
1582],
256],
126648:[[
1584],
256],
126649:[[
1590],
256],
126650:[[
1592],
256],
126651:[[
1594],
256]},
6850 61696:{
127232:[[
48,
46],
256],
127233:[[
48,
44],
256],
127234:[[
49,
44],
256],
127235:[[
50,
44],
256],
127236:[[
51,
44],
256],
127237:[[
52,
44],
256],
127238:[[
53,
44],
256],
127239:[[
54,
44],
256],
127240:[[
55,
44],
256],
127241:[[
56,
44],
256],
127242:[[
57,
44],
256],
127248:[[
40,
65,
41],
256],
127249:[[
40,
66,
41],
256],
127250:[[
40,
67,
41],
256],
127251:[[
40,
68,
41],
256],
127252:[[
40,
69,
41],
256],
127253:[[
40,
70,
41],
256],
127254:[[
40,
71,
41],
256],
127255:[[
40,
72,
41],
256],
127256:[[
40,
73,
41],
256],
127257:[[
40,
74,
41],
256],
127258:[[
40,
75,
41],
256],
127259:[[
40,
76,
41],
256],
127260:[[
40,
77,
41],
256],
127261:[[
40,
78,
41],
256],
127262:[[
40,
79,
41],
256],
127263:[[
40,
80,
41],
256],
127264:[[
40,
81,
41],
256],
127265:[[
40,
82,
41],
256],
127266:[[
40,
83,
41],
256],
127267:[[
40,
84,
41],
256],
127268:[[
40,
85,
41],
256],
127269:[[
40,
86,
41],
256],
127270:[[
40,
87,
41],
256],
127271:[[
40,
88,
41],
256],
127272:[[
40,
89,
41],
256],
127273:[[
40,
90,
41],
256],
127274:[[
12308,
83,
12309],
256],
127275:[[
67],
256],
127276:[[
82],
256],
127277:[[
67,
68],
256],
127278:[[
87,
90],
256],
127280:[[
65],
256],
127281:[[
66],
256],
127282:[[
67],
256],
127283:[[
68],
256],
127284:[[
69],
256],
127285:[[
70],
256],
127286:[[
71],
256],
127287:[[
72],
256],
127288:[[
73],
256],
127289:[[
74],
256],
127290:[[
75],
256],
127291:[[
76],
256],
127292:[[
77],
256],
127293:[[
78],
256],
127294:[[
79],
256],
127295:[[
80],
256],
127296:[[
81],
256],
127297:[[
82],
256],
127298:[[
83],
256],
127299:[[
84],
256],
127300:[[
85],
256],
127301:[[
86],
256],
127302:[[
87],
256],
127303:[[
88],
256],
127304:[[
89],
256],
127305:[[
90],
256],
127306:[[
72,
86],
256],
127307:[[
77,
86],
256],
127308:[[
83,
68],
256],
127309:[[
83,
83],
256],
127310:[[
80,
80,
86],
256],
127311:[[
87,
67],
256],
127338:[[
77,
67],
256],
127339:[[
77,
68],
256],
127376:[[
68,
74],
256]},
6851 61952:{
127488:[[
12411,
12363],
256],
127489:[[
12467,
12467],
256],
127490:[[
12469],
256],
127504:[[
25163],
256],
127505:[[
23383],
256],
127506:[[
21452],
256],
127507:[[
12487],
256],
127508:[[
20108],
256],
127509:[[
22810],
256],
127510:[[
35299],
256],
127511:[[
22825],
256],
127512:[[
20132],
256],
127513:[[
26144],
256],
127514:[[
28961],
256],
127515:[[
26009],
256],
127516:[[
21069],
256],
127517:[[
24460],
256],
127518:[[
20877],
256],
127519:[[
26032],
256],
127520:[[
21021],
256],
127521:[[
32066],
256],
127522:[[
29983],
256],
127523:[[
36009],
256],
127524:[[
22768],
256],
127525:[[
21561],
256],
127526:[[
28436],
256],
127527:[[
25237],
256],
127528:[[
25429],
256],
127529:[[
19968],
256],
127530:[[
19977],
256],
127531:[[
36938],
256],
127532:[[
24038],
256],
127533:[[
20013],
256],
127534:[[
21491],
256],
127535:[[
25351],
256],
127536:[[
36208],
256],
127537:[[
25171],
256],
127538:[[
31105],
256],
127539:[[
31354],
256],
127540:[[
21512],
256],
127541:[[
28288],
256],
127542:[[
26377],
256],
127543:[[
26376],
256],
127544:[[
30003],
256],
127545:[[
21106],
256],
127546:[[
21942],
256],
127552:[[
12308,
26412,
12309],
256],
127553:[[
12308,
19977,
12309],
256],
127554:[[
12308,
20108,
12309],
256],
127555:[[
12308,
23433,
12309],
256],
127556:[[
12308,
28857,
12309],
256],
127557:[[
12308,
25171,
12309],
256],
127558:[[
12308,
30423,
12309],
256],
127559:[[
12308,
21213,
12309],
256],
127560:[[
12308,
25943,
12309],
256],
127568:[[
24471],
256],
127569:[[
21487],
256]},
6852 63488:{
194560:[[
20029]],
194561:[[
20024]],
194562:[[
20033]],
194563:[[
131362]],
194564:[[
20320]],
194565:[[
20398]],
194566:[[
20411]],
194567:[[
20482]],
194568:[[
20602]],
194569:[[
20633]],
194570:[[
20711]],
194571:[[
20687]],
194572:[[
13470]],
194573:[[
132666]],
194574:[[
20813]],
194575:[[
20820]],
194576:[[
20836]],
194577:[[
20855]],
194578:[[
132380]],
194579:[[
13497]],
194580:[[
20839]],
194581:[[
20877]],
194582:[[
132427]],
194583:[[
20887]],
194584:[[
20900]],
194585:[[
20172]],
194586:[[
20908]],
194587:[[
20917]],
194588:[[
168415]],
194589:[[
20981]],
194590:[[
20995]],
194591:[[
13535]],
194592:[[
21051]],
194593:[[
21062]],
194594:[[
21106]],
194595:[[
21111]],
194596:[[
13589]],
194597:[[
21191]],
194598:[[
21193]],
194599:[[
21220]],
194600:[[
21242]],
194601:[[
21253]],
194602:[[
21254]],
194603:[[
21271]],
194604:[[
21321]],
194605:[[
21329]],
194606:[[
21338]],
194607:[[
21363]],
194608:[[
21373]],
194609:[[
21375]],
194610:[[
21375]],
194611:[[
21375]],
194612:[[
133676]],
194613:[[
28784]],
194614:[[
21450]],
194615:[[
21471]],
194616:[[
133987]],
194617:[[
21483]],
194618:[[
21489]],
194619:[[
21510]],
194620:[[
21662]],
194621:[[
21560]],
194622:[[
21576]],
194623:[[
21608]],
194624:[[
21666]],
194625:[[
21750]],
194626:[[
21776]],
194627:[[
21843]],
194628:[[
21859]],
194629:[[
21892]],
194630:[[
21892]],
194631:[[
21913]],
194632:[[
21931]],
194633:[[
21939]],
194634:[[
21954]],
194635:[[
22294]],
194636:[[
22022]],
194637:[[
22295]],
194638:[[
22097]],
194639:[[
22132]],
194640:[[
20999]],
194641:[[
22766]],
194642:[[
22478]],
194643:[[
22516]],
194644:[[
22541]],
194645:[[
22411]],
194646:[[
22578]],
194647:[[
22577]],
194648:[[
22700]],
194649:[[
136420]],
194650:[[
22770]],
194651:[[
22775]],
194652:[[
22790]],
194653:[[
22810]],
194654:[[
22818]],
194655:[[
22882]],
194656:[[
136872]],
194657:[[
136938]],
194658:[[
23020]],
194659:[[
23067]],
194660:[[
23079]],
194661:[[
23000]],
194662:[[
23142]],
194663:[[
14062]],
194664:[[
14076]],
194665:[[
23304]],
194666:[[
23358]],
194667:[[
23358]],
194668:[[
137672]],
194669:[[
23491]],
194670:[[
23512]],
194671:[[
23527]],
194672:[[
23539]],
194673:[[
138008]],
194674:[[
23551]],
194675:[[
23558]],
194676:[[
24403]],
194677:[[
23586]],
194678:[[
14209]],
194679:[[
23648]],
194680:[[
23662]],
194681:[[
23744]],
194682:[[
23693]],
194683:[[
138724]],
194684:[[
23875]],
194685:[[
138726]],
194686:[[
23918]],
194687:[[
23915]],
194688:[[
23932]],
194689:[[
24033]],
194690:[[
24034]],
194691:[[
14383]],
194692:[[
24061]],
194693:[[
24104]],
194694:[[
24125]],
194695:[[
24169]],
194696:[[
14434]],
194697:[[
139651]],
194698:[[
14460]],
194699:[[
24240]],
194700:[[
24243]],
194701:[[
24246]],
194702:[[
24266]],
194703:[[
172946]],
194704:[[
24318]],
194705:[[
140081]],
194706:[[
140081]],
194707:[[
33281]],
194708:[[
24354]],
194709:[[
24354]],
194710:[[
14535]],
194711:[[
144056]],
194712:[[
156122]],
194713:[[
24418]],
194714:[[
24427]],
194715:[[
14563]],
194716:[[
24474]],
194717:[[
24525]],
194718:[[
24535]],
194719:[[
24569]],
194720:[[
24705]],
194721:[[
14650]],
194722:[[
14620]],
194723:[[
24724]],
194724:[[
141012]],
194725:[[
24775]],
194726:[[
24904]],
194727:[[
24908]],
194728:[[
24910]],
194729:[[
24908]],
194730:[[
24954]],
194731:[[
24974]],
194732:[[
25010]],
194733:[[
24996]],
194734:[[
25007]],
194735:[[
25054]],
194736:[[
25074]],
194737:[[
25078]],
194738:[[
25104]],
194739:[[
25115]],
194740:[[
25181]],
194741:[[
25265]],
194742:[[
25300]],
194743:[[
25424]],
194744:[[
142092]],
194745:[[
25405]],
194746:[[
25340]],
194747:[[
25448]],
194748:[[
25475]],
194749:[[
25572]],
194750:[[
142321]],
194751:[[
25634]],
194752:[[
25541]],
194753:[[
25513]],
194754:[[
14894]],
194755:[[
25705]],
194756:[[
25726]],
194757:[[
25757]],
194758:[[
25719]],
194759:[[
14956]],
194760:[[
25935]],
194761:[[
25964]],
194762:[[
143370]],
194763:[[
26083]],
194764:[[
26360]],
194765:[[
26185]],
194766:[[
15129]],
194767:[[
26257]],
194768:[[
15112]],
194769:[[
15076]],
194770:[[
20882]],
194771:[[
20885]],
194772:[[
26368]],
194773:[[
26268]],
194774:[[
32941]],
194775:[[
17369]],
194776:[[
26391]],
194777:[[
26395]],
194778:[[
26401]],
194779:[[
26462]],
194780:[[
26451]],
194781:[[
144323]],
194782:[[
15177]],
194783:[[
26618]],
194784:[[
26501]],
194785:[[
26706]],
194786:[[
26757]],
194787:[[
144493]],
194788:[[
26766]],
194789:[[
26655]],
194790:[[
26900]],
194791:[[
15261]],
194792:[[
26946]],
194793:[[
27043]],
194794:[[
27114]],
194795:[[
27304]],
194796:[[
145059]],
194797:[[
27355]],
194798:[[
15384]],
194799:[[
27425]],
194800:[[
145575]],
194801:[[
27476]],
194802:[[
15438]],
194803:[[
27506]],
194804:[[
27551]],
194805:[[
27578]],
194806:[[
27579]],
194807:[[
146061]],
194808:[[
138507]],
194809:[[
146170]],
194810:[[
27726]],
194811:[[
146620]],
194812:[[
27839]],
194813:[[
27853]],
194814:[[
27751]],
194815:[[
27926]]},
6853 63744:{
63744:[[
35912]],
63745:[[
26356]],
63746:[[
36554]],
63747:[[
36040]],
63748:[[
28369]],
63749:[[
20018]],
63750:[[
21477]],
63751:[[
40860]],
63752:[[
40860]],
63753:[[
22865]],
63754:[[
37329]],
63755:[[
21895]],
63756:[[
22856]],
63757:[[
25078]],
63758:[[
30313]],
63759:[[
32645]],
63760:[[
34367]],
63761:[[
34746]],
63762:[[
35064]],
63763:[[
37007]],
63764:[[
27138]],
63765:[[
27931]],
63766:[[
28889]],
63767:[[
29662]],
63768:[[
33853]],
63769:[[
37226]],
63770:[[
39409]],
63771:[[
20098]],
63772:[[
21365]],
63773:[[
27396]],
63774:[[
29211]],
63775:[[
34349]],
63776:[[
40478]],
63777:[[
23888]],
63778:[[
28651]],
63779:[[
34253]],
63780:[[
35172]],
63781:[[
25289]],
63782:[[
33240]],
63783:[[
34847]],
63784:[[
24266]],
63785:[[
26391]],
63786:[[
28010]],
63787:[[
29436]],
63788:[[
37070]],
63789:[[
20358]],
63790:[[
20919]],
63791:[[
21214]],
63792:[[
25796]],
63793:[[
27347]],
63794:[[
29200]],
63795:[[
30439]],
63796:[[
32769]],
63797:[[
34310]],
63798:[[
34396]],
63799:[[
36335]],
63800:[[
38706]],
63801:[[
39791]],
63802:[[
40442]],
63803:[[
30860]],
63804:[[
31103]],
63805:[[
32160]],
63806:[[
33737]],
63807:[[
37636]],
63808:[[
40575]],
63809:[[
35542]],
63810:[[
22751]],
63811:[[
24324]],
63812:[[
31840]],
63813:[[
32894]],
63814:[[
29282]],
63815:[[
30922]],
63816:[[
36034]],
63817:[[
38647]],
63818:[[
22744]],
63819:[[
23650]],
63820:[[
27155]],
63821:[[
28122]],
63822:[[
28431]],
63823:[[
32047]],
63824:[[
32311]],
63825:[[
38475]],
63826:[[
21202]],
63827:[[
32907]],
63828:[[
20956]],
63829:[[
20940]],
63830:[[
31260]],
63831:[[
32190]],
63832:[[
33777]],
63833:[[
38517]],
63834:[[
35712]],
63835:[[
25295]],
63836:[[
27138]],
63837:[[
35582]],
63838:[[
20025]],
63839:[[
23527]],
63840:[[
24594]],
63841:[[
29575]],
63842:[[
30064]],
63843:[[
21271]],
63844:[[
30971]],
63845:[[
20415]],
63846:[[
24489]],
63847:[[
19981]],
63848:[[
27852]],
63849:[[
25976]],
63850:[[
32034]],
63851:[[
21443]],
63852:[[
22622]],
63853:[[
30465]],
63854:[[
33865]],
63855:[[
35498]],
63856:[[
27578]],
63857:[[
36784]],
63858:[[
27784]],
63859:[[
25342]],
63860:[[
33509]],
63861:[[
25504]],
63862:[[
30053]],
63863:[[
20142]],
63864:[[
20841]],
63865:[[
20937]],
63866:[[
26753]],
63867:[[
31975]],
63868:[[
33391]],
63869:[[
35538]],
63870:[[
37327]],
63871:[[
21237]],
63872:[[
21570]],
63873:[[
22899]],
63874:[[
24300]],
63875:[[
26053]],
63876:[[
28670]],
63877:[[
31018]],
63878:[[
38317]],
63879:[[
39530]],
63880:[[
40599]],
63881:[[
40654]],
63882:[[
21147]],
63883:[[
26310]],
63884:[[
27511]],
63885:[[
36706]],
63886:[[
24180]],
63887:[[
24976]],
63888:[[
25088]],
63889:[[
25754]],
63890:[[
28451]],
63891:[[
29001]],
63892:[[
29833]],
63893:[[
31178]],
63894:[[
32244]],
63895:[[
32879]],
63896:[[
36646]],
63897:[[
34030]],
63898:[[
36899]],
63899:[[
37706]],
63900:[[
21015]],
63901:[[
21155]],
63902:[[
21693]],
63903:[[
28872]],
63904:[[
35010]],
63905:[[
35498]],
63906:[[
24265]],
63907:[[
24565]],
63908:[[
25467]],
63909:[[
27566]],
63910:[[
31806]],
63911:[[
29557]],
63912:[[
20196]],
63913:[[
22265]],
63914:[[
23527]],
63915:[[
23994]],
63916:[[
24604]],
63917:[[
29618]],
63918:[[
29801]],
63919:[[
32666]],
63920:[[
32838]],
63921:[[
37428]],
63922:[[
38646]],
63923:[[
38728]],
63924:[[
38936]],
63925:[[
20363]],
63926:[[
31150]],
63927:[[
37300]],
63928:[[
38584]],
63929:[[
24801]],
63930:[[
20102]],
63931:[[
20698]],
63932:[[
23534]],
63933:[[
23615]],
63934:[[
26009]],
63935:[[
27138]],
63936:[[
29134]],
63937:[[
30274]],
63938:[[
34044]],
63939:[[
36988]],
63940:[[
40845]],
63941:[[
26248]],
63942:[[
38446]],
63943:[[
21129]],
63944:[[
26491]],
63945:[[
26611]],
63946:[[
27969]],
63947:[[
28316]],
63948:[[
29705]],
63949:[[
30041]],
63950:[[
30827]],
63951:[[
32016]],
63952:[[
39006]],
63953:[[
20845]],
63954:[[
25134]],
63955:[[
38520]],
63956:[[
20523]],
63957:[[
23833]],
63958:[[
28138]],
63959:[[
36650]],
63960:[[
24459]],
63961:[[
24900]],
63962:[[
26647]],
63963:[[
29575]],
63964:[[
38534]],
63965:[[
21033]],
63966:[[
21519]],
63967:[[
23653]],
63968:[[
26131]],
63969:[[
26446]],
63970:[[
26792]],
63971:[[
27877]],
63972:[[
29702]],
63973:[[
30178]],
63974:[[
32633]],
63975:[[
35023]],
63976:[[
35041]],
63977:[[
37324]],
63978:[[
38626]],
63979:[[
21311]],
63980:[[
28346]],
63981:[[
21533]],
63982:[[
29136]],
63983:[[
29848]],
63984:[[
34298]],
63985:[[
38563]],
63986:[[
40023]],
63987:[[
40607]],
63988:[[
26519]],
63989:[[
28107]],
63990:[[
33256]],
63991:[[
31435]],
63992:[[
31520]],
63993:[[
31890]],
63994:[[
29376]],
63995:[[
28825]],
63996:[[
35672]],
63997:[[
20160]],
63998:[[
33590]],
63999:[[
21050]],
194816:[[
27966]],
194817:[[
28023]],
194818:[[
27969]],
194819:[[
28009]],
194820:[[
28024]],
194821:[[
28037]],
194822:[[
146718]],
194823:[[
27956]],
194824:[[
28207]],
194825:[[
28270]],
194826:[[
15667]],
194827:[[
28363]],
194828:[[
28359]],
194829:[[
147153]],
194830:[[
28153]],
194831:[[
28526]],
194832:[[
147294]],
194833:[[
147342]],
194834:[[
28614]],
194835:[[
28729]],
194836:[[
28702]],
194837:[[
28699]],
194838:[[
15766]],
194839:[[
28746]],
194840:[[
28797]],
194841:[[
28791]],
194842:[[
28845]],
194843:[[
132389]],
194844:[[
28997]],
194845:[[
148067]],
194846:[[
29084]],
194847:[[
148395]],
194848:[[
29224]],
194849:[[
29237]],
194850:[[
29264]],
194851:[[
149000]],
194852:[[
29312]],
194853:[[
29333]],
194854:[[
149301]],
194855:[[
149524]],
194856:[[
29562]],
194857:[[
29579]],
194858:[[
16044]],
194859:[[
29605]],
194860:[[
16056]],
194861:[[
16056]],
194862:[[
29767]],
194863:[[
29788]],
194864:[[
29809]],
194865:[[
29829]],
194866:[[
29898]],
194867:[[
16155]],
194868:[[
29988]],
194869:[[
150582]],
194870:[[
30014]],
194871:[[
150674]],
194872:[[
30064]],
194873:[[
139679]],
194874:[[
30224]],
194875:[[
151457]],
194876:[[
151480]],
194877:[[
151620]],
194878:[[
16380]],
194879:[[
16392]],
194880:[[
30452]],
194881:[[
151795]],
194882:[[
151794]],
194883:[[
151833]],
194884:[[
151859]],
194885:[[
30494]],
194886:[[
30495]],
194887:[[
30495]],
194888:[[
30538]],
194889:[[
16441]],
194890:[[
30603]],
194891:[[
16454]],
194892:[[
16534]],
194893:[[
152605]],
194894:[[
30798]],
194895:[[
30860]],
194896:[[
30924]],
194897:[[
16611]],
194898:[[
153126]],
194899:[[
31062]],
194900:[[
153242]],
194901:[[
153285]],
194902:[[
31119]],
194903:[[
31211]],
194904:[[
16687]],
194905:[[
31296]],
194906:[[
31306]],
194907:[[
31311]],
194908:[[
153980]],
194909:[[
154279]],
194910:[[
154279]],
194911:[[
31470]],
194912:[[
16898]],
194913:[[
154539]],
194914:[[
31686]],
194915:[[
31689]],
194916:[[
16935]],
194917:[[
154752]],
194918:[[
31954]],
194919:[[
17056]],
194920:[[
31976]],
194921:[[
31971]],
194922:[[
32000]],
194923:[[
155526]],
194924:[[
32099]],
194925:[[
17153]],
194926:[[
32199]],
194927:[[
32258]],
194928:[[
32325]],
194929:[[
17204]],
194930:[[
156200]],
194931:[[
156231]],
194932:[[
17241]],
194933:[[
156377]],
194934:[[
32634]],
194935:[[
156478]],
194936:[[
32661]],
194937:[[
32762]],
194938:[[
32773]],
194939:[[
156890]],
194940:[[
156963]],
194941:[[
32864]],
194942:[[
157096]],
194943:[[
32880]],
194944:[[
144223]],
194945:[[
17365]],
194946:[[
32946]],
194947:[[
33027]],
194948:[[
17419]],
194949:[[
33086]],
194950:[[
23221]],
194951:[[
157607]],
194952:[[
157621]],
194953:[[
144275]],
194954:[[
144284]],
194955:[[
33281]],
194956:[[
33284]],
194957:[[
36766]],
194958:[[
17515]],
194959:[[
33425]],
194960:[[
33419]],
194961:[[
33437]],
194962:[[
21171]],
194963:[[
33457]],
194964:[[
33459]],
194965:[[
33469]],
194966:[[
33510]],
194967:[[
158524]],
194968:[[
33509]],
194969:[[
33565]],
194970:[[
33635]],
194971:[[
33709]],
194972:[[
33571]],
194973:[[
33725]],
194974:[[
33767]],
194975:[[
33879]],
194976:[[
33619]],
194977:[[
33738]],
194978:[[
33740]],
194979:[[
33756]],
194980:[[
158774]],
194981:[[
159083]],
194982:[[
158933]],
194983:[[
17707]],
194984:[[
34033]],
194985:[[
34035]],
194986:[[
34070]],
194987:[[
160714]],
194988:[[
34148]],
194989:[[
159532]],
194990:[[
17757]],
194991:[[
17761]],
194992:[[
159665]],
194993:[[
159954]],
194994:[[
17771]],
194995:[[
34384]],
194996:[[
34396]],
194997:[[
34407]],
194998:[[
34409]],
194999:[[
34473]],
195000:[[
34440]],
195001:[[
34574]],
195002:[[
34530]],
195003:[[
34681]],
195004:[[
34600]],
195005:[[
34667]],
195006:[[
34694]],
195007:[[
17879]],
195008:[[
34785]],
195009:[[
34817]],
195010:[[
17913]],
195011:[[
34912]],
195012:[[
34915]],
195013:[[
161383]],
195014:[[
35031]],
195015:[[
35038]],
195016:[[
17973]],
195017:[[
35066]],
195018:[[
13499]],
195019:[[
161966]],
195020:[[
162150]],
195021:[[
18110]],
195022:[[
18119]],
195023:[[
35488]],
195024:[[
35565]],
195025:[[
35722]],
195026:[[
35925]],
195027:[[
162984]],
195028:[[
36011]],
195029:[[
36033]],
195030:[[
36123]],
195031:[[
36215]],
195032:[[
163631]],
195033:[[
133124]],
195034:[[
36299]],
195035:[[
36284]],
195036:[[
36336]],
195037:[[
133342]],
195038:[[
36564]],
195039:[[
36664]],
195040:[[
165330]],
195041:[[
165357]],
195042:[[
37012]],
195043:[[
37105]],
195044:[[
37137]],
195045:[[
165678]],
195046:[[
37147]],
195047:[[
37432]],
195048:[[
37591]],
195049:[[
37592]],
195050:[[
37500]],
195051:[[
37881]],
195052:[[
37909]],
195053:[[
166906]],
195054:[[
38283]],
195055:[[
18837]],
195056:[[
38327]],
195057:[[
167287]],
195058:[[
18918]],
195059:[[
38595]],
195060:[[
23986]],
195061:[[
38691]],
195062:[[
168261]],
195063:[[
168474]],
195064:[[
19054]],
195065:[[
19062]],
195066:[[
38880]],
195067:[[
168970]],
195068:[[
19122]],
195069:[[
169110]],
195070:[[
38923]],
195071:[[
38923]]},
6854 64000:{
64000:[[
20999]],
64001:[[
24230]],
64002:[[
25299]],
64003:[[
31958]],
64004:[[
23429]],
64005:[[
27934]],
64006:[[
26292]],
64007:[[
36667]],
64008:[[
34892]],
64009:[[
38477]],
64010:[[
35211]],
64011:[[
24275]],
64012:[[
20800]],
64013:[[
21952]],
64016:[[
22618]],
64018:[[
26228]],
64021:[[
20958]],
64022:[[
29482]],
64023:[[
30410]],
64024:[[
31036]],
64025:[[
31070]],
64026:[[
31077]],
64027:[[
31119]],
64028:[[
38742]],
64029:[[
31934]],
64030:[[
32701]],
64032:[[
34322]],
64034:[[
35576]],
64037:[[
36920]],
64038:[[
37117]],
64042:[[
39151]],
64043:[[
39164]],
64044:[[
39208]],
64045:[[
40372]],
64046:[[
37086]],
64047:[[
38583]],
64048:[[
20398]],
64049:[[
20711]],
64050:[[
20813]],
64051:[[
21193]],
64052:[[
21220]],
64053:[[
21329]],
64054:[[
21917]],
64055:[[
22022]],
64056:[[
22120]],
64057:[[
22592]],
64058:[[
22696]],
64059:[[
23652]],
64060:[[
23662]],
64061:[[
24724]],
64062:[[
24936]],
64063:[[
24974]],
64064:[[
25074]],
64065:[[
25935]],
64066:[[
26082]],
64067:[[
26257]],
64068:[[
26757]],
64069:[[
28023]],
64070:[[
28186]],
64071:[[
28450]],
64072:[[
29038]],
64073:[[
29227]],
64074:[[
29730]],
64075:[[
30865]],
64076:[[
31038]],
64077:[[
31049]],
64078:[[
31048]],
64079:[[
31056]],
64080:[[
31062]],
64081:[[
31069]],
64082:[[
31117]],
64083:[[
31118]],
64084:[[
31296]],
64085:[[
31361]],
64086:[[
31680]],
64087:[[
32244]],
64088:[[
32265]],
64089:[[
32321]],
64090:[[
32626]],
64091:[[
32773]],
64092:[[
33261]],
64093:[[
33401]],
64094:[[
33401]],
64095:[[
33879]],
64096:[[
35088]],
64097:[[
35222]],
64098:[[
35585]],
64099:[[
35641]],
64100:[[
36051]],
64101:[[
36104]],
64102:[[
36790]],
64103:[[
36920]],
64104:[[
38627]],
64105:[[
38911]],
64106:[[
38971]],
64107:[[
24693]],
64108:[[
148206]],
64109:[[
33304]],
64112:[[
20006]],
64113:[[
20917]],
64114:[[
20840]],
64115:[[
20352]],
64116:[[
20805]],
64117:[[
20864]],
64118:[[
21191]],
64119:[[
21242]],
64120:[[
21917]],
64121:[[
21845]],
64122:[[
21913]],
64123:[[
21986]],
64124:[[
22618]],
64125:[[
22707]],
64126:[[
22852]],
64127:[[
22868]],
64128:[[
23138]],
64129:[[
23336]],
64130:[[
24274]],
64131:[[
24281]],
64132:[[
24425]],
64133:[[
24493]],
64134:[[
24792]],
64135:[[
24910]],
64136:[[
24840]],
64137:[[
24974]],
64138:[[
24928]],
64139:[[
25074]],
64140:[[
25140]],
64141:[[
25540]],
64142:[[
25628]],
64143:[[
25682]],
64144:[[
25942]],
64145:[[
26228]],
64146:[[
26391]],
64147:[[
26395]],
64148:[[
26454]],
64149:[[
27513]],
64150:[[
27578]],
64151:[[
27969]],
64152:[[
28379]],
64153:[[
28363]],
64154:[[
28450]],
64155:[[
28702]],
64156:[[
29038]],
64157:[[
30631]],
64158:[[
29237]],
64159:[[
29359]],
64160:[[
29482]],
64161:[[
29809]],
64162:[[
29958]],
64163:[[
30011]],
64164:[[
30237]],
64165:[[
30239]],
64166:[[
30410]],
64167:[[
30427]],
64168:[[
30452]],
64169:[[
30538]],
64170:[[
30528]],
64171:[[
30924]],
64172:[[
31409]],
64173:[[
31680]],
64174:[[
31867]],
64175:[[
32091]],
64176:[[
32244]],
64177:[[
32574]],
64178:[[
32773]],
64179:[[
33618]],
64180:[[
33775]],
64181:[[
34681]],
64182:[[
35137]],
64183:[[
35206]],
64184:[[
35222]],
64185:[[
35519]],
64186:[[
35576]],
64187:[[
35531]],
64188:[[
35585]],
64189:[[
35582]],
64190:[[
35565]],
64191:[[
35641]],
64192:[[
35722]],
64193:[[
36104]],
64194:[[
36664]],
64195:[[
36978]],
64196:[[
37273]],
64197:[[
37494]],
64198:[[
38524]],
64199:[[
38627]],
64200:[[
38742]],
64201:[[
38875]],
64202:[[
38911]],
64203:[[
38923]],
64204:[[
38971]],
64205:[[
39698]],
64206:[[
40860]],
64207:[[
141386]],
64208:[[
141380]],
64209:[[
144341]],
64210:[[
15261]],
64211:[[
16408]],
64212:[[
16441]],
64213:[[
152137]],
64214:[[
154832]],
64215:[[
163539]],
64216:[[
40771]],
64217:[[
40846]],
195072:[[
38953]],
195073:[[
169398]],
195074:[[
39138]],
195075:[[
19251]],
195076:[[
39209]],
195077:[[
39335]],
195078:[[
39362]],
195079:[[
39422]],
195080:[[
19406]],
195081:[[
170800]],
195082:[[
39698]],
195083:[[
40000]],
195084:[[
40189]],
195085:[[
19662]],
195086:[[
19693]],
195087:[[
40295]],
195088:[[
172238]],
195089:[[
19704]],
195090:[[
172293]],
195091:[[
172558]],
195092:[[
172689]],
195093:[[
40635]],
195094:[[
19798]],
195095:[[
40697]],
195096:[[
40702]],
195097:[[
40709]],
195098:[[
40719]],
195099:[[
40726]],
195100:[[
40763]],
195101:[[
173568]]},
6855 64256:{
64256:[[
102,
102],
256],
64257:[[
102,
105],
256],
64258:[[
102,
108],
256],
64259:[[
102,
102,
105],
256],
64260:[[
102,
102,
108],
256],
64261:[[
383,
116],
256],
64262:[[
115,
116],
256],
64275:[[
1396,
1398],
256],
64276:[[
1396,
1381],
256],
64277:[[
1396,
1387],
256],
64278:[[
1406,
1398],
256],
64279:[[
1396,
1389],
256],
64285:[[
1497,
1460],
512],
64286:[,
26],
64287:[[
1522,
1463],
512],
64288:[[
1506],
256],
64289:[[
1488],
256],
64290:[[
1491],
256],
64291:[[
1492],
256],
64292:[[
1499],
256],
64293:[[
1500],
256],
64294:[[
1501],
256],
64295:[[
1512],
256],
64296:[[
1514],
256],
64297:[[
43],
256],
64298:[[
1513,
1473],
512],
64299:[[
1513,
1474],
512],
64300:[[
64329,
1473],
512],
64301:[[
64329,
1474],
512],
64302:[[
1488,
1463],
512],
64303:[[
1488,
1464],
512],
64304:[[
1488,
1468],
512],
64305:[[
1489,
1468],
512],
64306:[[
1490,
1468],
512],
64307:[[
1491,
1468],
512],
64308:[[
1492,
1468],
512],
64309:[[
1493,
1468],
512],
64310:[[
1494,
1468],
512],
64312:[[
1496,
1468],
512],
64313:[[
1497,
1468],
512],
64314:[[
1498,
1468],
512],
64315:[[
1499,
1468],
512],
64316:[[
1500,
1468],
512],
64318:[[
1502,
1468],
512],
64320:[[
1504,
1468],
512],
64321:[[
1505,
1468],
512],
64323:[[
1507,
1468],
512],
64324:[[
1508,
1468],
512],
64326:[[
1510,
1468],
512],
64327:[[
1511,
1468],
512],
64328:[[
1512,
1468],
512],
64329:[[
1513,
1468],
512],
64330:[[
1514,
1468],
512],
64331:[[
1493,
1465],
512],
64332:[[
1489,
1471],
512],
64333:[[
1499,
1471],
512],
64334:[[
1508,
1471],
512],
64335:[[
1488,
1500],
256],
64336:[[
1649],
256],
64337:[[
1649],
256],
64338:[[
1659],
256],
64339:[[
1659],
256],
64340:[[
1659],
256],
64341:[[
1659],
256],
64342:[[
1662],
256],
64343:[[
1662],
256],
64344:[[
1662],
256],
64345:[[
1662],
256],
64346:[[
1664],
256],
64347:[[
1664],
256],
64348:[[
1664],
256],
64349:[[
1664],
256],
64350:[[
1658],
256],
64351:[[
1658],
256],
64352:[[
1658],
256],
64353:[[
1658],
256],
64354:[[
1663],
256],
64355:[[
1663],
256],
64356:[[
1663],
256],
64357:[[
1663],
256],
64358:[[
1657],
256],
64359:[[
1657],
256],
64360:[[
1657],
256],
64361:[[
1657],
256],
64362:[[
1700],
256],
64363:[[
1700],
256],
64364:[[
1700],
256],
64365:[[
1700],
256],
64366:[[
1702],
256],
64367:[[
1702],
256],
64368:[[
1702],
256],
64369:[[
1702],
256],
64370:[[
1668],
256],
64371:[[
1668],
256],
64372:[[
1668],
256],
64373:[[
1668],
256],
64374:[[
1667],
256],
64375:[[
1667],
256],
64376:[[
1667],
256],
64377:[[
1667],
256],
64378:[[
1670],
256],
64379:[[
1670],
256],
64380:[[
1670],
256],
64381:[[
1670],
256],
64382:[[
1671],
256],
64383:[[
1671],
256],
64384:[[
1671],
256],
64385:[[
1671],
256],
64386:[[
1677],
256],
64387:[[
1677],
256],
64388:[[
1676],
256],
64389:[[
1676],
256],
64390:[[
1678],
256],
64391:[[
1678],
256],
64392:[[
1672],
256],
64393:[[
1672],
256],
64394:[[
1688],
256],
64395:[[
1688],
256],
64396:[[
1681],
256],
64397:[[
1681],
256],
64398:[[
1705],
256],
64399:[[
1705],
256],
64400:[[
1705],
256],
64401:[[
1705],
256],
64402:[[
1711],
256],
64403:[[
1711],
256],
64404:[[
1711],
256],
64405:[[
1711],
256],
64406:[[
1715],
256],
64407:[[
1715],
256],
64408:[[
1715],
256],
64409:[[
1715],
256],
64410:[[
1713],
256],
64411:[[
1713],
256],
64412:[[
1713],
256],
64413:[[
1713],
256],
64414:[[
1722],
256],
64415:[[
1722],
256],
64416:[[
1723],
256],
64417:[[
1723],
256],
64418:[[
1723],
256],
64419:[[
1723],
256],
64420:[[
1728],
256],
64421:[[
1728],
256],
64422:[[
1729],
256],
64423:[[
1729],
256],
64424:[[
1729],
256],
64425:[[
1729],
256],
64426:[[
1726],
256],
64427:[[
1726],
256],
64428:[[
1726],
256],
64429:[[
1726],
256],
64430:[[
1746],
256],
64431:[[
1746],
256],
64432:[[
1747],
256],
64433:[[
1747],
256],
64467:[[
1709],
256],
64468:[[
1709],
256],
64469:[[
1709],
256],
64470:[[
1709],
256],
64471:[[
1735],
256],
64472:[[
1735],
256],
64473:[[
1734],
256],
64474:[[
1734],
256],
64475:[[
1736],
256],
64476:[[
1736],
256],
64477:[[
1655],
256],
64478:[[
1739],
256],
64479:[[
1739],
256],
64480:[[
1733],
256],
64481:[[
1733],
256],
64482:[[
1737],
256],
64483:[[
1737],
256],
64484:[[
1744],
256],
64485:[[
1744],
256],
64486:[[
1744],
256],
64487:[[
1744],
256],
64488:[[
1609],
256],
64489:[[
1609],
256],
64490:[[
1574,
1575],
256],
64491:[[
1574,
1575],
256],
64492:[[
1574,
1749],
256],
64493:[[
1574,
1749],
256],
64494:[[
1574,
1608],
256],
64495:[[
1574,
1608],
256],
64496:[[
1574,
1735],
256],
64497:[[
1574,
1735],
256],
64498:[[
1574,
1734],
256],
64499:[[
1574,
1734],
256],
64500:[[
1574,
1736],
256],
64501:[[
1574,
1736],
256],
64502:[[
1574,
1744],
256],
64503:[[
1574,
1744],
256],
64504:[[
1574,
1744],
256],
64505:[[
1574,
1609],
256],
64506:[[
1574,
1609],
256],
64507:[[
1574,
1609],
256],
64508:[[
1740],
256],
64509:[[
1740],
256],
64510:[[
1740],
256],
64511:[[
1740],
256]},
6856 64512:{
64512:[[
1574,
1580],
256],
64513:[[
1574,
1581],
256],
64514:[[
1574,
1605],
256],
64515:[[
1574,
1609],
256],
64516:[[
1574,
1610],
256],
64517:[[
1576,
1580],
256],
64518:[[
1576,
1581],
256],
64519:[[
1576,
1582],
256],
64520:[[
1576,
1605],
256],
64521:[[
1576,
1609],
256],
64522:[[
1576,
1610],
256],
64523:[[
1578,
1580],
256],
64524:[[
1578,
1581],
256],
64525:[[
1578,
1582],
256],
64526:[[
1578,
1605],
256],
64527:[[
1578,
1609],
256],
64528:[[
1578,
1610],
256],
64529:[[
1579,
1580],
256],
64530:[[
1579,
1605],
256],
64531:[[
1579,
1609],
256],
64532:[[
1579,
1610],
256],
64533:[[
1580,
1581],
256],
64534:[[
1580,
1605],
256],
64535:[[
1581,
1580],
256],
64536:[[
1581,
1605],
256],
64537:[[
1582,
1580],
256],
64538:[[
1582,
1581],
256],
64539:[[
1582,
1605],
256],
64540:[[
1587,
1580],
256],
64541:[[
1587,
1581],
256],
64542:[[
1587,
1582],
256],
64543:[[
1587,
1605],
256],
64544:[[
1589,
1581],
256],
64545:[[
1589,
1605],
256],
64546:[[
1590,
1580],
256],
64547:[[
1590,
1581],
256],
64548:[[
1590,
1582],
256],
64549:[[
1590,
1605],
256],
64550:[[
1591,
1581],
256],
64551:[[
1591,
1605],
256],
64552:[[
1592,
1605],
256],
64553:[[
1593,
1580],
256],
64554:[[
1593,
1605],
256],
64555:[[
1594,
1580],
256],
64556:[[
1594,
1605],
256],
64557:[[
1601,
1580],
256],
64558:[[
1601,
1581],
256],
64559:[[
1601,
1582],
256],
64560:[[
1601,
1605],
256],
64561:[[
1601,
1609],
256],
64562:[[
1601,
1610],
256],
64563:[[
1602,
1581],
256],
64564:[[
1602,
1605],
256],
64565:[[
1602,
1609],
256],
64566:[[
1602,
1610],
256],
64567:[[
1603,
1575],
256],
64568:[[
1603,
1580],
256],
64569:[[
1603,
1581],
256],
64570:[[
1603,
1582],
256],
64571:[[
1603,
1604],
256],
64572:[[
1603,
1605],
256],
64573:[[
1603,
1609],
256],
64574:[[
1603,
1610],
256],
64575:[[
1604,
1580],
256],
64576:[[
1604,
1581],
256],
64577:[[
1604,
1582],
256],
64578:[[
1604,
1605],
256],
64579:[[
1604,
1609],
256],
64580:[[
1604,
1610],
256],
64581:[[
1605,
1580],
256],
64582:[[
1605,
1581],
256],
64583:[[
1605,
1582],
256],
64584:[[
1605,
1605],
256],
64585:[[
1605,
1609],
256],
64586:[[
1605,
1610],
256],
64587:[[
1606,
1580],
256],
64588:[[
1606,
1581],
256],
64589:[[
1606,
1582],
256],
64590:[[
1606,
1605],
256],
64591:[[
1606,
1609],
256],
64592:[[
1606,
1610],
256],
64593:[[
1607,
1580],
256],
64594:[[
1607,
1605],
256],
64595:[[
1607,
1609],
256],
64596:[[
1607,
1610],
256],
64597:[[
1610,
1580],
256],
64598:[[
1610,
1581],
256],
64599:[[
1610,
1582],
256],
64600:[[
1610,
1605],
256],
64601:[[
1610,
1609],
256],
64602:[[
1610,
1610],
256],
64603:[[
1584,
1648],
256],
64604:[[
1585,
1648],
256],
64605:[[
1609,
1648],
256],
64606:[[
32,
1612,
1617],
256],
64607:[[
32,
1613,
1617],
256],
64608:[[
32,
1614,
1617],
256],
64609:[[
32,
1615,
1617],
256],
64610:[[
32,
1616,
1617],
256],
64611:[[
32,
1617,
1648],
256],
64612:[[
1574,
1585],
256],
64613:[[
1574,
1586],
256],
64614:[[
1574,
1605],
256],
64615:[[
1574,
1606],
256],
64616:[[
1574,
1609],
256],
64617:[[
1574,
1610],
256],
64618:[[
1576,
1585],
256],
64619:[[
1576,
1586],
256],
64620:[[
1576,
1605],
256],
64621:[[
1576,
1606],
256],
64622:[[
1576,
1609],
256],
64623:[[
1576,
1610],
256],
64624:[[
1578,
1585],
256],
64625:[[
1578,
1586],
256],
64626:[[
1578,
1605],
256],
64627:[[
1578,
1606],
256],
64628:[[
1578,
1609],
256],
64629:[[
1578,
1610],
256],
64630:[[
1579,
1585],
256],
64631:[[
1579,
1586],
256],
64632:[[
1579,
1605],
256],
64633:[[
1579,
1606],
256],
64634:[[
1579,
1609],
256],
64635:[[
1579,
1610],
256],
64636:[[
1601,
1609],
256],
64637:[[
1601,
1610],
256],
64638:[[
1602,
1609],
256],
64639:[[
1602,
1610],
256],
64640:[[
1603,
1575],
256],
64641:[[
1603,
1604],
256],
64642:[[
1603,
1605],
256],
64643:[[
1603,
1609],
256],
64644:[[
1603,
1610],
256],
64645:[[
1604,
1605],
256],
64646:[[
1604,
1609],
256],
64647:[[
1604,
1610],
256],
64648:[[
1605,
1575],
256],
64649:[[
1605,
1605],
256],
64650:[[
1606,
1585],
256],
64651:[[
1606,
1586],
256],
64652:[[
1606,
1605],
256],
64653:[[
1606,
1606],
256],
64654:[[
1606,
1609],
256],
64655:[[
1606,
1610],
256],
64656:[[
1609,
1648],
256],
64657:[[
1610,
1585],
256],
64658:[[
1610,
1586],
256],
64659:[[
1610,
1605],
256],
64660:[[
1610,
1606],
256],
64661:[[
1610,
1609],
256],
64662:[[
1610,
1610],
256],
64663:[[
1574,
1580],
256],
64664:[[
1574,
1581],
256],
64665:[[
1574,
1582],
256],
64666:[[
1574,
1605],
256],
64667:[[
1574,
1607],
256],
64668:[[
1576,
1580],
256],
64669:[[
1576,
1581],
256],
64670:[[
1576,
1582],
256],
64671:[[
1576,
1605],
256],
64672:[[
1576,
1607],
256],
64673:[[
1578,
1580],
256],
64674:[[
1578,
1581],
256],
64675:[[
1578,
1582],
256],
64676:[[
1578,
1605],
256],
64677:[[
1578,
1607],
256],
64678:[[
1579,
1605],
256],
64679:[[
1580,
1581],
256],
64680:[[
1580,
1605],
256],
64681:[[
1581,
1580],
256],
64682:[[
1581,
1605],
256],
64683:[[
1582,
1580],
256],
64684:[[
1582,
1605],
256],
64685:[[
1587,
1580],
256],
64686:[[
1587,
1581],
256],
64687:[[
1587,
1582],
256],
64688:[[
1587,
1605],
256],
64689:[[
1589,
1581],
256],
64690:[[
1589,
1582],
256],
64691:[[
1589,
1605],
256],
64692:[[
1590,
1580],
256],
64693:[[
1590,
1581],
256],
64694:[[
1590,
1582],
256],
64695:[[
1590,
1605],
256],
64696:[[
1591,
1581],
256],
64697:[[
1592,
1605],
256],
64698:[[
1593,
1580],
256],
64699:[[
1593,
1605],
256],
64700:[[
1594,
1580],
256],
64701:[[
1594,
1605],
256],
64702:[[
1601,
1580],
256],
64703:[[
1601,
1581],
256],
64704:[[
1601,
1582],
256],
64705:[[
1601,
1605],
256],
64706:[[
1602,
1581],
256],
64707:[[
1602,
1605],
256],
64708:[[
1603,
1580],
256],
64709:[[
1603,
1581],
256],
64710:[[
1603,
1582],
256],
64711:[[
1603,
1604],
256],
64712:[[
1603,
1605],
256],
64713:[[
1604,
1580],
256],
64714:[[
1604,
1581],
256],
64715:[[
1604,
1582],
256],
64716:[[
1604,
1605],
256],
64717:[[
1604,
1607],
256],
64718:[[
1605,
1580],
256],
64719:[[
1605,
1581],
256],
64720:[[
1605,
1582],
256],
64721:[[
1605,
1605],
256],
64722:[[
1606,
1580],
256],
64723:[[
1606,
1581],
256],
64724:[[
1606,
1582],
256],
64725:[[
1606,
1605],
256],
64726:[[
1606,
1607],
256],
64727:[[
1607,
1580],
256],
64728:[[
1607,
1605],
256],
64729:[[
1607,
1648],
256],
64730:[[
1610,
1580],
256],
64731:[[
1610,
1581],
256],
64732:[[
1610,
1582],
256],
64733:[[
1610,
1605],
256],
64734:[[
1610,
1607],
256],
64735:[[
1574,
1605],
256],
64736:[[
1574,
1607],
256],
64737:[[
1576,
1605],
256],
64738:[[
1576,
1607],
256],
64739:[[
1578,
1605],
256],
64740:[[
1578,
1607],
256],
64741:[[
1579,
1605],
256],
64742:[[
1579,
1607],
256],
64743:[[
1587,
1605],
256],
64744:[[
1587,
1607],
256],
64745:[[
1588,
1605],
256],
64746:[[
1588,
1607],
256],
64747:[[
1603,
1604],
256],
64748:[[
1603,
1605],
256],
64749:[[
1604,
1605],
256],
64750:[[
1606,
1605],
256],
64751:[[
1606,
1607],
256],
64752:[[
1610,
1605],
256],
64753:[[
1610,
1607],
256],
64754:[[
1600,
1614,
1617],
256],
64755:[[
1600,
1615,
1617],
256],
64756:[[
1600,
1616,
1617],
256],
64757:[[
1591,
1609],
256],
64758:[[
1591,
1610],
256],
64759:[[
1593,
1609],
256],
64760:[[
1593,
1610],
256],
64761:[[
1594,
1609],
256],
64762:[[
1594,
1610],
256],
64763:[[
1587,
1609],
256],
64764:[[
1587,
1610],
256],
64765:[[
1588,
1609],
256],
64766:[[
1588,
1610],
256],
64767:[[
1581,
1609],
256]},
6857 64768:{
64768:[[
1581,
1610],
256],
64769:[[
1580,
1609],
256],
64770:[[
1580,
1610],
256],
64771:[[
1582,
1609],
256],
64772:[[
1582,
1610],
256],
64773:[[
1589,
1609],
256],
64774:[[
1589,
1610],
256],
64775:[[
1590,
1609],
256],
64776:[[
1590,
1610],
256],
64777:[[
1588,
1580],
256],
64778:[[
1588,
1581],
256],
64779:[[
1588,
1582],
256],
64780:[[
1588,
1605],
256],
64781:[[
1588,
1585],
256],
64782:[[
1587,
1585],
256],
64783:[[
1589,
1585],
256],
64784:[[
1590,
1585],
256],
64785:[[
1591,
1609],
256],
64786:[[
1591,
1610],
256],
64787:[[
1593,
1609],
256],
64788:[[
1593,
1610],
256],
64789:[[
1594,
1609],
256],
64790:[[
1594,
1610],
256],
64791:[[
1587,
1609],
256],
64792:[[
1587,
1610],
256],
64793:[[
1588,
1609],
256],
64794:[[
1588,
1610],
256],
64795:[[
1581,
1609],
256],
64796:[[
1581,
1610],
256],
64797:[[
1580,
1609],
256],
64798:[[
1580,
1610],
256],
64799:[[
1582,
1609],
256],
64800:[[
1582,
1610],
256],
64801:[[
1589,
1609],
256],
64802:[[
1589,
1610],
256],
64803:[[
1590,
1609],
256],
64804:[[
1590,
1610],
256],
64805:[[
1588,
1580],
256],
64806:[[
1588,
1581],
256],
64807:[[
1588,
1582],
256],
64808:[[
1588,
1605],
256],
64809:[[
1588,
1585],
256],
64810:[[
1587,
1585],
256],
64811:[[
1589,
1585],
256],
64812:[[
1590,
1585],
256],
64813:[[
1588,
1580],
256],
64814:[[
1588,
1581],
256],
64815:[[
1588,
1582],
256],
64816:[[
1588,
1605],
256],
64817:[[
1587,
1607],
256],
64818:[[
1588,
1607],
256],
64819:[[
1591,
1605],
256],
64820:[[
1587,
1580],
256],
64821:[[
1587,
1581],
256],
64822:[[
1587,
1582],
256],
64823:[[
1588,
1580],
256],
64824:[[
1588,
1581],
256],
64825:[[
1588,
1582],
256],
64826:[[
1591,
1605],
256],
64827:[[
1592,
1605],
256],
64828:[[
1575,
1611],
256],
64829:[[
1575,
1611],
256],
64848:[[
1578,
1580,
1605],
256],
64849:[[
1578,
1581,
1580],
256],
64850:[[
1578,
1581,
1580],
256],
64851:[[
1578,
1581,
1605],
256],
64852:[[
1578,
1582,
1605],
256],
64853:[[
1578,
1605,
1580],
256],
64854:[[
1578,
1605,
1581],
256],
64855:[[
1578,
1605,
1582],
256],
64856:[[
1580,
1605,
1581],
256],
64857:[[
1580,
1605,
1581],
256],
64858:[[
1581,
1605,
1610],
256],
64859:[[
1581,
1605,
1609],
256],
64860:[[
1587,
1581,
1580],
256],
64861:[[
1587,
1580,
1581],
256],
64862:[[
1587,
1580,
1609],
256],
64863:[[
1587,
1605,
1581],
256],
64864:[[
1587,
1605,
1581],
256],
64865:[[
1587,
1605,
1580],
256],
64866:[[
1587,
1605,
1605],
256],
64867:[[
1587,
1605,
1605],
256],
64868:[[
1589,
1581,
1581],
256],
64869:[[
1589,
1581,
1581],
256],
64870:[[
1589,
1605,
1605],
256],
64871:[[
1588,
1581,
1605],
256],
64872:[[
1588,
1581,
1605],
256],
64873:[[
1588,
1580,
1610],
256],
64874:[[
1588,
1605,
1582],
256],
64875:[[
1588,
1605,
1582],
256],
64876:[[
1588,
1605,
1605],
256],
64877:[[
1588,
1605,
1605],
256],
64878:[[
1590,
1581,
1609],
256],
64879:[[
1590,
1582,
1605],
256],
64880:[[
1590,
1582,
1605],
256],
64881:[[
1591,
1605,
1581],
256],
64882:[[
1591,
1605,
1581],
256],
64883:[[
1591,
1605,
1605],
256],
64884:[[
1591,
1605,
1610],
256],
64885:[[
1593,
1580,
1605],
256],
64886:[[
1593,
1605,
1605],
256],
64887:[[
1593,
1605,
1605],
256],
64888:[[
1593,
1605,
1609],
256],
64889:[[
1594,
1605,
1605],
256],
64890:[[
1594,
1605,
1610],
256],
64891:[[
1594,
1605,
1609],
256],
64892:[[
1601,
1582,
1605],
256],
64893:[[
1601,
1582,
1605],
256],
64894:[[
1602,
1605,
1581],
256],
64895:[[
1602,
1605,
1605],
256],
64896:[[
1604,
1581,
1605],
256],
64897:[[
1604,
1581,
1610],
256],
64898:[[
1604,
1581,
1609],
256],
64899:[[
1604,
1580,
1580],
256],
64900:[[
1604,
1580,
1580],
256],
64901:[[
1604,
1582,
1605],
256],
64902:[[
1604,
1582,
1605],
256],
64903:[[
1604,
1605,
1581],
256],
64904:[[
1604,
1605,
1581],
256],
64905:[[
1605,
1581,
1580],
256],
64906:[[
1605,
1581,
1605],
256],
64907:[[
1605,
1581,
1610],
256],
64908:[[
1605,
1580,
1581],
256],
64909:[[
1605,
1580,
1605],
256],
64910:[[
1605,
1582,
1580],
256],
64911:[[
1605,
1582,
1605],
256],
64914:[[
1605,
1580,
1582],
256],
64915:[[
1607,
1605,
1580],
256],
64916:[[
1607,
1605,
1605],
256],
64917:[[
1606,
1581,
1605],
256],
64918:[[
1606,
1581,
1609],
256],
64919:[[
1606,
1580,
1605],
256],
64920:[[
1606,
1580,
1605],
256],
64921:[[
1606,
1580,
1609],
256],
64922:[[
1606,
1605,
1610],
256],
64923:[[
1606,
1605,
1609],
256],
64924:[[
1610,
1605,
1605],
256],
64925:[[
1610,
1605,
1605],
256],
64926:[[
1576,
1582,
1610],
256],
64927:[[
1578,
1580,
1610],
256],
64928:[[
1578,
1580,
1609],
256],
64929:[[
1578,
1582,
1610],
256],
64930:[[
1578,
1582,
1609],
256],
64931:[[
1578,
1605,
1610],
256],
64932:[[
1578,
1605,
1609],
256],
64933:[[
1580,
1605,
1610],
256],
64934:[[
1580,
1581,
1609],
256],
64935:[[
1580,
1605,
1609],
256],
64936:[[
1587,
1582,
1609],
256],
64937:[[
1589,
1581,
1610],
256],
64938:[[
1588,
1581,
1610],
256],
64939:[[
1590,
1581,
1610],
256],
64940:[[
1604,
1580,
1610],
256],
64941:[[
1604,
1605,
1610],
256],
64942:[[
1610,
1581,
1610],
256],
64943:[[
1610,
1580,
1610],
256],
64944:[[
1610,
1605,
1610],
256],
64945:[[
1605,
1605,
1610],
256],
64946:[[
1602,
1605,
1610],
256],
64947:[[
1606,
1581,
1610],
256],
64948:[[
1602,
1605,
1581],
256],
64949:[[
1604,
1581,
1605],
256],
64950:[[
1593,
1605,
1610],
256],
64951:[[
1603,
1605,
1610],
256],
64952:[[
1606,
1580,
1581],
256],
64953:[[
1605,
1582,
1610],
256],
64954:[[
1604,
1580,
1605],
256],
64955:[[
1603,
1605,
1605],
256],
64956:[[
1604,
1580,
1605],
256],
64957:[[
1606,
1580,
1581],
256],
64958:[[
1580,
1581,
1610],
256],
64959:[[
1581,
1580,
1610],
256],
64960:[[
1605,
1580,
1610],
256],
64961:[[
1601,
1605,
1610],
256],
64962:[[
1576,
1581,
1610],
256],
64963:[[
1603,
1605,
1605],
256],
64964:[[
1593,
1580,
1605],
256],
64965:[[
1589,
1605,
1605],
256],
64966:[[
1587,
1582,
1610],
256],
64967:[[
1606,
1580,
1610],
256],
65008:[[
1589,
1604,
1746],
256],
65009:[[
1602,
1604,
1746],
256],
65010:[[
1575,
1604,
1604,
1607],
256],
65011:[[
1575,
1603,
1576,
1585],
256],
65012:[[
1605,
1581,
1605,
1583],
256],
65013:[[
1589,
1604,
1593,
1605],
256],
65014:[[
1585,
1587,
1608,
1604],
256],
65015:[[
1593,
1604,
1610,
1607],
256],
65016:[[
1608,
1587,
1604,
1605],
256],
65017:[[
1589,
1604,
1609],
256],
65018:[[
1589,
1604,
1609,
32,
1575,
1604,
1604,
1607,
32,
1593,
1604,
1610,
1607,
32,
1608,
1587,
1604,
1605],
256],
65019:[[
1580,
1604,
32,
1580,
1604,
1575,
1604,
1607],
256],
65020:[[
1585,
1740,
1575,
1604],
256]},
6858 65024:{
65040:[[
44],
256],
65041:[[
12289],
256],
65042:[[
12290],
256],
65043:[[
58],
256],
65044:[[
59],
256],
65045:[[
33],
256],
65046:[[
63],
256],
65047:[[
12310],
256],
65048:[[
12311],
256],
65049:[[
8230],
256],
65056:[,
230],
65057:[,
230],
65058:[,
230],
65059:[,
230],
65060:[,
230],
65061:[,
230],
65062:[,
230],
65063:[,
220],
65064:[,
220],
65065:[,
220],
65066:[,
220],
65067:[,
220],
65068:[,
220],
65069:[,
220],
65072:[[
8229],
256],
65073:[[
8212],
256],
65074:[[
8211],
256],
65075:[[
95],
256],
65076:[[
95],
256],
65077:[[
40],
256],
65078:[[
41],
256],
65079:[[
123],
256],
65080:[[
125],
256],
65081:[[
12308],
256],
65082:[[
12309],
256],
65083:[[
12304],
256],
65084:[[
12305],
256],
65085:[[
12298],
256],
65086:[[
12299],
256],
65087:[[
12296],
256],
65088:[[
12297],
256],
65089:[[
12300],
256],
65090:[[
12301],
256],
65091:[[
12302],
256],
65092:[[
12303],
256],
65095:[[
91],
256],
65096:[[
93],
256],
65097:[[
8254],
256],
65098:[[
8254],
256],
65099:[[
8254],
256],
65100:[[
8254],
256],
65101:[[
95],
256],
65102:[[
95],
256],
65103:[[
95],
256],
65104:[[
44],
256],
65105:[[
12289],
256],
65106:[[
46],
256],
65108:[[
59],
256],
65109:[[
58],
256],
65110:[[
63],
256],
65111:[[
33],
256],
65112:[[
8212],
256],
65113:[[
40],
256],
65114:[[
41],
256],
65115:[[
123],
256],
65116:[[
125],
256],
65117:[[
12308],
256],
65118:[[
12309],
256],
65119:[[
35],
256],
65120:[[
38],
256],
65121:[[
42],
256],
65122:[[
43],
256],
65123:[[
45],
256],
65124:[[
60],
256],
65125:[[
62],
256],
65126:[[
61],
256],
65128:[[
92],
256],
65129:[[
36],
256],
65130:[[
37],
256],
65131:[[
64],
256],
65136:[[
32,
1611],
256],
65137:[[
1600,
1611],
256],
65138:[[
32,
1612],
256],
65140:[[
32,
1613],
256],
65142:[[
32,
1614],
256],
65143:[[
1600,
1614],
256],
65144:[[
32,
1615],
256],
65145:[[
1600,
1615],
256],
65146:[[
32,
1616],
256],
65147:[[
1600,
1616],
256],
65148:[[
32,
1617],
256],
65149:[[
1600,
1617],
256],
65150:[[
32,
1618],
256],
65151:[[
1600,
1618],
256],
65152:[[
1569],
256],
65153:[[
1570],
256],
65154:[[
1570],
256],
65155:[[
1571],
256],
65156:[[
1571],
256],
65157:[[
1572],
256],
65158:[[
1572],
256],
65159:[[
1573],
256],
65160:[[
1573],
256],
65161:[[
1574],
256],
65162:[[
1574],
256],
65163:[[
1574],
256],
65164:[[
1574],
256],
65165:[[
1575],
256],
65166:[[
1575],
256],
65167:[[
1576],
256],
65168:[[
1576],
256],
65169:[[
1576],
256],
65170:[[
1576],
256],
65171:[[
1577],
256],
65172:[[
1577],
256],
65173:[[
1578],
256],
65174:[[
1578],
256],
65175:[[
1578],
256],
65176:[[
1578],
256],
65177:[[
1579],
256],
65178:[[
1579],
256],
65179:[[
1579],
256],
65180:[[
1579],
256],
65181:[[
1580],
256],
65182:[[
1580],
256],
65183:[[
1580],
256],
65184:[[
1580],
256],
65185:[[
1581],
256],
65186:[[
1581],
256],
65187:[[
1581],
256],
65188:[[
1581],
256],
65189:[[
1582],
256],
65190:[[
1582],
256],
65191:[[
1582],
256],
65192:[[
1582],
256],
65193:[[
1583],
256],
65194:[[
1583],
256],
65195:[[
1584],
256],
65196:[[
1584],
256],
65197:[[
1585],
256],
65198:[[
1585],
256],
65199:[[
1586],
256],
65200:[[
1586],
256],
65201:[[
1587],
256],
65202:[[
1587],
256],
65203:[[
1587],
256],
65204:[[
1587],
256],
65205:[[
1588],
256],
65206:[[
1588],
256],
65207:[[
1588],
256],
65208:[[
1588],
256],
65209:[[
1589],
256],
65210:[[
1589],
256],
65211:[[
1589],
256],
65212:[[
1589],
256],
65213:[[
1590],
256],
65214:[[
1590],
256],
65215:[[
1590],
256],
65216:[[
1590],
256],
65217:[[
1591],
256],
65218:[[
1591],
256],
65219:[[
1591],
256],
65220:[[
1591],
256],
65221:[[
1592],
256],
65222:[[
1592],
256],
65223:[[
1592],
256],
65224:[[
1592],
256],
65225:[[
1593],
256],
65226:[[
1593],
256],
65227:[[
1593],
256],
65228:[[
1593],
256],
65229:[[
1594],
256],
65230:[[
1594],
256],
65231:[[
1594],
256],
65232:[[
1594],
256],
65233:[[
1601],
256],
65234:[[
1601],
256],
65235:[[
1601],
256],
65236:[[
1601],
256],
65237:[[
1602],
256],
65238:[[
1602],
256],
65239:[[
1602],
256],
65240:[[
1602],
256],
65241:[[
1603],
256],
65242:[[
1603],
256],
65243:[[
1603],
256],
65244:[[
1603],
256],
65245:[[
1604],
256],
65246:[[
1604],
256],
65247:[[
1604],
256],
65248:[[
1604],
256],
65249:[[
1605],
256],
65250:[[
1605],
256],
65251:[[
1605],
256],
65252:[[
1605],
256],
65253:[[
1606],
256],
65254:[[
1606],
256],
65255:[[
1606],
256],
65256:[[
1606],
256],
65257:[[
1607],
256],
65258:[[
1607],
256],
65259:[[
1607],
256],
65260:[[
1607],
256],
65261:[[
1608],
256],
65262:[[
1608],
256],
65263:[[
1609],
256],
65264:[[
1609],
256],
65265:[[
1610],
256],
65266:[[
1610],
256],
65267:[[
1610],
256],
65268:[[
1610],
256],
65269:[[
1604,
1570],
256],
65270:[[
1604,
1570],
256],
65271:[[
1604,
1571],
256],
65272:[[
1604,
1571],
256],
65273:[[
1604,
1573],
256],
65274:[[
1604,
1573],
256],
65275:[[
1604,
1575],
256],
65276:[[
1604,
1575],
256]},
6859 65280:{
65281:[[
33],
256],
65282:[[
34],
256],
65283:[[
35],
256],
65284:[[
36],
256],
65285:[[
37],
256],
65286:[[
38],
256],
65287:[[
39],
256],
65288:[[
40],
256],
65289:[[
41],
256],
65290:[[
42],
256],
65291:[[
43],
256],
65292:[[
44],
256],
65293:[[
45],
256],
65294:[[
46],
256],
65295:[[
47],
256],
65296:[[
48],
256],
65297:[[
49],
256],
65298:[[
50],
256],
65299:[[
51],
256],
65300:[[
52],
256],
65301:[[
53],
256],
65302:[[
54],
256],
65303:[[
55],
256],
65304:[[
56],
256],
65305:[[
57],
256],
65306:[[
58],
256],
65307:[[
59],
256],
65308:[[
60],
256],
65309:[[
61],
256],
65310:[[
62],
256],
65311:[[
63],
256],
65312:[[
64],
256],
65313:[[
65],
256],
65314:[[
66],
256],
65315:[[
67],
256],
65316:[[
68],
256],
65317:[[
69],
256],
65318:[[
70],
256],
65319:[[
71],
256],
65320:[[
72],
256],
65321:[[
73],
256],
65322:[[
74],
256],
65323:[[
75],
256],
65324:[[
76],
256],
65325:[[
77],
256],
65326:[[
78],
256],
65327:[[
79],
256],
65328:[[
80],
256],
65329:[[
81],
256],
65330:[[
82],
256],
65331:[[
83],
256],
65332:[[
84],
256],
65333:[[
85],
256],
65334:[[
86],
256],
65335:[[
87],
256],
65336:[[
88],
256],
65337:[[
89],
256],
65338:[[
90],
256],
65339:[[
91],
256],
65340:[[
92],
256],
65341:[[
93],
256],
65342:[[
94],
256],
65343:[[
95],
256],
65344:[[
96],
256],
65345:[[
97],
256],
65346:[[
98],
256],
65347:[[
99],
256],
65348:[[
100],
256],
65349:[[
101],
256],
65350:[[
102],
256],
65351:[[
103],
256],
65352:[[
104],
256],
65353:[[
105],
256],
65354:[[
106],
256],
65355:[[
107],
256],
65356:[[
108],
256],
65357:[[
109],
256],
65358:[[
110],
256],
65359:[[
111],
256],
65360:[[
112],
256],
65361:[[
113],
256],
65362:[[
114],
256],
65363:[[
115],
256],
65364:[[
116],
256],
65365:[[
117],
256],
65366:[[
118],
256],
65367:[[
119],
256],
65368:[[
120],
256],
65369:[[
121],
256],
65370:[[
122],
256],
65371:[[
123],
256],
65372:[[
124],
256],
65373:[[
125],
256],
65374:[[
126],
256],
65375:[[
10629],
256],
65376:[[
10630],
256],
65377:[[
12290],
256],
65378:[[
12300],
256],
65379:[[
12301],
256],
65380:[[
12289],
256],
65381:[[
12539],
256],
65382:[[
12530],
256],
65383:[[
12449],
256],
65384:[[
12451],
256],
65385:[[
12453],
256],
65386:[[
12455],
256],
65387:[[
12457],
256],
65388:[[
12515],
256],
65389:[[
12517],
256],
65390:[[
12519],
256],
65391:[[
12483],
256],
65392:[[
12540],
256],
65393:[[
12450],
256],
65394:[[
12452],
256],
65395:[[
12454],
256],
65396:[[
12456],
256],
65397:[[
12458],
256],
65398:[[
12459],
256],
65399:[[
12461],
256],
65400:[[
12463],
256],
65401:[[
12465],
256],
65402:[[
12467],
256],
65403:[[
12469],
256],
65404:[[
12471],
256],
65405:[[
12473],
256],
65406:[[
12475],
256],
65407:[[
12477],
256],
65408:[[
12479],
256],
65409:[[
12481],
256],
65410:[[
12484],
256],
65411:[[
12486],
256],
65412:[[
12488],
256],
65413:[[
12490],
256],
65414:[[
12491],
256],
65415:[[
12492],
256],
65416:[[
12493],
256],
65417:[[
12494],
256],
65418:[[
12495],
256],
65419:[[
12498],
256],
65420:[[
12501],
256],
65421:[[
12504],
256],
65422:[[
12507],
256],
65423:[[
12510],
256],
65424:[[
12511],
256],
65425:[[
12512],
256],
65426:[[
12513],
256],
65427:[[
12514],
256],
65428:[[
12516],
256],
65429:[[
12518],
256],
65430:[[
12520],
256],
65431:[[
12521],
256],
65432:[[
12522],
256],
65433:[[
12523],
256],
65434:[[
12524],
256],
65435:[[
12525],
256],
65436:[[
12527],
256],
65437:[[
12531],
256],
65438:[[
12441],
256],
65439:[[
12442],
256],
65440:[[
12644],
256],
65441:[[
12593],
256],
65442:[[
12594],
256],
65443:[[
12595],
256],
65444:[[
12596],
256],
65445:[[
12597],
256],
65446:[[
12598],
256],
65447:[[
12599],
256],
65448:[[
12600],
256],
65449:[[
12601],
256],
65450:[[
12602],
256],
65451:[[
12603],
256],
65452:[[
12604],
256],
65453:[[
12605],
256],
65454:[[
12606],
256],
65455:[[
12607],
256],
65456:[[
12608],
256],
65457:[[
12609],
256],
65458:[[
12610],
256],
65459:[[
12611],
256],
65460:[[
12612],
256],
65461:[[
12613],
256],
65462:[[
12614],
256],
65463:[[
12615],
256],
65464:[[
12616],
256],
65465:[[
12617],
256],
65466:[[
12618],
256],
65467:[[
12619],
256],
65468:[[
12620],
256],
65469:[[
12621],
256],
65470:[[
12622],
256],
65474:[[
12623],
256],
65475:[[
12624],
256],
65476:[[
12625],
256],
65477:[[
12626],
256],
65478:[[
12627],
256],
65479:[[
12628],
256],
65482:[[
12629],
256],
65483:[[
12630],
256],
65484:[[
12631],
256],
65485:[[
12632],
256],
65486:[[
12633],
256],
65487:[[
12634],
256],
65490:[[
12635],
256],
65491:[[
12636],
256],
65492:[[
12637],
256],
65493:[[
12638],
256],
65494:[[
12639],
256],
65495:[[
12640],
256],
65498:[[
12641],
256],
65499:[[
12642],
256],
65500:[[
12643],
256],
65504:[[
162],
256],
65505:[[
163],
256],
65506:[[
172],
256],
65507:[[
175],
256],
65508:[[
166],
256],
65509:[[
165],
256],
65510:[[
8361],
256],
65512:[[
9474],
256],
65513:[[
8592],
256],
65514:[[
8593],
256],
65515:[[
8594],
256],
65516:[[
8595],
256],
65517:[[
9632],
256],
65518:[[
9675],
256]}
6863 /***** Module to export */
6871 /*globals module:true,define:true*/
6874 if (typeof module ===
"object") {
6875 module.exports = unorm;
6878 } else if (typeof define ===
"function" && define.amd) {
6879 define(
"unorm", function () {
6888 /***** Export as shim for String::normalize method *****/
6890 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
6892 21.1.3.12 String.prototype.normalize(
form=
"NFC")
6893 When the normalize method is called with one argument form, the following steps are taken:
6895 1. Let O be CheckObjectCoercible(this value).
6896 2. Let S be ToString(O).
6897 3. ReturnIfAbrupt(S).
6898 4. If form is not provided or undefined let form be
"NFC".
6899 5. Let f be ToString(form).
6900 6. ReturnIfAbrupt(f).
6901 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
6902 8. Let ns be the String value is the result of normalizing S into the normalization form named by f as specified in Unicode Standard Annex #
15, UnicodeNormalizatoin Forms.
6905 The length property of the normalize method is
0.
6907 *NOTE* The normalize function is intentionally generic; it does not require that its this value be a String object. Therefore it can be transferred to other kinds of objects for use as a method.
6909 unorm.shimApplied = false;
6911 if (!String.prototype.normalize) {
6912 String.prototype.normalize = function(form) {
6913 var str =
"" + this;
6914 form = form === undefined ?
"NFC" : form;
6916 if (form ===
"NFC") {
6917 return unorm.nfc(str);
6918 } else if (form ===
"NFD") {
6919 return unorm.nfd(str);
6920 } else if (form ===
"NFKC") {
6921 return unorm.nfkc(str);
6922 } else if (form ===
"NFKD") {
6923 return unorm.nfkd(str);
6925 throw new RangeError(
"Invalid normalization form: " + form);
6929 unorm.shimApplied = true;
6933 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
6934 !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)
6935 },_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))
6936 },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});
6939 * Bootstrap v3.2.0 (http://getbootstrap.com)
6940 * Copyright 2011-2014 Twitter, Inc.
6941 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6943 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>
6944 <script>(function() {
6948 * Extend an Object with another Object's properties.
6950 * The source objects are specified as additional arguments.
6952 * @param dst Object the object to extend.
6954 * @return Object the final object.
6956 var _extend = function(dst) {
6957 var sources = Array.prototype.slice.call(arguments,
1);
6958 for (var i=
0; i
<sources.length; ++i) {
6959 var src = sources[i];
6960 for (var p in src) {
6961 if (src.hasOwnProperty(p)) dst[p] = src[p];
6969 * Defer execution of given function.
6970 * @param {Function} func
6972 var _defer = function(func) {
6973 if (typeof setImmediate === 'function') {
6974 return setImmediate(func);
6976 return setTimeout(func,
0);
6981 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
6985 * Calculate levenshtein distance of the two strings.
6987 * @param str1 String the first string.
6988 * @param str2 String the second string.
6989 * @return Integer the levenshtein distance (
0 and above).
6991 get: function(str1, str2) {
6993 if (str1 === str2) return
0;
6994 if (str1.length ===
0) return str2.length;
6995 if (str2.length ===
0) return str1.length;
6998 var prevRow = new Array(str2.length +
1),
6999 curCol, nextCol, i, j, tmp;
7001 // initialise previous row
7002 for (i=
0; i
<prevRow.length; ++i) {
7006 // calculate current row distance from previous row
7007 for (i=
0; i
<str1.length; ++i) {
7010 for (j=
0; j
<str2.length; ++j) {
7014 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7017 if (nextCol
> tmp) {
7021 tmp = prevRow[j +
1] +
1;
7022 if (nextCol
> tmp) {
7026 // copy current col value into previous (in preparation for next iteration)
7027 prevRow[j] = curCol;
7030 // copy last col value into previous (in preparation for next iteration)
7031 prevRow[j] = nextCol;
7038 * Asynchronously calculate levenshtein distance of the two strings.
7040 * @param str1 String the first string.
7041 * @param str2 String the second string.
7042 * @param cb Function callback function with signature: function(Error err, int distance)
7043 * @param [options] Object additional options.
7044 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7046 getAsync: function(str1, str2, cb, options) {
7047 options = _extend({}, {
7052 if (str1 === str2) return cb(null,
0);
7053 if (str1.length ===
0) return cb(null, str2.length);
7054 if (str2.length ===
0) return cb(null, str1.length);
7057 var prevRow = new Array(str2.length +
1),
7060 startTime, currentTime;
7062 // initialise previous row
7063 for (i=
0; i
<prevRow.length; ++i) {
7071 var __calculate = function() {
7073 startTime = new Date().valueOf();
7074 currentTime = startTime;
7076 // keep going until one second has elapsed
7077 while (currentTime - startTime <
1000) {
7078 // reached end of current row?
7079 if (str2.length <= (++j)) {
7080 // copy current into previous (in preparation for next iteration)
7081 prevRow[j] = nextCol;
7083 // if already done all chars
7084 if (str1.length <= (++i)) {
7085 return cb(null, nextCol);
7087 // else if we have more left to do
7098 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7101 if (nextCol
> tmp) {
7105 tmp = prevRow[j +
1] +
1;
7106 if (nextCol
> tmp) {
7110 // copy current into previous (in preparation for next iteration)
7111 prevRow[j] = curCol;
7114 currentTime = new Date().valueOf();
7117 // send a progress update?
7118 if (null !== options.progress) {
7120 options.progress.call(null, (i *
100.0/ str1.length));
7122 return cb('Progress callback: ' + err.toString());
7127 _defer(__calculate);
7136 if (typeof define !== "undefined" && define !== null && define.amd) {
7142 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7143 module.exports = Levenshtein;
7146 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7147 self.Levenshtein = Levenshtein;
7149 // browser main thread
7150 else if (typeof window !== "undefined" && window !== null) {
7151 window.Levenshtein = Levenshtein;
7156 <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},
7157 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;
7158 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-
7159 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]=
7160 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},
7161 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=
7162 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-
7163 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,
7164 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=
7165 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&&
7166 (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,
7167 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)-
7168 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:"+
7169 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:"+
7170 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+
7171 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),
7172 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>
7173 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],
7174 [
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,
7175 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,
7176 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,
7177 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,
7178 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,
7179 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*
7180 (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,
7181 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),
7182 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",
7183 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7185 <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){
7186 // (public) Constructor
7187 function BigInteger(a, b, c) {
7188 if (!(this instanceof BigInteger))
7189 return new BigInteger(a, b, c)
7192 if (
"number" == typeof a) this.fromNumber(a, b, c)
7193 else if (b == null &&
"string" != typeof a) this.fromString(a,
256)
7194 else this.fromString(a, b)
7198 var proto = BigInteger.prototype
7200 // duck-typed isBigInteger
7201 proto.__bigi = require('../package.json').version
7202 BigInteger.isBigInteger = function (obj, check_ver) {
7203 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
7209 // am: Compute w_j += (x*this_i), propagate carries,
7210 // c is initial carry, returns final carry.
7211 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
7212 // We need to select the fastest one that works in this environment.
7214 // am1: use a single mult and divide to get the high bits,
7215 // max digit bits should be
26 because
7216 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
7217 function am1(i, x, w, j, c, n) {
7219 var v = x * this[i++] + w[j] + c
7220 c = Math.floor(v /
0x4000000)
7221 w[j++] = v &
0x3ffffff
7225 // am2 avoids a big mult-and-extract completely.
7226 // Max digit bits should be <=
30 because we do bitwise ops
7227 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
7228 function am2(i, x, w, j, c, n) {
7229 var xl = x &
0x7fff,
7232 var l = this[i] &
0x7fff
7233 var h = this[i++]
>> 15
7234 var m = xh * l + h * xl
7235 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
7236 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
7237 w[j++] = l &
0x3fffffff
7241 // Alternately, set max digit bits to
28 since some
7242 // browsers slow down when dealing with
32-bit numbers.
7243 function am3(i, x, w, j, c, n) {
7244 var xl = x &
0x3fff,
7247 var l = this[i] &
0x3fff
7248 var h = this[i++]
>> 14
7249 var m = xh * l + h * xl
7250 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
7251 c = (l
>> 28) + (m
>> 14) + xh * h
7252 w[j++] = l &
0xfffffff
7258 BigInteger.prototype.am = am1
7261 BigInteger.prototype.DB = dbits
7262 BigInteger.prototype.DM = ((
1 << dbits) -
1)
7263 var DV = BigInteger.prototype.DV = (
1 << dbits)
7266 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
7267 BigInteger.prototype.F1 = BI_FP - dbits
7268 BigInteger.prototype.F2 =
2 * dbits - BI_FP
7270 // Digit conversions
7271 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
7272 var BI_RC = new Array()
7274 rr =
"0".charCodeAt(
0)
7275 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
7276 rr =
"a".charCodeAt(
0)
7277 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
7278 rr =
"A".charCodeAt(
0)
7279 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
7281 function int2char(n) {
7282 return BI_RM.charAt(n)
7285 function intAt(s, i) {
7286 var c = BI_RC[s.charCodeAt(i)]
7287 return (c == null) ? -
1 : c
7290 // (protected) copy this to r
7291 function bnpCopyTo(r) {
7292 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
7297 // (protected) set from integer value x, -DV <= x < DV
7298 function bnpFromInt(x) {
7300 this.s = (x <
0) ? -
1 :
0
7301 if (x
> 0) this[
0] = x
7302 else if (x < -
1) this[
0] = x + DV
7306 // return bigint initialized to value
7308 var r = new BigInteger()
7313 // (protected) set from string and radix
7314 function bnpFromString(s, b) {
7319 else if (b ==
8) k =
3
7320 else if (b ==
256) k =
8; // byte array
7321 else if (b ==
2) k =
1
7322 else if (b ==
32) k =
5
7323 else if (b ==
4) k =
2
7325 self.fromRadix(s, b)
7334 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
7336 if (s.charAt(i) == "-") mi = true
7342 else if (sh + k
> self.DB) {
7343 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
7344 self[self.t++] = (x
>> (self.DB - sh))
7346 self[self.t -
1] |= x << sh
7348 if (sh
>= self.DB) sh -= self.DB
7350 if (k ==
8 && (s[
0] &
0x80) !=
0) {
7352 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
7355 if (mi) BigInteger.ZERO.subTo(self, self)
7358 // (protected) clamp off excess high words
7359 function bnpClamp() {
7360 var c = this.s & this.DM
7361 while (this.t
> 0 && this[this.t -
1] == c)--this.t
7364 // (public) return string representation in given radix
7365 function bnToString(b) {
7367 if (self.s <
0) return
"-" + self.negate()
7371 else if (b ==
8) k =
3
7372 else if (b ==
2) k =
1
7373 else if (b ==
32) k =
5
7374 else if (b ==
4) k =
2
7375 else return self.toRadix(b)
7376 var km = (
1 << k) -
1,
7380 var p = self.DB - (i * self.DB) % k
7382 if (p < self.DB && (d = self[i]
>> p)
> 0) {
7388 d = (self[i] & ((
1 << p) -
1)) << (k - p)
7389 d |= self[--i]
>> (p += self.DB - k)
7391 d = (self[i]
>> (p -= k)) & km
7398 if (m) r += int2char(d)
7405 function bnNegate() {
7406 var r = new BigInteger()
7407 BigInteger.ZERO.subTo(this, r)
7413 return (this.s <
0) ? this.negate() : this
7416 // (public) return + if this
> a, - if this < a,
0 if equal
7417 function bnCompareTo(a) {
7418 var r = this.s - a.s
7419 if (r !=
0) return r
7422 if (r !=
0) return (this.s <
0) ? -r : r
7424 if ((r = this[i] - a[i]) !=
0) return r
7428 // returns bit length of the integer x
7432 if ((t = x
>>> 16) !=
0) {
7436 if ((t = x
>> 8) !=
0) {
7440 if ((t = x
>> 4) !=
0) {
7444 if ((t = x
>> 2) !=
0) {
7448 if ((t = x
>> 1) !=
0) {
7455 // (public) return the number of bits in
"this"
7456 function bnBitLength() {
7457 if (this.t <=
0) return
0
7458 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
7461 // (public) return the number of bytes in
"this"
7462 function bnByteLength() {
7463 return this.bitLength()
>> 3
7466 // (protected) r = this << n*DB
7467 function bnpDLShiftTo(n, r) {
7469 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
7470 for (i = n -
1; i
>=
0; --i) r[i] =
0
7475 // (protected) r = this
>> n*DB
7476 function bnpDRShiftTo(n, r) {
7477 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
7478 r.t = Math.max(this.t - n,
0)
7482 // (protected) r = this << n
7483 function bnpLShiftTo(n, r) {
7485 var bs = n % self.DB
7486 var cbs = self.DB - bs
7487 var bm = (
1 << cbs) -
1
7488 var ds = Math.floor(n / self.DB),
7489 c = (self.s << bs) & self.DM,
7491 for (i = self.t -
1; i
>=
0; --i) {
7492 r[i + ds +
1] = (self[i]
>> cbs) | c
7493 c = (self[i] & bm) << bs
7495 for (i = ds -
1; i
>=
0; --i) r[i] =
0
7497 r.t = self.t + ds +
1
7502 // (protected) r = this
>> n
7503 function bnpRShiftTo(n, r) {
7506 var ds = Math.floor(n / self.DB)
7511 var bs = n % self.DB
7512 var cbs = self.DB - bs
7513 var bm = (
1 << bs) -
1
7514 r[
0] = self[ds]
>> bs
7515 for (var i = ds +
1; i < self.t; ++i) {
7516 r[i - ds -
1] |= (self[i] & bm) << cbs
7517 r[i - ds] = self[i]
>> bs
7519 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
7524 // (protected) r = this - a
7525 function bnpSubTo(a, r) {
7529 m = Math.min(a.t, self.t)
7532 r[i++] = c & self.DM
7537 while (i < self.t) {
7539 r[i++] = c & self.DM
7547 r[i++] = c & self.DM
7552 r.s = (c <
0) ? -
1 :
0
7553 if (c < -
1) r[i++] = self.DV + c
7554 else if (c
> 0) r[i++] = c
7559 // (protected) r = this * a, r != this,a (HAC
14.12)
7560 //
"this" should be the larger one if appropriate.
7561 function bnpMultiplyTo(a, r) {
7566 while (--i
>=
0) r[i] =
0
7567 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
7570 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
7573 // (protected) r = this^
2, r != this (HAC
14.16)
7574 function bnpSquareTo(r) {
7576 var i = r.t =
2 * x.t
7577 while (--i
>=
0) r[i] =
0
7578 for (i =
0; i < x.t -
1; ++i) {
7579 var c = x.am(i, x[i], r,
2 * i,
0,
1)
7580 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
7585 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
7590 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
7591 // r != q, this != m. q or r may be null.
7592 function bnpDivRemTo(m, q, r) {
7595 if (pm.t <=
0) return
7598 if (q != null) q.fromInt(
0)
7599 if (r != null) self.copyTo(r)
7602 if (r == null) r = new BigInteger()
7603 var y = new BigInteger(),
7606 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
7617 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
7618 var d1 = self.FV / yt,
7619 d2 = (
1 << self.F1) / yt,
7623 t = (q == null) ? new BigInteger() : q
7625 if (r.compareTo(t)
>=
0) {
7629 BigInteger.ONE.dlShiftTo(ys, t)
7630 t.subTo(y, y); // "negative" y so we can replace sub with am later
7631 while (y.t < ys) y[y.t++] =
0
7633 // Estimate quotient digit
7634 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
7635 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
7638 while (r[i] < --qd) r.subTo(t, r)
7643 if (ts != ms) BigInteger.ZERO.subTo(q, q)
7647 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
7648 if (ts <
0) BigInteger.ZERO.subTo(r, r)
7651 // (public) this mod a
7653 var r = new BigInteger()
7655 .divRemTo(a, null, r)
7656 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
7660 // Modular reduction using
"classic" algorithm
7661 function Classic(m) {
7665 function cConvert(x) {
7666 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
7670 function cRevert(x) {
7674 function cReduce(x) {
7675 x.divRemTo(this.m, null, x)
7678 function cMulTo(x, y, r) {
7683 function cSqrTo(x, r) {
7688 Classic.prototype.convert = cConvert
7689 Classic.prototype.revert = cRevert
7690 Classic.prototype.reduce = cReduce
7691 Classic.prototype.mulTo = cMulTo
7692 Classic.prototype.sqrTo = cSqrTo
7694 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
7698 // xy(
2-xy) = (
1+km)(
1-km)
7699 // x[y(
2-xy)] =
1-k^
2m^
2
7700 // x[y(
2-xy)] ==
1 (mod m^
2)
7701 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
7702 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
7703 // JS multiply "overflows" differently from C/C++, so care is needed here.
7704 function bnpInvDigit() {
7705 if (this.t <
1) return
0
7707 if ((x &
1) ==
0) return
0
7708 var y = x &
3; // y ==
1/x mod
2^
2
7709 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
7710 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
7711 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
7712 // last step - calculate inverse mod DV directly
7713 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
7714 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
7715 // we really want the negative inverse, and -DV < y < DV
7716 return (y
> 0) ? this.DV - y : -y
7719 // Montgomery reduction
7720 function Montgomery(m) {
7722 this.mp = m.invDigit()
7723 this.mpl = this.mp &
0x7fff
7724 this.mph = this.mp
>> 15
7725 this.um = (
1 << (m.DB -
15)) -
1
7730 function montConvert(x) {
7731 var r = new BigInteger()
7733 .dlShiftTo(this.m.t, r)
7734 r.divRemTo(this.m, null, r)
7735 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
7740 function montRevert(x) {
7741 var r = new BigInteger()
7747 // x = x/R mod m (HAC
14.32)
7748 function montReduce(x) {
7749 while (x.t <= this.mt2) // pad x so am has enough room later
7751 for (var i =
0; i < this.m.t; ++i) {
7752 // faster way of calculating u0 = x[i]*mp mod DV
7753 var j = x[i] &
0x7fff
7754 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
7755 // use am to combine the multiply-shift-add into one call
7757 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
7759 while (x[j]
>= x.DV) {
7765 x.drShiftTo(this.m.t, x)
7766 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
7769 // r = "x^
2/R mod m"; x != r
7770 function montSqrTo(x, r) {
7775 // r = "xy/R mod m"; x,y != r
7776 function montMulTo(x, y, r) {
7781 Montgomery.prototype.convert = montConvert
7782 Montgomery.prototype.revert = montRevert
7783 Montgomery.prototype.reduce = montReduce
7784 Montgomery.prototype.mulTo = montMulTo
7785 Montgomery.prototype.sqrTo = montSqrTo
7787 // (protected) true iff this is even
7788 function bnpIsEven() {
7789 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
7792 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
7793 function bnpExp(e, z) {
7794 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
7795 var r = new BigInteger(),
7796 r2 = new BigInteger(),
7797 g = z.convert(this),
7802 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
7812 // (public) this^e % m,
0 <= e <
2^
32
7813 function bnModPowInt(e, m) {
7815 if (e <
256 || m.isEven()) z = new Classic(m)
7816 else z = new Montgomery(m)
7817 return this.exp(e, z)
7821 proto.copyTo = bnpCopyTo
7822 proto.fromInt = bnpFromInt
7823 proto.fromString = bnpFromString
7824 proto.clamp = bnpClamp
7825 proto.dlShiftTo = bnpDLShiftTo
7826 proto.drShiftTo = bnpDRShiftTo
7827 proto.lShiftTo = bnpLShiftTo
7828 proto.rShiftTo = bnpRShiftTo
7829 proto.subTo = bnpSubTo
7830 proto.multiplyTo = bnpMultiplyTo
7831 proto.squareTo = bnpSquareTo
7832 proto.divRemTo = bnpDivRemTo
7833 proto.invDigit = bnpInvDigit
7834 proto.isEven = bnpIsEven
7838 proto.toString = bnToString
7839 proto.negate = bnNegate
7841 proto.compareTo = bnCompareTo
7842 proto.bitLength = bnBitLength
7843 proto.byteLength = bnByteLength
7845 proto.modPowInt = bnModPowInt
7848 function bnClone() {
7849 var r = new BigInteger()
7854 // (public) return value as integer
7855 function bnIntValue() {
7857 if (this.t ==
1) return this[
0] - this.DV
7858 else if (this.t ==
0) return -
1
7859 } else if (this.t ==
1) return this[
0]
7860 else if (this.t ==
0) return
0
7861 // assumes
16 < DB <
32
7862 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
7865 // (public) return value as byte
7866 function bnByteValue() {
7867 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
7870 // (public) return value as short (assumes DB
>=
16)
7871 function bnShortValue() {
7872 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
7875 // (protected) return x s.t. r^x < DV
7876 function bnpChunkSize(r) {
7877 return Math.floor(Math.LN2 * this.DB / Math.log(r))
7880 // (public)
0 if this ==
0,
1 if this
> 0
7881 function bnSigNum() {
7882 if (this.s <
0) return -
1
7883 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
7887 // (protected) convert to radix string
7888 function bnpToRadix(b) {
7889 if (b == null) b =
10
7890 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
7891 var cs = this.chunkSize(b)
7892 var a = Math.pow(b, cs)
7894 y = new BigInteger(),
7895 z = new BigInteger(),
7897 this.divRemTo(d, y, z)
7898 while (y.signum()
> 0) {
7899 r = (a + z.intValue())
7908 // (protected) convert from radix string
7909 function bnpFromRadix(s, b) {
7912 if (b == null) b =
10
7913 var cs = self.chunkSize(b)
7914 var d = Math.pow(b, cs),
7918 for (var i =
0; i < s.length; ++i) {
7921 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
7927 self.dAddOffset(w,
0)
7933 self.dMultiply(Math.pow(b, j))
7934 self.dAddOffset(w,
0)
7936 if (mi) BigInteger.ZERO.subTo(self, self)
7939 // (protected) alternate constructor
7940 function bnpFromNumber(a, b, c) {
7942 if (
"number" == typeof b) {
7943 // new BigInteger(int,int,RNG)
7944 if (a <
2) self.fromInt(
1)
7946 self.fromNumber(a, c)
7947 if (!self.testBit(a -
1)) // force MSB set
7948 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
7949 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
7950 while (!self.isProbablePrime(b)) {
7951 self.dAddOffset(
2,
0)
7952 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
7956 // new BigInteger(int,RNG)
7957 var x = new Array(),
7959 x.length = (a
>> 3) +
1
7961 if (t
> 0) x[
0] &= ((
1 << t) -
1)
7963 self.fromString(x,
256)
7967 // (public) convert to bigendian byte array
7968 function bnToByteArray() {
7973 var p = self.DB - (i * self.DB) %
8,
7976 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
7977 r[k++] = d | (self.s << (self.DB - p))
7980 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
7981 d |= self[--i]
>> (p += self.DB -
8)
7983 d = (self[i]
>> (p -=
8)) &
0xff
7989 if ((d &
0x80) !=
0) d |= -
256
7990 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
7991 if (k
> 0 || d != self.s) r[k++] = d
7997 function bnEquals(a) {
7998 return (this.compareTo(a) ==
0)
8002 return (this.compareTo(a) <
0) ? this : a
8006 return (this.compareTo(a)
> 0) ? this : a
8009 // (protected) r = this op a (bitwise)
8010 function bnpBitwiseTo(a, op, r) {
8012 var i, f, m = Math.min(a.t, self.t)
8013 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
8016 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
8019 f = self.s & self.DM
8020 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
8023 r.s = op(self.s, a.s)
8027 // (public) this & a
8028 function op_and(x, y) {
8033 var r = new BigInteger()
8034 this.bitwiseTo(a, op_and, r)
8038 // (public) this | a
8039 function op_or(x, y) {
8044 var r = new BigInteger()
8045 this.bitwiseTo(a, op_or, r)
8049 // (public) this ^ a
8050 function op_xor(x, y) {
8055 var r = new BigInteger()
8056 this.bitwiseTo(a, op_xor, r)
8060 // (public) this & ~a
8061 function op_andnot(x, y) {
8065 function bnAndNot(a) {
8066 var r = new BigInteger()
8067 this.bitwiseTo(a, op_andnot, r)
8073 var r = new BigInteger()
8074 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
8080 // (public) this << n
8081 function bnShiftLeft(n) {
8082 var r = new BigInteger()
8083 if (n <
0) this.rShiftTo(-n, r)
8084 else this.lShiftTo(n, r)
8088 // (public) this
>> n
8089 function bnShiftRight(n) {
8090 var r = new BigInteger()
8091 if (n <
0) this.lShiftTo(-n, r)
8092 else this.rShiftTo(n, r)
8096 // return index of lowest
1-bit in x, x <
2^
31
8098 if (x ==
0) return -
1
8100 if ((x &
0xffff) ==
0) {
8104 if ((x &
0xff) ==
0) {
8108 if ((x &
0xf) ==
0) {
8116 if ((x &
1) ==
0)++r
8120 // (public) returns index of lowest
1-bit (or -
1 if none)
8121 function bnGetLowestSetBit() {
8122 for (var i =
0; i < this.t; ++i)
8123 if (this[i] !=
0) return i * this.DB + lbit(this[i])
8124 if (this.s <
0) return this.t * this.DB
8128 // return number of
1 bits in x
8138 // (public) return number of set bits
8139 function bnBitCount() {
8141 x = this.s & this.DM
8142 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
8146 // (public) true iff nth bit is set
8147 function bnTestBit(n) {
8148 var j = Math.floor(n / this.DB)
8149 if (j
>= this.t) return (this.s !=
0)
8150 return ((this[j] & (
1 << (n % this.DB))) !=
0)
8153 // (protected) this op (
1<
<n)
8154 function bnpChangeBit(n, op) {
8155 var r = BigInteger.ONE.shiftLeft(n)
8156 this.bitwiseTo(r, op, r)
8160 // (public) this | (
1<
<n)
8161 function bnSetBit(n) {
8162 return this.changeBit(n, op_or)
8165 // (public) this & ~(
1<
<n)
8166 function bnClearBit(n) {
8167 return this.changeBit(n, op_andnot)
8170 // (public) this ^ (
1<
<n)
8171 function bnFlipBit(n) {
8172 return this.changeBit(n, op_xor)
8175 // (protected) r = this + a
8176 function bnpAddTo(a, r) {
8181 m = Math.min(a.t, self.t)
8184 r[i++] = c & self.DM
8189 while (i < self.t) {
8191 r[i++] = c & self.DM
8199 r[i++] = c & self.DM
8204 r.s = (c <
0) ? -
1 :
0
8205 if (c
> 0) r[i++] = c
8206 else if (c < -
1) r[i++] = self.DV + c
8211 // (public) this + a
8213 var r = new BigInteger()
8218 // (public) this - a
8219 function bnSubtract(a) {
8220 var r = new BigInteger()
8225 // (public) this * a
8226 function bnMultiply(a) {
8227 var r = new BigInteger()
8228 this.multiplyTo(a, r)
8233 function bnSquare() {
8234 var r = new BigInteger()
8239 // (public) this / a
8240 function bnDivide(a) {
8241 var r = new BigInteger()
8242 this.divRemTo(a, r, null)
8246 // (public) this % a
8247 function bnRemainder(a) {
8248 var r = new BigInteger()
8249 this.divRemTo(a, null, r)
8253 // (public) [this/a,this%a]
8254 function bnDivideAndRemainder(a) {
8255 var q = new BigInteger(),
8256 r = new BigInteger()
8257 this.divRemTo(a, q, r)
8258 return new Array(q, r)
8261 // (protected) this *= n, this
>=
0,
1 < n < DV
8262 function bnpDMultiply(n) {
8263 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
8268 // (protected) this += n << w words, this
>=
0
8269 function bnpDAddOffset(n, w) {
8271 while (this.t <= w) this[this.t++] =
0
8273 while (this[w]
>= this.DV) {
8275 if (++w
>= this.t) this[this.t++] =
0
8281 function NullExp() {}
8287 function nMulTo(x, y, r) {
8291 function nSqrTo(x, r) {
8295 NullExp.prototype.convert = nNop
8296 NullExp.prototype.revert = nNop
8297 NullExp.prototype.mulTo = nMulTo
8298 NullExp.prototype.sqrTo = nSqrTo
8302 return this.exp(e, new NullExp())
8305 // (protected) r = lower n words of "this * a", a.t <= n
8306 // "this" should be the larger one if appropriate.
8307 function bnpMultiplyLowerTo(a, n, r) {
8308 var i = Math.min(this.t + a.t, n)
8309 r.s =
0; // assumes a,this
>=
0
8311 while (i
> 0) r[--i] =
0
8313 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
8314 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
8318 // (protected) r =
"this * a" without lower n words, n
> 0
8319 //
"this" should be the larger one if appropriate.
8320 function bnpMultiplyUpperTo(a, n, r) {
8322 var i = r.t = this.t + a.t - n
8323 r.s =
0; // assumes a,this
>=
0
8324 while (--i
>=
0) r[i] =
0
8325 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
8326 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
8331 // Barrett modular reduction
8332 function Barrett(m) {
8334 this.r2 = new BigInteger()
8335 this.q3 = new BigInteger()
8336 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
8337 this.mu = this.r2.divide(m)
8341 function barrettConvert(x) {
8342 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
8343 else if (x.compareTo(this.m) <
0) return x
8345 var r = new BigInteger()
8352 function barrettRevert(x) {
8356 // x = x mod m (HAC
14.42)
8357 function barrettReduce(x) {
8359 x.drShiftTo(self.m.t -
1, self.r2)
8360 if (x.t
> self.m.t +
1) {
8364 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
8365 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
8366 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
8368 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
8371 // r = x^
2 mod m; x != r
8372 function barrettSqrTo(x, r) {
8377 // r = x*y mod m; x,y != r
8378 function barrettMulTo(x, y, r) {
8383 Barrett.prototype.convert = barrettConvert
8384 Barrett.prototype.revert = barrettRevert
8385 Barrett.prototype.reduce = barrettReduce
8386 Barrett.prototype.mulTo = barrettMulTo
8387 Barrett.prototype.sqrTo = barrettSqrTo
8389 // (public) this^e % m (HAC
14.85)
8390 function bnModPow(e, m) {
8391 var i = e.bitLength(),
8394 if (i <=
0) return r
8395 else if (i <
18) k =
1
8396 else if (i <
48) k =
3
8397 else if (i <
144) k =
4
8398 else if (i <
768) k =
5
8402 else if (m.isEven())
8405 z = new Montgomery(m)
8408 var g = new Array(),
8412 g[
1] = z.convert(this)
8414 var g2 = new BigInteger()
8417 g[n] = new BigInteger()
8418 z.mulTo(g2, g[n -
2], g[n])
8425 r2 = new BigInteger(),
8429 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
8431 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
8432 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
8436 while ((w &
1) ==
0) {
8444 if (is1) { // ret ==
1, don't bother squaring or multiplying it
8453 if (n
> 0) z.sqrTo(r, r2)
8459 z.mulTo(r2, g[w], r)
8462 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
8476 // (public) gcd(this,a) (HAC
14.54)
8478 var x = (this.s <
0) ? this.negate() : this.clone()
8479 var y = (a.s <
0) ? a.negate() : a.clone()
8480 if (x.compareTo(y) <
0) {
8485 var i = x.getLowestSetBit(),
8486 g = y.getLowestSetBit()
8493 while (x.signum()
> 0) {
8494 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
8495 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
8496 if (x.compareTo(y)
>=
0) {
8504 if (g
> 0) y.lShiftTo(g, y)
8508 // (protected) this % n, n <
2^
26
8509 function bnpModInt(n) {
8510 if (n <=
0) return
0
8511 var d = this.DV % n,
8512 r = (this.s <
0) ? n -
1 :
0
8514 if (d ==
0) r = this[
0] % n
8516 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
8520 // (public)
1/this % m (HAC
14.61)
8521 function bnModInverse(m) {
8523 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
8530 while (u.signum() !=
0) {
8531 while (u.isEven()) {
8534 if (!a.isEven() || !b.isEven()) {
8539 } else if (!b.isEven()) b.subTo(m, b)
8542 while (v.isEven()) {
8545 if (!c.isEven() || !d.isEven()) {
8550 } else if (!d.isEven()) d.subTo(m, d)
8553 if (u.compareTo(v)
>=
0) {
8555 if (ac) a.subTo(c, a)
8559 if (ac) c.subTo(a, c)
8563 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
8564 if (d.compareTo(m)
>=
0) return d.subtract(m)
8565 if (d.signum() <
0) d.addTo(m, d)
8567 if (d.signum() <
0) return d.add(m)
8572 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
8573 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
8574 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
8575 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
8576 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
8577 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
8578 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
8579 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
8580 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
8581 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
8582 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
8585 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
8587 // (public) test primality with certainty
>=
1-
.5^t
8588 function bnIsProbablePrime(t) {
8589 var i, x = this.abs()
8590 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
8591 for (i =
0; i < lowprimes.length; ++i)
8592 if (x[
0] == lowprimes[i]) return true
8595 if (x.isEven()) return false
8597 while (i < lowprimes.length) {
8598 var m = lowprimes[i],
8600 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
8602 while (i < j) if (m % lowprimes[i++] ==
0) return false
8604 return x.millerRabin(t)
8607 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
8608 function bnpMillerRabin(t) {
8609 var n1 = this.subtract(BigInteger.ONE)
8610 var k = n1.getLowestSetBit()
8611 if (k <=
0) return false
8612 var r = n1.shiftRight(k)
8614 if (t
> lowprimes.length) t = lowprimes.length
8615 var a = new BigInteger(null)
8617 for (var i =
0; i < t; ++i) {
8619 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
8620 if (bases.indexOf(j) == -
1) break
8624 var y = a.modPow(r, this)
8625 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
8627 while (j++ < k && y.compareTo(n1) !=
0) {
8628 y = y.modPowInt(
2, this)
8629 if (y.compareTo(BigInteger.ONE) ==
0) return false
8631 if (y.compareTo(n1) !=
0) return false
8638 proto.chunkSize = bnpChunkSize
8639 proto.toRadix = bnpToRadix
8640 proto.fromRadix = bnpFromRadix
8641 proto.fromNumber = bnpFromNumber
8642 proto.bitwiseTo = bnpBitwiseTo
8643 proto.changeBit = bnpChangeBit
8644 proto.addTo = bnpAddTo
8645 proto.dMultiply = bnpDMultiply
8646 proto.dAddOffset = bnpDAddOffset
8647 proto.multiplyLowerTo = bnpMultiplyLowerTo
8648 proto.multiplyUpperTo = bnpMultiplyUpperTo
8649 proto.modInt = bnpModInt
8650 proto.millerRabin = bnpMillerRabin
8653 proto.clone = bnClone
8654 proto.intValue = bnIntValue
8655 proto.byteValue = bnByteValue
8656 proto.shortValue = bnShortValue
8657 proto.signum = bnSigNum
8658 proto.toByteArray = bnToByteArray
8659 proto.equals = bnEquals
8665 proto.andNot = bnAndNot
8667 proto.shiftLeft = bnShiftLeft
8668 proto.shiftRight = bnShiftRight
8669 proto.getLowestSetBit = bnGetLowestSetBit
8670 proto.bitCount = bnBitCount
8671 proto.testBit = bnTestBit
8672 proto.setBit = bnSetBit
8673 proto.clearBit = bnClearBit
8674 proto.flipBit = bnFlipBit
8676 proto.subtract = bnSubtract
8677 proto.multiply = bnMultiply
8678 proto.divide = bnDivide
8679 proto.remainder = bnRemainder
8680 proto.divideAndRemainder = bnDivideAndRemainder
8681 proto.modPow = bnModPow
8682 proto.modInverse = bnModInverse
8685 proto.isProbablePrime = bnIsProbablePrime
8687 // JSBN-specific extension
8688 proto.square = bnSquare
8691 BigInteger.ZERO = nbv(
0)
8692 BigInteger.ONE = nbv(
1)
8693 BigInteger.valueOf = nbv
8695 module.exports = BigInteger
8697 },{"../package.json":
4}],
2:[function(require,module,exports){
8699 // FIXME: Kind of a weird way to throw exceptions, consider removing
8700 var assert = require('assert')
8701 var BigInteger = require('./bigi')
8704 * Turns a byte array into a big integer.
8706 * This function will interpret a byte array as a big integer in big
8709 BigInteger.fromByteArrayUnsigned = function(byteArray) {
8710 // BigInteger expects a DER integer conformant byte array
8711 if (byteArray[
0] &
0x80) {
8712 return new BigInteger([
0].concat(byteArray))
8715 return new BigInteger(byteArray)
8719 * Returns a byte array representation of the big integer.
8721 * This returns the absolute of the contained value in big endian
8722 * form. A value of zero results in an empty array.
8724 BigInteger.prototype.toByteArrayUnsigned = function() {
8725 var byteArray = this.toByteArray()
8726 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
8729 BigInteger.fromDERInteger = function(byteArray) {
8730 return new BigInteger(byteArray)
8734 * Converts BigInteger to a DER integer representation.
8736 * The format for this value uses the most significant bit as a sign
8737 * bit. If the most significant bit is already set and the integer is
8738 * positive, a
0x00 is prepended.
8754 * -
62300 =
> 0xff0ca4
8756 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
8758 BigInteger.fromBuffer = function(buffer) {
8759 // BigInteger expects a DER integer conformant byte array
8760 if (buffer[
0] &
0x80) {
8761 var byteArray = Array.prototype.slice.call(buffer)
8763 return new BigInteger([
0].concat(byteArray))
8766 return new BigInteger(buffer)
8769 BigInteger.fromHex = function(hex) {
8770 if (hex === '') return BigInteger.ZERO
8772 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
8773 assert.equal(hex.length %
2,
0, 'Incomplete hex')
8774 return new BigInteger(hex,
16)
8777 BigInteger.prototype.toBuffer = function(size) {
8778 var byteArray = this.toByteArrayUnsigned()
8781 var padding = size - byteArray.length
8782 while (zeros.length < padding) zeros.push(
0)
8784 return new Buffer(zeros.concat(byteArray))
8787 BigInteger.prototype.toHex = function(size) {
8788 return this.toBuffer(size).toString('hex')
8791 }).call(this,require(
"buffer").Buffer)
8792 },{
"./bigi":
1,
"assert":
5,
"buffer":
7}],
3:[function(require,module,exports){
8793 var BigInteger = require('./bigi')
8796 require('./convert')
8798 module.exports = BigInteger
8799 },{
"./bigi":
1,
"./convert":
2}],
4:[function(require,module,exports){
8803 "description":
"Big integers.",
8821 "devDependencies": {
8824 "coveralls":
"^2.10.0",
8825 "istanbul":
"^0.2.11"
8828 "url":
"https://github.com/cryptocoinjs/bigi",
8831 "main":
"./lib/index.js",
8833 "test":
"_mocha -- test/*.js",
8834 "jshint":
"jshint --config jshint.json lib/*.js ; true",
8836 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
8837 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
8841 "files":
"test/*.js",
8847 "safari/6.0..latest",
8848 "iphone/6.0..latest",
8849 "android-browser/4.2..latest"
8853 "url":
"https://github.com/cryptocoinjs/bigi/issues"
8855 "homepage":
"https://github.com/cryptocoinjs/bigi",
8856 "_id":
"bigi@1.4.0",
8858 "shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
8859 "tarball":
"http://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
8861 "_from":
"bigi@^1.4.0",
8862 "_npmVersion":
"1.4.3",
8865 "email":
"jprichardson@gmail.com"
8870 "email":
"jprichardson@gmail.com"
8873 "name":
"midnightlightning",
8874 "email":
"boydb@midnightdesign.ws"
8877 "name":
"sidazhang",
8878 "email":
"sidazhang89@gmail.com"
8882 "email":
"npm@shesek.info"
8886 "_shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
8887 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
8890 },{}],
5:[function(require,module,exports){
8891 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
8893 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
8895 // Originally from narwhal.js (http://narwhaljs.org)
8896 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
8898 // Permission is hereby granted, free of charge, to any person obtaining a copy
8899 // of this software and associated documentation files (the 'Software'), to
8900 // deal in the Software without restriction, including without limitation the
8901 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8902 // sell copies of the Software, and to permit persons to whom the Software is
8903 // furnished to do so, subject to the following conditions:
8905 // The above copyright notice and this permission notice shall be included in
8906 // all copies or substantial portions of the Software.
8908 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
8909 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
8910 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
8911 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
8912 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
8913 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8915 // when used in node, this will actually load the util module we depend on
8916 // versus loading the builtin util module as happens otherwise
8917 // this is a bug in node module loading as far as I am concerned
8918 var util = require('util/');
8920 var pSlice = Array.prototype.slice;
8921 var hasOwn = Object.prototype.hasOwnProperty;
8923 //
1. The assert module provides functions that throw
8924 // AssertionError's when particular conditions are not met. The
8925 // assert module must conform to the following interface.
8927 var assert = module.exports = ok;
8929 //
2. The AssertionError is defined in assert.
8930 // new assert.AssertionError({ message: message,
8932 // expected: expected })
8934 assert.AssertionError = function AssertionError(options) {
8935 this.name = 'AssertionError';
8936 this.actual = options.actual;
8937 this.expected = options.expected;
8938 this.operator = options.operator;
8939 if (options.message) {
8940 this.message = options.message;
8941 this.generatedMessage = false;
8943 this.message = getMessage(this);
8944 this.generatedMessage = true;
8946 var stackStartFunction = options.stackStartFunction || fail;
8948 if (Error.captureStackTrace) {
8949 Error.captureStackTrace(this, stackStartFunction);
8952 // non v8 browsers so we can have a stacktrace
8953 var err = new Error();
8955 var out = err.stack;
8957 // try to strip useless frames
8958 var fn_name = stackStartFunction.name;
8959 var idx = out.indexOf('\n' + fn_name);
8961 // once we have located the function frame
8962 // we need to strip out everything before it (and its line)
8963 var next_line = out.indexOf('\n', idx +
1);
8964 out = out.substring(next_line +
1);
8972 // assert.AssertionError instanceof Error
8973 util.inherits(assert.AssertionError, Error);
8975 function replacer(key, value) {
8976 if (util.isUndefined(value)) {
8979 if (util.isNumber(value) && !isFinite(value)) {
8980 return value.toString();
8982 if (util.isFunction(value) || util.isRegExp(value)) {
8983 return value.toString();
8988 function truncate(s, n) {
8989 if (util.isString(s)) {
8990 return s.length < n ? s : s.slice(
0, n);
8996 function getMessage(self) {
8997 return truncate(JSON.stringify(self.actual, replacer),
128) + ' ' +
8998 self.operator + ' ' +
8999 truncate(JSON.stringify(self.expected, replacer),
128);
9002 // At present only the three keys mentioned above are used and
9003 // understood by the spec. Implementations or sub modules can pass
9004 // other keys to the AssertionError's constructor - they will be
9007 //
3. All of the following functions must throw an AssertionError
9008 // when a corresponding condition is not met, with a message that
9009 // may be undefined if not provided. All assertion methods provide
9010 // both the actual and expected values to the assertion error for
9011 // display purposes.
9013 function fail(actual, expected, message, operator, stackStartFunction) {
9014 throw new assert.AssertionError({
9019 stackStartFunction: stackStartFunction
9023 // EXTENSION! allows for well behaved errors defined elsewhere.
9026 //
4. Pure assertion tests whether a value is truthy, as determined
9028 // assert.ok(guard, message_opt);
9029 // This statement is equivalent to assert.equal(true, !!guard,
9030 // message_opt);. To test strictly for the value true, use
9031 // assert.strictEqual(true, guard, message_opt);.
9033 function ok(value, message) {
9034 if (!value) fail(value, true, message, '==', assert.ok);
9038 //
5. The equality assertion tests shallow, coercive equality with
9040 // assert.equal(actual, expected, message_opt);
9042 assert.equal = function equal(actual, expected, message) {
9043 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
9046 //
6. The non-equality assertion tests for whether two objects are not equal
9047 // with != assert.notEqual(actual, expected, message_opt);
9049 assert.notEqual = function notEqual(actual, expected, message) {
9050 if (actual == expected) {
9051 fail(actual, expected, message, '!=', assert.notEqual);
9055 //
7. The equivalence assertion tests a deep equality relation.
9056 // assert.deepEqual(actual, expected, message_opt);
9058 assert.deepEqual = function deepEqual(actual, expected, message) {
9059 if (!_deepEqual(actual, expected)) {
9060 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
9064 function _deepEqual(actual, expected) {
9065 //
7.1. All identical values are equivalent, as determined by ===.
9066 if (actual === expected) {
9069 } else if (util.isBuffer(actual) && util.isBuffer(expected)) {
9070 if (actual.length != expected.length) return false;
9072 for (var i =
0; i < actual.length; i++) {
9073 if (actual[i] !== expected[i]) return false;
9078 //
7.2. If the expected value is a Date object, the actual value is
9079 // equivalent if it is also a Date object that refers to the same time.
9080 } else if (util.isDate(actual) && util.isDate(expected)) {
9081 return actual.getTime() === expected.getTime();
9083 //
7.3 If the expected value is a RegExp object, the actual value is
9084 // equivalent if it is also a RegExp object with the same source and
9085 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
9086 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
9087 return actual.source === expected.source &&
9088 actual.global === expected.global &&
9089 actual.multiline === expected.multiline &&
9090 actual.lastIndex === expected.lastIndex &&
9091 actual.ignoreCase === expected.ignoreCase;
9093 //
7.4. Other pairs that do not both pass typeof value == 'object',
9094 // equivalence is determined by ==.
9095 } else if (!util.isObject(actual) && !util.isObject(expected)) {
9096 return actual == expected;
9098 //
7.5 For all other Object pairs, including Array objects, equivalence is
9099 // determined by having the same number of owned properties (as verified
9100 // with Object.prototype.hasOwnProperty.call), the same set of keys
9101 // (although not necessarily the same order), equivalent values for every
9102 // corresponding key, and an identical 'prototype' property. Note: this
9103 // accounts for both named and indexed properties on Arrays.
9105 return objEquiv(actual, expected);
9109 function isArguments(object) {
9110 return Object.prototype.toString.call(object) == '[object Arguments]';
9113 function objEquiv(a, b) {
9114 if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))
9116 // an identical 'prototype' property.
9117 if (a.prototype !== b.prototype) return false;
9118 // if one is a primitive, the other must be same
9119 if (util.isPrimitive(a) || util.isPrimitive(b)) {
9122 var aIsArgs = isArguments(a),
9123 bIsArgs = isArguments(b);
9124 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
9129 return _deepEqual(a, b);
9131 var ka = objectKeys(a),
9134 // having the same number of owned properties (keys incorporates
9136 if (ka.length != kb.length)
9138 //the same set of keys (although not necessarily the same order),
9142 for (i = ka.length -
1; i
>=
0; i--) {
9146 //equivalent values for every corresponding key, and
9147 //~~~possibly expensive deep test
9148 for (i = ka.length -
1; i
>=
0; i--) {
9150 if (!_deepEqual(a[key], b[key])) return false;
9155 //
8. The non-equivalence assertion tests for any deep inequality.
9156 // assert.notDeepEqual(actual, expected, message_opt);
9158 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
9159 if (_deepEqual(actual, expected)) {
9160 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
9164 //
9. The strict equality assertion tests strict equality, as determined by ===.
9165 // assert.strictEqual(actual, expected, message_opt);
9167 assert.strictEqual = function strictEqual(actual, expected, message) {
9168 if (actual !== expected) {
9169 fail(actual, expected, message, '===', assert.strictEqual);
9173 //
10. The strict non-equality assertion tests for strict inequality, as
9174 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
9176 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
9177 if (actual === expected) {
9178 fail(actual, expected, message, '!==', assert.notStrictEqual);
9182 function expectedException(actual, expected) {
9183 if (!actual || !expected) {
9187 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
9188 return expected.test(actual);
9189 } else if (actual instanceof expected) {
9191 } else if (expected.call({}, actual) === true) {
9198 function _throws(shouldThrow, block, expected, message) {
9201 if (util.isString(expected)) {
9212 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
9213 (message ? ' ' + message : '.');
9215 if (shouldThrow && !actual) {
9216 fail(actual, expected, 'Missing expected exception' + message);
9219 if (!shouldThrow && expectedException(actual, expected)) {
9220 fail(actual, expected, 'Got unwanted exception' + message);
9223 if ((shouldThrow && actual && expected &&
9224 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
9229 //
11. Expected to throw an error:
9230 // assert.throws(block, Error_opt, message_opt);
9232 assert.throws = function(block, /*optional*/error, /*optional*/message) {
9233 _throws.apply(this, [true].concat(pSlice.call(arguments)));
9236 // EXTENSION! This is annoying to write outside this module.
9237 assert.doesNotThrow = function(block, /*optional*/message) {
9238 _throws.apply(this, [false].concat(pSlice.call(arguments)));
9241 assert.ifError = function(err) { if (err) {throw err;}};
9243 var objectKeys = Object.keys || function (obj) {
9245 for (var key in obj) {
9246 if (hasOwn.call(obj, key)) keys.push(key);
9251 },{"util/":
29}],
6:[function(require,module,exports){
9253 },{}],
7:[function(require,module,exports){
9255 * The buffer module from node.js, for the browser.
9257 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
9261 var base64 = require('base64-js')
9262 var ieee754 = require('ieee754')
9263 var isArray = require('is-array')
9265 exports.Buffer = Buffer
9266 exports.SlowBuffer = SlowBuffer
9267 exports.INSPECT_MAX_BYTES =
50
9268 Buffer.poolSize =
8192 // not used by this implementation
9273 * If `Buffer.TYPED_ARRAY_SUPPORT`:
9274 * === true Use Uint8Array implementation (fastest)
9275 * === false Use Object implementation (most compatible, even IE6)
9277 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
9278 * Opera
11.6+, iOS
4.2+.
9280 * Due to various browser bugs, sometimes the Object implementation will be used even
9281 * when the browser supports typed arrays.
9285 * - Firefox
4-
29 lacks support for adding new properties to `Uint8Array` instances,
9286 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438.
9288 * - Safari
5-
7 lacks support for changing the `Object.prototype.constructor` property
9291 * - Chrome
9-
10 is missing the `TypedArray.prototype.subarray` function.
9293 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
9294 * incorrect length in some situations.
9296 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
9297 * get the Object implementation, which is slower but behaves correctly.
9299 Buffer.TYPED_ARRAY_SUPPORT = (function () {
9302 var arr = new Uint8Array(
1)
9303 arr.foo = function () { return
42 }
9304 arr.constructor = Bar
9305 return arr.foo() ===
42 && // typed array instances can be augmented
9306 arr.constructor === Bar && // constructor can be set
9307 typeof arr.subarray === 'function' && // chrome
9-
10 lack `subarray`
9308 arr.subarray(
1,
1).byteLength ===
0 // ie10 has broken `subarray`
9314 function kMaxLength () {
9315 return Buffer.TYPED_ARRAY_SUPPORT
9324 * The Buffer constructor returns instances of `Uint8Array` that are augmented
9325 * with function properties for all the node `Buffer` API functions. We use
9326 * `Uint8Array` so that square bracket notation works as expected -- it returns
9329 * By augmenting the instances, we can avoid modifying the `Uint8Array`
9332 function Buffer (arg) {
9333 if (!(this instanceof Buffer)) {
9334 // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
9335 if (arguments.length
> 1) return new Buffer(arg, arguments[
1])
9336 return new Buffer(arg)
9340 this.parent = undefined
9343 if (typeof arg === 'number') {
9344 return fromNumber(this, arg)
9347 // Slightly less common case.
9348 if (typeof arg === 'string') {
9349 return fromString(this, arg, arguments.length
> 1 ? arguments[
1] : 'utf8')
9353 return fromObject(this, arg)
9356 function fromNumber (that, length) {
9357 that = allocate(that, length <
0 ?
0 : checked(length) |
0)
9358 if (!Buffer.TYPED_ARRAY_SUPPORT) {
9359 for (var i =
0; i < length; i++) {
9366 function fromString (that, string, encoding) {
9367 if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
9369 // Assumption: byteLength() return value is always < kMaxLength.
9370 var length = byteLength(string, encoding) |
0
9371 that = allocate(that, length)
9373 that.write(string, encoding)
9377 function fromObject (that, object) {
9378 if (Buffer.isBuffer(object)) return fromBuffer(that, object)
9380 if (isArray(object)) return fromArray(that, object)
9382 if (object == null) {
9383 throw new TypeError('must start with number, buffer, array or string')
9386 if (typeof ArrayBuffer !== 'undefined') {
9387 if (object.buffer instanceof ArrayBuffer) {
9388 return fromTypedArray(that, object)
9390 if (object instanceof ArrayBuffer) {
9391 return fromArrayBuffer(that, object)
9395 if (object.length) return fromArrayLike(that, object)
9397 return fromJsonObject(that, object)
9400 function fromBuffer (that, buffer) {
9401 var length = checked(buffer.length) |
0
9402 that = allocate(that, length)
9403 buffer.copy(that,
0,
0, length)
9407 function fromArray (that, array) {
9408 var length = checked(array.length) |
0
9409 that = allocate(that, length)
9410 for (var i =
0; i < length; i +=
1) {
9411 that[i] = array[i] &
255
9416 // Duplicate of fromArray() to keep fromArray() monomorphic.
9417 function fromTypedArray (that, array) {
9418 var length = checked(array.length) |
0
9419 that = allocate(that, length)
9420 // Truncating the elements is probably not what people expect from typed
9421 // arrays with BYTES_PER_ELEMENT
> 1 but it's compatible with the behavior
9422 // of the old Buffer constructor.
9423 for (var i =
0; i < length; i +=
1) {
9424 that[i] = array[i] &
255
9429 function fromArrayBuffer (that, array) {
9430 if (Buffer.TYPED_ARRAY_SUPPORT) {
9431 // Return an augmented `Uint8Array` instance, for best performance
9433 that = Buffer._augment(new Uint8Array(array))
9435 // Fallback: Return an object instance of the Buffer class
9436 that = fromTypedArray(that, new Uint8Array(array))
9441 function fromArrayLike (that, array) {
9442 var length = checked(array.length) |
0
9443 that = allocate(that, length)
9444 for (var i =
0; i < length; i +=
1) {
9445 that[i] = array[i] &
255
9450 // Deserialize { type: 'Buffer', data: [
1,
2,
3,...] } into a Buffer object.
9451 // Returns a zero-length buffer for inputs that don't conform to the spec.
9452 function fromJsonObject (that, object) {
9456 if (object.type === 'Buffer' && isArray(object.data)) {
9458 length = checked(array.length) |
0
9460 that = allocate(that, length)
9462 for (var i =
0; i < length; i +=
1) {
9463 that[i] = array[i] &
255
9468 function allocate (that, length) {
9469 if (Buffer.TYPED_ARRAY_SUPPORT) {
9470 // Return an augmented `Uint8Array` instance, for best performance
9471 that = Buffer._augment(new Uint8Array(length))
9473 // Fallback: Return an object instance of the Buffer class
9474 that.length = length
9475 that._isBuffer = true
9478 var fromPool = length !==
0 && length <= Buffer.poolSize
>>> 1
9479 if (fromPool) that.parent = rootParent
9484 function checked (length) {
9485 // Note: cannot use `length < kMaxLength` here because that fails when
9486 // length is NaN (which is otherwise coerced to zero.)
9487 if (length
>= kMaxLength()) {
9488 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
9489 'size:
0x' + kMaxLength().toString(
16) + ' bytes')
9494 function SlowBuffer (subject, encoding) {
9495 if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
9497 var buf = new Buffer(subject, encoding)
9502 Buffer.isBuffer = function isBuffer (b) {
9503 return !!(b != null && b._isBuffer)
9506 Buffer.compare = function compare (a, b) {
9507 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
9508 throw new TypeError('Arguments must be Buffers')
9511 if (a === b) return
0
9517 var len = Math.min(x, y)
9519 if (a[i] !== b[i]) break
9529 if (x < y) return -
1
9534 Buffer.isEncoding = function isEncoding (encoding) {
9535 switch (String(encoding).toLowerCase()) {
9553 Buffer.concat = function concat (list, length) {
9554 if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
9556 if (list.length ===
0) {
9557 return new Buffer(
0)
9561 if (length === undefined) {
9563 for (i =
0; i < list.length; i++) {
9564 length += list[i].length
9568 var buf = new Buffer(length)
9570 for (i =
0; i < list.length; i++) {
9578 function byteLength (string, encoding) {
9579 if (typeof string !== 'string') string = '' + string
9581 var len = string.length
9582 if (len ===
0) return
0
9584 // Use a for loop to avoid recursion
9585 var loweredCase = false
9596 return utf8ToBytes(string).length
9605 return base64ToBytes(string).length
9607 if (loweredCase) return utf8ToBytes(string).length // assume utf8
9608 encoding = ('' + encoding).toLowerCase()
9613 Buffer.byteLength = byteLength
9615 // pre-set for values that may exist in the future
9616 Buffer.prototype.length = undefined
9617 Buffer.prototype.parent = undefined
9619 function slowToString (encoding, start, end) {
9620 var loweredCase = false
9623 end = end === undefined || end === Infinity ? this.length : end |
0
9625 if (!encoding) encoding = 'utf8'
9626 if (start <
0) start =
0
9627 if (end
> this.length) end = this.length
9628 if (end <= start) return ''
9633 return hexSlice(this, start, end)
9637 return utf8Slice(this, start, end)
9640 return asciiSlice(this, start, end)
9643 return binarySlice(this, start, end)
9646 return base64Slice(this, start, end)
9652 return utf16leSlice(this, start, end)
9655 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
9656 encoding = (encoding + '').toLowerCase()
9662 Buffer.prototype.toString = function toString () {
9663 var length = this.length |
0
9664 if (length ===
0) return ''
9665 if (arguments.length ===
0) return utf8Slice(this,
0, length)
9666 return slowToString.apply(this, arguments)
9669 Buffer.prototype.equals = function equals (b) {
9670 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
9671 if (this === b) return true
9672 return Buffer.compare(this, b) ===
0
9675 Buffer.prototype.inspect = function inspect () {
9677 var max = exports.INSPECT_MAX_BYTES
9678 if (this.length
> 0) {
9679 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
9680 if (this.length
> max) str += ' ... '
9682 return '
<Buffer ' + str + '
>'
9685 Buffer.prototype.compare = function compare (b) {
9686 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
9687 if (this === b) return
0
9688 return Buffer.compare(this, b)
9691 Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
9692 if (byteOffset
> 0x7fffffff) byteOffset =
0x7fffffff
9693 else if (byteOffset < -
0x80000000) byteOffset = -
0x80000000
9696 if (this.length ===
0) return -
1
9697 if (byteOffset
>= this.length) return -
1
9699 // Negative offsets start from the end of the buffer
9700 if (byteOffset <
0) byteOffset = Math.max(this.length + byteOffset,
0)
9702 if (typeof val === 'string') {
9703 if (val.length ===
0) return -
1 // special case: looking for empty string always fails
9704 return String.prototype.indexOf.call(this, val, byteOffset)
9706 if (Buffer.isBuffer(val)) {
9707 return arrayIndexOf(this, val, byteOffset)
9709 if (typeof val === 'number') {
9710 if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
9711 return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
9713 return arrayIndexOf(this, [ val ], byteOffset)
9716 function arrayIndexOf (arr, val, byteOffset) {
9718 for (var i =
0; byteOffset + i < arr.length; i++) {
9719 if (arr[byteOffset + i] === val[foundIndex === -
1 ?
0 : i - foundIndex]) {
9720 if (foundIndex === -
1) foundIndex = i
9721 if (i - foundIndex +
1 === val.length) return byteOffset + foundIndex
9729 throw new TypeError('val must be string, number or Buffer')
9732 // `get` is deprecated
9733 Buffer.prototype.get = function get (offset) {
9734 console.log('.get() is deprecated. Access using array indexes instead.')
9735 return this.readUInt8(offset)
9738 // `set` is deprecated
9739 Buffer.prototype.set = function set (v, offset) {
9740 console.log('.set() is deprecated. Access using array indexes instead.')
9741 return this.writeUInt8(v, offset)
9744 function hexWrite (buf, string, offset, length) {
9745 offset = Number(offset) ||
0
9746 var remaining = buf.length - offset
9750 length = Number(length)
9751 if (length
> remaining) {
9756 // must be an even number of digits
9757 var strLen = string.length
9758 if (strLen %
2 !==
0) throw new Error('Invalid hex string')
9760 if (length
> strLen /
2) {
9763 for (var i =
0; i < length; i++) {
9764 var parsed = parseInt(string.substr(i *
2,
2),
16)
9765 if (isNaN(parsed)) throw new Error('Invalid hex string')
9766 buf[offset + i] = parsed
9771 function utf8Write (buf, string, offset, length) {
9772 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
9775 function asciiWrite (buf, string, offset, length) {
9776 return blitBuffer(asciiToBytes(string), buf, offset, length)
9779 function binaryWrite (buf, string, offset, length) {
9780 return asciiWrite(buf, string, offset, length)
9783 function base64Write (buf, string, offset, length) {
9784 return blitBuffer(base64ToBytes(string), buf, offset, length)
9787 function ucs2Write (buf, string, offset, length) {
9788 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
9791 Buffer.prototype.write = function write (string, offset, length, encoding) {
9792 // Buffer#write(string)
9793 if (offset === undefined) {
9795 length = this.length
9797 // Buffer#write(string, encoding)
9798 } else if (length === undefined && typeof offset === 'string') {
9800 length = this.length
9802 // Buffer#write(string, offset[, length][, encoding])
9803 } else if (isFinite(offset)) {
9805 if (isFinite(length)) {
9807 if (encoding === undefined) encoding = 'utf8'
9812 // legacy write(string, encoding, offset, length) - remove in v0.13
9820 var remaining = this.length - offset
9821 if (length === undefined || length
> remaining) length = remaining
9823 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
9824 throw new RangeError('attempt to write outside buffer bounds')
9827 if (!encoding) encoding = 'utf8'
9829 var loweredCase = false
9833 return hexWrite(this, string, offset, length)
9837 return utf8Write(this, string, offset, length)
9840 return asciiWrite(this, string, offset, length)
9843 return binaryWrite(this, string, offset, length)
9846 // Warning: maxLength not taken into account in base64Write
9847 return base64Write(this, string, offset, length)
9853 return ucs2Write(this, string, offset, length)
9856 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
9857 encoding = ('' + encoding).toLowerCase()
9863 Buffer.prototype.toJSON = function toJSON () {
9866 data: Array.prototype.slice.call(this._arr || this,
0)
9870 function base64Slice (buf, start, end) {
9871 if (start ===
0 && end === buf.length) {
9872 return base64.fromByteArray(buf)
9874 return base64.fromByteArray(buf.slice(start, end))
9878 function utf8Slice (buf, start, end) {
9879 end = Math.min(buf.length, end)
9884 var bytesPerSequence
9890 for (; i < end; i += bytesPerSequence) {
9894 if (firstByte
> 0xEF) {
9895 bytesPerSequence =
4
9896 } else if (firstByte
> 0xDF) {
9897 bytesPerSequence =
3
9898 } else if (firstByte
> 0xBF) {
9899 bytesPerSequence =
2
9901 bytesPerSequence =
1
9904 if (i + bytesPerSequence <= end) {
9905 switch (bytesPerSequence) {
9907 if (firstByte <
0x80) {
9908 codePoint = firstByte
9912 secondByte = buf[i +
1]
9913 if ((secondByte &
0xC0) ===
0x80) {
9914 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
9915 if (tempCodePoint
> 0x7F) {
9916 codePoint = tempCodePoint
9921 secondByte = buf[i +
1]
9922 thirdByte = buf[i +
2]
9923 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
9924 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
9925 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
9926 codePoint = tempCodePoint
9931 secondByte = buf[i +
1]
9932 thirdByte = buf[i +
2]
9933 fourthByte = buf[i +
3]
9934 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
9935 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
9936 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
9937 codePoint = tempCodePoint
9943 if (codePoint ===
0xFFFD) {
9944 // we generated an invalid codePoint so make sure to only advance by
1 byte
9945 bytesPerSequence =
1
9946 } else if (codePoint
> 0xFFFF) {
9947 // encode to utf16 (surrogate pair dance)
9948 codePoint -=
0x10000
9949 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
9950 codePoint =
0xDC00 | codePoint &
0x3FF
9956 return String.fromCharCode.apply(String, res)
9959 function asciiSlice (buf, start, end) {
9961 end = Math.min(buf.length, end)
9963 for (var i = start; i < end; i++) {
9964 ret += String.fromCharCode(buf[i] &
0x7F)
9969 function binarySlice (buf, start, end) {
9971 end = Math.min(buf.length, end)
9973 for (var i = start; i < end; i++) {
9974 ret += String.fromCharCode(buf[i])
9979 function hexSlice (buf, start, end) {
9980 var len = buf.length
9982 if (!start || start <
0) start =
0
9983 if (!end || end <
0 || end
> len) end = len
9986 for (var i = start; i < end; i++) {
9987 out += toHex(buf[i])
9992 function utf16leSlice (buf, start, end) {
9993 var bytes = buf.slice(start, end)
9995 for (var i =
0; i < bytes.length; i +=
2) {
9996 res += String.fromCharCode(bytes[i] + bytes[i +
1] *
256)
10001 Buffer.prototype.slice = function slice (start, end) {
10002 var len = this.length
10004 end = end === undefined ? len : ~~end
10008 if (start <
0) start =
0
10009 } else if (start
> len) {
10015 if (end <
0) end =
0
10016 } else if (end
> len) {
10020 if (end < start) end = start
10023 if (Buffer.TYPED_ARRAY_SUPPORT) {
10024 newBuf = Buffer._augment(this.subarray(start, end))
10026 var sliceLen = end - start
10027 newBuf = new Buffer(sliceLen, undefined)
10028 for (var i =
0; i < sliceLen; i++) {
10029 newBuf[i] = this[i + start]
10033 if (newBuf.length) newBuf.parent = this.parent || this
10039 * Need to make sure that buffer isn't trying to write out of bounds.
10041 function checkOffset (offset, ext, length) {
10042 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
10043 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
10046 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
10047 offset = offset |
0
10048 byteLength = byteLength |
0
10049 if (!noAssert) checkOffset(offset, byteLength, this.length)
10051 var val = this[offset]
10054 while (++i < byteLength && (mul *=
0x100)) {
10055 val += this[offset + i] * mul
10061 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
10062 offset = offset |
0
10063 byteLength = byteLength |
0
10065 checkOffset(offset, byteLength, this.length)
10068 var val = this[offset + --byteLength]
10070 while (byteLength
> 0 && (mul *=
0x100)) {
10071 val += this[offset + --byteLength] * mul
10077 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
10078 if (!noAssert) checkOffset(offset,
1, this.length)
10079 return this[offset]
10082 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
10083 if (!noAssert) checkOffset(offset,
2, this.length)
10084 return this[offset] | (this[offset +
1] <<
8)
10087 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
10088 if (!noAssert) checkOffset(offset,
2, this.length)
10089 return (this[offset] <<
8) | this[offset +
1]
10092 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
10093 if (!noAssert) checkOffset(offset,
4, this.length)
10095 return ((this[offset]) |
10096 (this[offset +
1] <<
8) |
10097 (this[offset +
2] <<
16)) +
10098 (this[offset +
3] *
0x1000000)
10101 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
10102 if (!noAssert) checkOffset(offset,
4, this.length)
10104 return (this[offset] *
0x1000000) +
10105 ((this[offset +
1] <<
16) |
10106 (this[offset +
2] <<
8) |
10110 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
10111 offset = offset |
0
10112 byteLength = byteLength |
0
10113 if (!noAssert) checkOffset(offset, byteLength, this.length)
10115 var val = this[offset]
10118 while (++i < byteLength && (mul *=
0x100)) {
10119 val += this[offset + i] * mul
10123 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
10128 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
10129 offset = offset |
0
10130 byteLength = byteLength |
0
10131 if (!noAssert) checkOffset(offset, byteLength, this.length)
10135 var val = this[offset + --i]
10136 while (i
> 0 && (mul *=
0x100)) {
10137 val += this[offset + --i] * mul
10141 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
10146 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
10147 if (!noAssert) checkOffset(offset,
1, this.length)
10148 if (!(this[offset] &
0x80)) return (this[offset])
10149 return ((
0xff - this[offset] +
1) * -
1)
10152 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
10153 if (!noAssert) checkOffset(offset,
2, this.length)
10154 var val = this[offset] | (this[offset +
1] <<
8)
10155 return (val &
0x8000) ? val |
0xFFFF0000 : val
10158 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
10159 if (!noAssert) checkOffset(offset,
2, this.length)
10160 var val = this[offset +
1] | (this[offset] <<
8)
10161 return (val &
0x8000) ? val |
0xFFFF0000 : val
10164 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
10165 if (!noAssert) checkOffset(offset,
4, this.length)
10167 return (this[offset]) |
10168 (this[offset +
1] <<
8) |
10169 (this[offset +
2] <<
16) |
10170 (this[offset +
3] <<
24)
10173 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
10174 if (!noAssert) checkOffset(offset,
4, this.length)
10176 return (this[offset] <<
24) |
10177 (this[offset +
1] <<
16) |
10178 (this[offset +
2] <<
8) |
10182 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
10183 if (!noAssert) checkOffset(offset,
4, this.length)
10184 return ieee754.read(this, offset, true,
23,
4)
10187 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
10188 if (!noAssert) checkOffset(offset,
4, this.length)
10189 return ieee754.read(this, offset, false,
23,
4)
10192 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
10193 if (!noAssert) checkOffset(offset,
8, this.length)
10194 return ieee754.read(this, offset, true,
52,
8)
10197 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
10198 if (!noAssert) checkOffset(offset,
8, this.length)
10199 return ieee754.read(this, offset, false,
52,
8)
10202 function checkInt (buf, value, offset, ext, max, min) {
10203 if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
10204 if (value
> max || value < min) throw new RangeError('value is out of bounds')
10205 if (offset + ext
> buf.length) throw new RangeError('index out of range')
10208 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
10210 offset = offset |
0
10211 byteLength = byteLength |
0
10212 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
10216 this[offset] = value &
0xFF
10217 while (++i < byteLength && (mul *=
0x100)) {
10218 this[offset + i] = (value / mul) &
0xFF
10221 return offset + byteLength
10224 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
10226 offset = offset |
0
10227 byteLength = byteLength |
0
10228 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
10230 var i = byteLength -
1
10232 this[offset + i] = value &
0xFF
10233 while (--i
>=
0 && (mul *=
0x100)) {
10234 this[offset + i] = (value / mul) &
0xFF
10237 return offset + byteLength
10240 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
10242 offset = offset |
0
10243 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
10244 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
10245 this[offset] = value
10249 function objectWriteUInt16 (buf, value, offset, littleEndian) {
10250 if (value <
0) value =
0xffff + value +
1
10251 for (var i =
0, j = Math.min(buf.length - offset,
2); i < j; i++) {
10252 buf[offset + i] = (value & (
0xff << (
8 * (littleEndian ? i :
1 - i))))
>>>
10253 (littleEndian ? i :
1 - i) *
8
10257 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
10259 offset = offset |
0
10260 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
10261 if (Buffer.TYPED_ARRAY_SUPPORT) {
10262 this[offset] = value
10263 this[offset +
1] = (value
>>> 8)
10265 objectWriteUInt16(this, value, offset, true)
10270 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
10272 offset = offset |
0
10273 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
10274 if (Buffer.TYPED_ARRAY_SUPPORT) {
10275 this[offset] = (value
>>> 8)
10276 this[offset +
1] = value
10278 objectWriteUInt16(this, value, offset, false)
10283 function objectWriteUInt32 (buf, value, offset, littleEndian) {
10284 if (value <
0) value =
0xffffffff + value +
1
10285 for (var i =
0, j = Math.min(buf.length - offset,
4); i < j; i++) {
10286 buf[offset + i] = (value
>>> (littleEndian ? i :
3 - i) *
8) &
0xff
10290 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
10292 offset = offset |
0
10293 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
10294 if (Buffer.TYPED_ARRAY_SUPPORT) {
10295 this[offset +
3] = (value
>>> 24)
10296 this[offset +
2] = (value
>>> 16)
10297 this[offset +
1] = (value
>>> 8)
10298 this[offset] = value
10300 objectWriteUInt32(this, value, offset, true)
10305 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
10307 offset = offset |
0
10308 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
10309 if (Buffer.TYPED_ARRAY_SUPPORT) {
10310 this[offset] = (value
>>> 24)
10311 this[offset +
1] = (value
>>> 16)
10312 this[offset +
2] = (value
>>> 8)
10313 this[offset +
3] = value
10315 objectWriteUInt32(this, value, offset, false)
10320 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
10322 offset = offset |
0
10324 var limit = Math.pow(
2,
8 * byteLength -
1)
10326 checkInt(this, value, offset, byteLength, limit -
1, -limit)
10331 var sub = value <
0 ?
1 :
0
10332 this[offset] = value &
0xFF
10333 while (++i < byteLength && (mul *=
0x100)) {
10334 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
10337 return offset + byteLength
10340 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
10342 offset = offset |
0
10344 var limit = Math.pow(
2,
8 * byteLength -
1)
10346 checkInt(this, value, offset, byteLength, limit -
1, -limit)
10349 var i = byteLength -
1
10351 var sub = value <
0 ?
1 :
0
10352 this[offset + i] = value &
0xFF
10353 while (--i
>=
0 && (mul *=
0x100)) {
10354 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
10357 return offset + byteLength
10360 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
10362 offset = offset |
0
10363 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
10364 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
10365 if (value <
0) value =
0xff + value +
1
10366 this[offset] = value
10370 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
10372 offset = offset |
0
10373 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
10374 if (Buffer.TYPED_ARRAY_SUPPORT) {
10375 this[offset] = value
10376 this[offset +
1] = (value
>>> 8)
10378 objectWriteUInt16(this, value, offset, true)
10383 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
10385 offset = offset |
0
10386 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
10387 if (Buffer.TYPED_ARRAY_SUPPORT) {
10388 this[offset] = (value
>>> 8)
10389 this[offset +
1] = value
10391 objectWriteUInt16(this, value, offset, false)
10396 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
10398 offset = offset |
0
10399 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
10400 if (Buffer.TYPED_ARRAY_SUPPORT) {
10401 this[offset] = value
10402 this[offset +
1] = (value
>>> 8)
10403 this[offset +
2] = (value
>>> 16)
10404 this[offset +
3] = (value
>>> 24)
10406 objectWriteUInt32(this, value, offset, true)
10411 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
10413 offset = offset |
0
10414 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
10415 if (value <
0) value =
0xffffffff + value +
1
10416 if (Buffer.TYPED_ARRAY_SUPPORT) {
10417 this[offset] = (value
>>> 24)
10418 this[offset +
1] = (value
>>> 16)
10419 this[offset +
2] = (value
>>> 8)
10420 this[offset +
3] = value
10422 objectWriteUInt32(this, value, offset, false)
10427 function checkIEEE754 (buf, value, offset, ext, max, min) {
10428 if (value
> max || value < min) throw new RangeError('value is out of bounds')
10429 if (offset + ext
> buf.length) throw new RangeError('index out of range')
10430 if (offset <
0) throw new RangeError('index out of range')
10433 function writeFloat (buf, value, offset, littleEndian, noAssert) {
10435 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
10437 ieee754.write(buf, value, offset, littleEndian,
23,
4)
10441 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
10442 return writeFloat(this, value, offset, true, noAssert)
10445 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
10446 return writeFloat(this, value, offset, false, noAssert)
10449 function writeDouble (buf, value, offset, littleEndian, noAssert) {
10451 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
10453 ieee754.write(buf, value, offset, littleEndian,
52,
8)
10457 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
10458 return writeDouble(this, value, offset, true, noAssert)
10461 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
10462 return writeDouble(this, value, offset, false, noAssert)
10465 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
10466 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
10467 if (!start) start =
0
10468 if (!end && end !==
0) end = this.length
10469 if (targetStart
>= target.length) targetStart = target.length
10470 if (!targetStart) targetStart =
0
10471 if (end
> 0 && end < start) end = start
10473 // Copy
0 bytes; we're done
10474 if (end === start) return
0
10475 if (target.length ===
0 || this.length ===
0) return
0
10477 // Fatal error conditions
10478 if (targetStart <
0) {
10479 throw new RangeError('targetStart out of bounds')
10481 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
10482 if (end <
0) throw new RangeError('sourceEnd out of bounds')
10485 if (end
> this.length) end = this.length
10486 if (target.length - targetStart < end - start) {
10487 end = target.length - targetStart + start
10490 var len = end - start
10493 if (this === target && start < targetStart && targetStart < end) {
10494 // descending copy from end
10495 for (i = len -
1; i
>=
0; i--) {
10496 target[i + targetStart] = this[i + start]
10498 } else if (len <
1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
10499 // ascending copy from start
10500 for (i =
0; i < len; i++) {
10501 target[i + targetStart] = this[i + start]
10504 target._set(this.subarray(start, start + len), targetStart)
10510 // fill(value, start=
0, end=buffer.length)
10511 Buffer.prototype.fill = function fill (value, start, end) {
10512 if (!value) value =
0
10513 if (!start) start =
0
10514 if (!end) end = this.length
10516 if (end < start) throw new RangeError('end < start')
10518 // Fill
0 bytes; we're done
10519 if (end === start) return
10520 if (this.length ===
0) return
10522 if (start <
0 || start
>= this.length) throw new RangeError('start out of bounds')
10523 if (end <
0 || end
> this.length) throw new RangeError('end out of bounds')
10526 if (typeof value === 'number') {
10527 for (i = start; i < end; i++) {
10531 var bytes = utf8ToBytes(value.toString())
10532 var len = bytes.length
10533 for (i = start; i < end; i++) {
10534 this[i] = bytes[i % len]
10542 * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
10543 * Added in Node
0.12. Only available in browsers that support ArrayBuffer.
10545 Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
10546 if (typeof Uint8Array !== 'undefined') {
10547 if (Buffer.TYPED_ARRAY_SUPPORT) {
10548 return (new Buffer(this)).buffer
10550 var buf = new Uint8Array(this.length)
10551 for (var i =
0, len = buf.length; i < len; i +=
1) {
10557 throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
10561 // HELPER FUNCTIONS
10562 // ================
10564 var BP = Buffer.prototype
10567 * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
10569 Buffer._augment = function _augment (arr) {
10570 arr.constructor = Buffer
10571 arr._isBuffer = true
10573 // save reference to original Uint8Array set method before overwriting
10580 arr.write = BP.write
10581 arr.toString = BP.toString
10582 arr.toLocaleString = BP.toString
10583 arr.toJSON = BP.toJSON
10584 arr.equals = BP.equals
10585 arr.compare = BP.compare
10586 arr.indexOf = BP.indexOf
10588 arr.slice = BP.slice
10589 arr.readUIntLE = BP.readUIntLE
10590 arr.readUIntBE = BP.readUIntBE
10591 arr.readUInt8 = BP.readUInt8
10592 arr.readUInt16LE = BP.readUInt16LE
10593 arr.readUInt16BE = BP.readUInt16BE
10594 arr.readUInt32LE = BP.readUInt32LE
10595 arr.readUInt32BE = BP.readUInt32BE
10596 arr.readIntLE = BP.readIntLE
10597 arr.readIntBE = BP.readIntBE
10598 arr.readInt8 = BP.readInt8
10599 arr.readInt16LE = BP.readInt16LE
10600 arr.readInt16BE = BP.readInt16BE
10601 arr.readInt32LE = BP.readInt32LE
10602 arr.readInt32BE = BP.readInt32BE
10603 arr.readFloatLE = BP.readFloatLE
10604 arr.readFloatBE = BP.readFloatBE
10605 arr.readDoubleLE = BP.readDoubleLE
10606 arr.readDoubleBE = BP.readDoubleBE
10607 arr.writeUInt8 = BP.writeUInt8
10608 arr.writeUIntLE = BP.writeUIntLE
10609 arr.writeUIntBE = BP.writeUIntBE
10610 arr.writeUInt16LE = BP.writeUInt16LE
10611 arr.writeUInt16BE = BP.writeUInt16BE
10612 arr.writeUInt32LE = BP.writeUInt32LE
10613 arr.writeUInt32BE = BP.writeUInt32BE
10614 arr.writeIntLE = BP.writeIntLE
10615 arr.writeIntBE = BP.writeIntBE
10616 arr.writeInt8 = BP.writeInt8
10617 arr.writeInt16LE = BP.writeInt16LE
10618 arr.writeInt16BE = BP.writeInt16BE
10619 arr.writeInt32LE = BP.writeInt32LE
10620 arr.writeInt32BE = BP.writeInt32BE
10621 arr.writeFloatLE = BP.writeFloatLE
10622 arr.writeFloatBE = BP.writeFloatBE
10623 arr.writeDoubleLE = BP.writeDoubleLE
10624 arr.writeDoubleBE = BP.writeDoubleBE
10626 arr.inspect = BP.inspect
10627 arr.toArrayBuffer = BP.toArrayBuffer
10632 var INVALID_BASE64_RE = /[^+\/
0-
9A-Za-z-_]/g
10634 function base64clean (str) {
10635 // Node strips out invalid characters like \n and \t from the string, base64-js does not
10636 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
10637 // Node converts strings with length <
2 to ''
10638 if (str.length <
2) return ''
10639 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
10640 while (str.length %
4 !==
0) {
10646 function stringtrim (str) {
10647 if (str.trim) return str.trim()
10648 return str.replace(/^\s+|\s+$/g, '')
10651 function toHex (n) {
10652 if (n <
16) return '
0' + n.toString(
16)
10653 return n.toString(
16)
10656 function utf8ToBytes (string, units) {
10657 units = units || Infinity
10659 var length = string.length
10660 var leadSurrogate = null
10663 for (var i =
0; i < length; i++) {
10664 codePoint = string.charCodeAt(i)
10666 // is surrogate component
10667 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
10668 // last char was a lead
10669 if (!leadSurrogate) {
10671 if (codePoint
> 0xDBFF) {
10672 // unexpected trail
10673 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10676 } else if (i +
1 === length) {
10678 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10683 leadSurrogate = codePoint
10688 //
2 leads in a row
10689 if (codePoint <
0xDC00) {
10690 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10691 leadSurrogate = codePoint
10695 // valid surrogate pair
10696 codePoint = leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00 |
0x10000
10698 } else if (leadSurrogate) {
10699 // valid bmp char, but last char was a lead
10700 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10703 leadSurrogate = null
10706 if (codePoint <
0x80) {
10707 if ((units -=
1) <
0) break
10708 bytes.push(codePoint)
10709 } else if (codePoint <
0x800) {
10710 if ((units -=
2) <
0) break
10712 codePoint
>> 0x6 |
0xC0,
10713 codePoint &
0x3F |
0x80
10715 } else if (codePoint <
0x10000) {
10716 if ((units -=
3) <
0) break
10718 codePoint
>> 0xC |
0xE0,
10719 codePoint
>> 0x6 &
0x3F |
0x80,
10720 codePoint &
0x3F |
0x80
10722 } else if (codePoint <
0x110000) {
10723 if ((units -=
4) <
0) break
10725 codePoint
>> 0x12 |
0xF0,
10726 codePoint
>> 0xC &
0x3F |
0x80,
10727 codePoint
>> 0x6 &
0x3F |
0x80,
10728 codePoint &
0x3F |
0x80
10731 throw new Error('Invalid code point')
10738 function asciiToBytes (str) {
10740 for (var i =
0; i < str.length; i++) {
10741 // Node's code seems to be doing this and not &
0x7F..
10742 byteArray.push(str.charCodeAt(i) &
0xFF)
10747 function utf16leToBytes (str, units) {
10750 for (var i =
0; i < str.length; i++) {
10751 if ((units -=
2) <
0) break
10753 c = str.charCodeAt(i)
10763 function base64ToBytes (str) {
10764 return base64.toByteArray(base64clean(str))
10767 function blitBuffer (src, dst, offset, length) {
10768 for (var i =
0; i < length; i++) {
10769 if ((i + offset
>= dst.length) || (i
>= src.length)) break
10770 dst[i + offset] = src[i]
10775 },{"base64-js":
8,"ieee754":
9,"is-array":
10}],
8:[function(require,module,exports){
10776 var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
10778 ;(function (exports) {
10781 var Arr = (typeof Uint8Array !== 'undefined')
10785 var PLUS = '+'.charCodeAt(
0)
10786 var SLASH = '/'.charCodeAt(
0)
10787 var NUMBER = '
0'.charCodeAt(
0)
10788 var LOWER = 'a'.charCodeAt(
0)
10789 var UPPER = 'A'.charCodeAt(
0)
10790 var PLUS_URL_SAFE = '-'.charCodeAt(
0)
10791 var SLASH_URL_SAFE = '_'.charCodeAt(
0)
10793 function decode (elt) {
10794 var code = elt.charCodeAt(
0)
10795 if (code === PLUS ||
10796 code === PLUS_URL_SAFE)
10798 if (code === SLASH ||
10799 code === SLASH_URL_SAFE)
10802 return -
1 //no match
10803 if (code < NUMBER +
10)
10804 return code - NUMBER +
26 +
26
10805 if (code < UPPER +
26)
10806 return code - UPPER
10807 if (code < LOWER +
26)
10808 return code - LOWER +
26
10811 function b64ToByteArray (b64) {
10812 var i, j, l, tmp, placeHolders, arr
10814 if (b64.length %
4 > 0) {
10815 throw new Error('Invalid string. Length must be a multiple of
4')
10818 // the number of equal signs (place holders)
10819 // if there are two placeholders, than the two characters before it
10820 // represent one byte
10821 // if there is only one, then the three characters before it represent
2 bytes
10822 // this is just a cheap hack to not do indexOf twice
10823 var len = b64.length
10824 placeHolders = '=' === b64.charAt(len -
2) ?
2 : '=' === b64.charAt(len -
1) ?
1 :
0
10826 // base64 is
4/
3 + up to two characters of the original data
10827 arr = new Arr(b64.length *
3 /
4 - placeHolders)
10829 // if there are placeholders, only get up to the last complete
4 chars
10830 l = placeHolders
> 0 ? b64.length -
4 : b64.length
10834 function push (v) {
10838 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
10839 tmp = (decode(b64.charAt(i)) <<
18) | (decode(b64.charAt(i +
1)) <<
12) | (decode(b64.charAt(i +
2)) <<
6) | decode(b64.charAt(i +
3))
10840 push((tmp &
0xFF0000)
>> 16)
10841 push((tmp &
0xFF00)
>> 8)
10845 if (placeHolders ===
2) {
10846 tmp = (decode(b64.charAt(i)) <<
2) | (decode(b64.charAt(i +
1))
>> 4)
10848 } else if (placeHolders ===
1) {
10849 tmp = (decode(b64.charAt(i)) <<
10) | (decode(b64.charAt(i +
1)) <<
4) | (decode(b64.charAt(i +
2))
>> 2)
10850 push((tmp
>> 8) &
0xFF)
10857 function uint8ToBase64 (uint8) {
10859 extraBytes = uint8.length %
3, // if we have
1 byte left, pad
2 bytes
10863 function encode (num) {
10864 return lookup.charAt(num)
10867 function tripletToBase64 (num) {
10868 return encode(num
>> 18 &
0x3F) + encode(num
>> 12 &
0x3F) + encode(num
>> 6 &
0x3F) + encode(num &
0x3F)
10871 // go through the array every three bytes, we'll deal with trailing stuff later
10872 for (i =
0, length = uint8.length - extraBytes; i < length; i +=
3) {
10873 temp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
10874 output += tripletToBase64(temp)
10877 // pad the end with zeros, but make sure to not forget the extra bytes
10878 switch (extraBytes) {
10880 temp = uint8[uint8.length -
1]
10881 output += encode(temp
>> 2)
10882 output += encode((temp <<
4) &
0x3F)
10886 temp = (uint8[uint8.length -
2] <<
8) + (uint8[uint8.length -
1])
10887 output += encode(temp
>> 10)
10888 output += encode((temp
>> 4) &
0x3F)
10889 output += encode((temp <<
2) &
0x3F)
10897 exports.toByteArray = b64ToByteArray
10898 exports.fromByteArray = uint8ToBase64
10899 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
10901 },{}],
9:[function(require,module,exports){
10902 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10904 var eLen = nBytes *
8 - mLen -
1
10905 var eMax = (
1 << eLen) -
1
10906 var eBias = eMax
>> 1
10908 var i = isLE ? (nBytes -
1) :
0
10909 var d = isLE ? -
1 :
1
10910 var s = buffer[offset + i]
10914 e = s & ((
1 << (-nBits)) -
1)
10917 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10919 m = e & ((
1 << (-nBits)) -
1)
10922 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10926 } else if (e === eMax) {
10927 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10929 m = m + Math.pow(
2, mLen)
10932 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10935 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10937 var eLen = nBytes *
8 - mLen -
1
10938 var eMax = (
1 << eLen) -
1
10939 var eBias = eMax
>> 1
10940 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10941 var i = isLE ?
0 : (nBytes -
1)
10942 var d = isLE ?
1 : -
1
10943 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10945 value = Math.abs(value)
10947 if (isNaN(value) || value === Infinity) {
10948 m = isNaN(value) ?
1 :
0
10951 e = Math.floor(Math.log(value) / Math.LN2)
10952 if (value * (c = Math.pow(
2, -e)) <
1) {
10956 if (e + eBias
>=
1) {
10959 value += rt * Math.pow(
2,
1 - eBias)
10961 if (value * c
>=
2) {
10966 if (e + eBias
>= eMax) {
10969 } else if (e + eBias
>=
1) {
10970 m = (value * c -
1) * Math.pow(
2, mLen)
10973 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10978 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10980 e = (e << mLen) | m
10982 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10984 buffer[offset + i - d] |= s *
128
10987 },{}],
10:[function(require,module,exports){
10993 var isArray = Array.isArray;
10999 var str = Object.prototype.toString;
11002 * Whether or not the given `val`
11009 * isArray(arguments);
11014 * @param {mixed} val
11018 module.exports = isArray || function (val) {
11019 return !! val && '[object Array]' == str.call(val);
11022 },{}],
11:[function(require,module,exports){
11023 // Copyright Joyent, Inc. and other Node contributors.
11025 // Permission is hereby granted, free of charge, to any person obtaining a
11026 // copy of this software and associated documentation files (the
11027 // "Software"), to deal in the Software without restriction, including
11028 // without limitation the rights to use, copy, modify, merge, publish,
11029 // distribute, sublicense, and/or sell copies of the Software, and to permit
11030 // persons to whom the Software is furnished to do so, subject to the
11031 // following conditions:
11033 // The above copyright notice and this permission notice shall be included
11034 // in all copies or substantial portions of the Software.
11036 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11037 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11038 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11039 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11040 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11041 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11042 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11044 function EventEmitter() {
11045 this._events = this._events || {};
11046 this._maxListeners = this._maxListeners || undefined;
11048 module.exports = EventEmitter;
11050 // Backwards-compat with node
0.10.x
11051 EventEmitter.EventEmitter = EventEmitter;
11053 EventEmitter.prototype._events = undefined;
11054 EventEmitter.prototype._maxListeners = undefined;
11056 // By default EventEmitters will print a warning if more than
10 listeners are
11057 // added to it. This is a useful default which helps finding memory leaks.
11058 EventEmitter.defaultMaxListeners =
10;
11060 // Obviously not all Emitters should be limited to
10. This function allows
11061 // that to be increased. Set to zero for unlimited.
11062 EventEmitter.prototype.setMaxListeners = function(n) {
11063 if (!isNumber(n) || n <
0 || isNaN(n))
11064 throw TypeError('n must be a positive number');
11065 this._maxListeners = n;
11069 EventEmitter.prototype.emit = function(type) {
11070 var er, handler, len, args, i, listeners;
11075 // If there is no 'error' event listener then throw.
11076 if (type === 'error') {
11077 if (!this._events.error ||
11078 (isObject(this._events.error) && !this._events.error.length)) {
11080 if (er instanceof Error) {
11081 throw er; // Unhandled 'error' event
11083 throw TypeError('Uncaught, unspecified "error" event.');
11087 handler = this._events[type];
11089 if (isUndefined(handler))
11092 if (isFunction(handler)) {
11093 switch (arguments.length) {
11096 handler.call(this);
11099 handler.call(this, arguments[
1]);
11102 handler.call(this, arguments[
1], arguments[
2]);
11106 len = arguments.length;
11107 args = new Array(len -
1);
11108 for (i =
1; i < len; i++)
11109 args[i -
1] = arguments[i];
11110 handler.apply(this, args);
11112 } else if (isObject(handler)) {
11113 len = arguments.length;
11114 args = new Array(len -
1);
11115 for (i =
1; i < len; i++)
11116 args[i -
1] = arguments[i];
11118 listeners = handler.slice();
11119 len = listeners.length;
11120 for (i =
0; i < len; i++)
11121 listeners[i].apply(this, args);
11127 EventEmitter.prototype.addListener = function(type, listener) {
11130 if (!isFunction(listener))
11131 throw TypeError('listener must be a function');
11136 // To avoid recursion in the case that type === "newListener"! Before
11137 // adding it to the listeners, first emit "newListener".
11138 if (this._events.newListener)
11139 this.emit('newListener', type,
11140 isFunction(listener.listener) ?
11141 listener.listener : listener);
11143 if (!this._events[type])
11144 // Optimize the case of one listener. Don't need the extra array object.
11145 this._events[type] = listener;
11146 else if (isObject(this._events[type]))
11147 // If we've already got an array, just append.
11148 this._events[type].push(listener);
11150 // Adding the second element, need to change to array.
11151 this._events[type] = [this._events[type], listener];
11153 // Check for listener leak
11154 if (isObject(this._events[type]) && !this._events[type].warned) {
11156 if (!isUndefined(this._maxListeners)) {
11157 m = this._maxListeners;
11159 m = EventEmitter.defaultMaxListeners;
11162 if (m && m
> 0 && this._events[type].length
> m) {
11163 this._events[type].warned = true;
11164 console.error('(node) warning: possible EventEmitter memory ' +
11165 'leak detected. %d listeners added. ' +
11166 'Use emitter.setMaxListeners() to increase limit.',
11167 this._events[type].length);
11168 if (typeof console.trace === 'function') {
11169 // not supported in IE
10
11178 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
11180 EventEmitter.prototype.once = function(type, listener) {
11181 if (!isFunction(listener))
11182 throw TypeError('listener must be a function');
11187 this.removeListener(type, g);
11191 listener.apply(this, arguments);
11195 g.listener = listener;
11201 // emits a 'removeListener' event iff the listener was removed
11202 EventEmitter.prototype.removeListener = function(type, listener) {
11203 var list, position, length, i;
11205 if (!isFunction(listener))
11206 throw TypeError('listener must be a function');
11208 if (!this._events || !this._events[type])
11211 list = this._events[type];
11212 length = list.length;
11215 if (list === listener ||
11216 (isFunction(list.listener) && list.listener === listener)) {
11217 delete this._events[type];
11218 if (this._events.removeListener)
11219 this.emit('removeListener', type, listener);
11221 } else if (isObject(list)) {
11222 for (i = length; i--
> 0;) {
11223 if (list[i] === listener ||
11224 (list[i].listener && list[i].listener === listener)) {
11233 if (list.length ===
1) {
11235 delete this._events[type];
11237 list.splice(position,
1);
11240 if (this._events.removeListener)
11241 this.emit('removeListener', type, listener);
11247 EventEmitter.prototype.removeAllListeners = function(type) {
11248 var key, listeners;
11253 // not listening for removeListener, no need to emit
11254 if (!this._events.removeListener) {
11255 if (arguments.length ===
0)
11257 else if (this._events[type])
11258 delete this._events[type];
11262 // emit removeListener for all listeners on all events
11263 if (arguments.length ===
0) {
11264 for (key in this._events) {
11265 if (key === 'removeListener') continue;
11266 this.removeAllListeners(key);
11268 this.removeAllListeners('removeListener');
11273 listeners = this._events[type];
11275 if (isFunction(listeners)) {
11276 this.removeListener(type, listeners);
11279 while (listeners.length)
11280 this.removeListener(type, listeners[listeners.length -
1]);
11282 delete this._events[type];
11287 EventEmitter.prototype.listeners = function(type) {
11289 if (!this._events || !this._events[type])
11291 else if (isFunction(this._events[type]))
11292 ret = [this._events[type]];
11294 ret = this._events[type].slice();
11298 EventEmitter.listenerCount = function(emitter, type) {
11300 if (!emitter._events || !emitter._events[type])
11302 else if (isFunction(emitter._events[type]))
11305 ret = emitter._events[type].length;
11309 function isFunction(arg) {
11310 return typeof arg === 'function';
11313 function isNumber(arg) {
11314 return typeof arg === 'number';
11317 function isObject(arg) {
11318 return typeof arg === 'object' && arg !== null;
11321 function isUndefined(arg) {
11322 return arg === void
0;
11325 },{}],
12:[function(require,module,exports){
11326 if (typeof Object.create === 'function') {
11327 // implementation from standard node.js 'util' module
11328 module.exports = function inherits(ctor, superCtor) {
11329 ctor.super_ = superCtor
11330 ctor.prototype = Object.create(superCtor.prototype, {
11340 // old school shim for old browsers
11341 module.exports = function inherits(ctor, superCtor) {
11342 ctor.super_ = superCtor
11343 var TempCtor = function () {}
11344 TempCtor.prototype = superCtor.prototype
11345 ctor.prototype = new TempCtor()
11346 ctor.prototype.constructor = ctor
11350 },{}],
13:[function(require,module,exports){
11351 module.exports = Array.isArray || function (arr) {
11352 return Object.prototype.toString.call(arr) == '[object Array]';
11355 },{}],
14:[function(require,module,exports){
11356 // shim for using process in browser
11358 var process = module.exports = {};
11360 var draining = false;
11362 var queueIndex = -
1;
11364 function cleanUpNextTick() {
11366 if (currentQueue.length) {
11367 queue = currentQueue.concat(queue);
11371 if (queue.length) {
11376 function drainQueue() {
11380 var timeout = setTimeout(cleanUpNextTick);
11383 var len = queue.length;
11385 currentQueue = queue;
11387 while (++queueIndex < len) {
11388 currentQueue[queueIndex].run();
11391 len = queue.length;
11393 currentQueue = null;
11395 clearTimeout(timeout);
11398 process.nextTick = function (fun) {
11399 var args = new Array(arguments.length -
1);
11400 if (arguments.length
> 1) {
11401 for (var i =
1; i < arguments.length; i++) {
11402 args[i -
1] = arguments[i];
11405 queue.push(new Item(fun, args));
11406 if (queue.length ===
1 && !draining) {
11407 setTimeout(drainQueue,
0);
11411 // v8 likes predictible objects
11412 function Item(fun, array) {
11414 this.array = array;
11416 Item.prototype.run = function () {
11417 this.fun.apply(null, this.array);
11419 process.title = 'browser';
11420 process.browser = true;
11423 process.version = ''; // empty string to avoid regexp issues
11424 process.versions = {};
11429 process.addListener = noop;
11430 process.once = noop;
11431 process.off = noop;
11432 process.removeListener = noop;
11433 process.removeAllListeners = noop;
11434 process.emit = noop;
11436 process.binding = function (name) {
11437 throw new Error('process.binding is not supported');
11441 process.cwd = function () { return '/' };
11442 process.chdir = function (dir) {
11443 throw new Error('process.chdir is not supported');
11445 process.umask = function() { return
0; };
11447 },{}],
15:[function(require,module,exports){
11448 module.exports = require(
"./lib/_stream_duplex.js")
11450 },{
"./lib/_stream_duplex.js":
16}],
16:[function(require,module,exports){
11451 (function (process){
11452 // Copyright Joyent, Inc. and other Node contributors.
11454 // Permission is hereby granted, free of charge, to any person obtaining a
11455 // copy of this software and associated documentation files (the
11456 //
"Software"), to deal in the Software without restriction, including
11457 // without limitation the rights to use, copy, modify, merge, publish,
11458 // distribute, sublicense, and/or sell copies of the Software, and to permit
11459 // persons to whom the Software is furnished to do so, subject to the
11460 // following conditions:
11462 // The above copyright notice and this permission notice shall be included
11463 // in all copies or substantial portions of the Software.
11465 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11466 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11467 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11468 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11469 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11470 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11471 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11473 // a duplex stream is just a stream that is both readable and writable.
11474 // Since JS doesn't have multiple prototypal inheritance, this class
11475 // prototypally inherits from Readable, and then parasitically from
11478 module.exports = Duplex;
11481 var objectKeys = Object.keys || function (obj) {
11483 for (var key in obj) keys.push(key);
11490 var util = require('core-util-is');
11491 util.inherits = require('inherits');
11494 var Readable = require('./_stream_readable');
11495 var Writable = require('./_stream_writable');
11497 util.inherits(Duplex, Readable);
11499 forEach(objectKeys(Writable.prototype), function(method) {
11500 if (!Duplex.prototype[method])
11501 Duplex.prototype[method] = Writable.prototype[method];
11504 function Duplex(options) {
11505 if (!(this instanceof Duplex))
11506 return new Duplex(options);
11508 Readable.call(this, options);
11509 Writable.call(this, options);
11511 if (options && options.readable === false)
11512 this.readable = false;
11514 if (options && options.writable === false)
11515 this.writable = false;
11517 this.allowHalfOpen = true;
11518 if (options && options.allowHalfOpen === false)
11519 this.allowHalfOpen = false;
11521 this.once('end', onend);
11524 // the no-half-open enforcer
11526 // if we allow half-open state, or if the writable side ended,
11528 if (this.allowHalfOpen || this._writableState.ended)
11531 // no more data can be written.
11532 // But allow more writes to happen in this tick.
11533 process.nextTick(this.end.bind(this));
11536 function forEach (xs, f) {
11537 for (var i =
0, l = xs.length; i < l; i++) {
11542 }).call(this,require('_process'))
11543 },{"./_stream_readable":
18,"./_stream_writable":
20,"_process":
14,"core-util-is":
21,"inherits":
12}],
17:[function(require,module,exports){
11544 // Copyright Joyent, Inc. and other Node contributors.
11546 // Permission is hereby granted, free of charge, to any person obtaining a
11547 // copy of this software and associated documentation files (the
11548 // "Software"), to deal in the Software without restriction, including
11549 // without limitation the rights to use, copy, modify, merge, publish,
11550 // distribute, sublicense, and/or sell copies of the Software, and to permit
11551 // persons to whom the Software is furnished to do so, subject to the
11552 // following conditions:
11554 // The above copyright notice and this permission notice shall be included
11555 // in all copies or substantial portions of the Software.
11557 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11558 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11559 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11560 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11561 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11562 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11563 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11565 // a passthrough stream.
11566 // basically just the most minimal sort of Transform stream.
11567 // Every written chunk gets output as-is.
11569 module.exports = PassThrough;
11571 var Transform = require('./_stream_transform');
11574 var util = require('core-util-is');
11575 util.inherits = require('inherits');
11578 util.inherits(PassThrough, Transform);
11580 function PassThrough(options) {
11581 if (!(this instanceof PassThrough))
11582 return new PassThrough(options);
11584 Transform.call(this, options);
11587 PassThrough.prototype._transform = function(chunk, encoding, cb) {
11591 },{"./_stream_transform":
19,"core-util-is":
21,"inherits":
12}],
18:[function(require,module,exports){
11592 (function (process){
11593 // Copyright Joyent, Inc. and other Node contributors.
11595 // Permission is hereby granted, free of charge, to any person obtaining a
11596 // copy of this software and associated documentation files (the
11597 // "Software"), to deal in the Software without restriction, including
11598 // without limitation the rights to use, copy, modify, merge, publish,
11599 // distribute, sublicense, and/or sell copies of the Software, and to permit
11600 // persons to whom the Software is furnished to do so, subject to the
11601 // following conditions:
11603 // The above copyright notice and this permission notice shall be included
11604 // in all copies or substantial portions of the Software.
11606 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11607 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11608 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11609 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11610 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11611 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11612 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11614 module.exports = Readable;
11617 var isArray = require('isarray');
11622 var Buffer = require('buffer').Buffer;
11625 Readable.ReadableState = ReadableState;
11627 var EE = require('events').EventEmitter;
11630 if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
11631 return emitter.listeners(type).length;
11635 var Stream = require('stream');
11638 var util = require('core-util-is');
11639 util.inherits = require('inherits');
11646 var debug = require('util');
11647 if (debug && debug.debuglog) {
11648 debug = debug.debuglog('stream');
11650 debug = function () {};
11655 util.inherits(Readable, Stream);
11657 function ReadableState(options, stream) {
11658 var Duplex = require('./_stream_duplex');
11660 options = options || {};
11662 // the point at which it stops calling _read() to fill the buffer
11663 // Note:
0 is a valid value, means "don't call _read preemptively ever"
11664 var hwm = options.highWaterMark;
11665 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
11666 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
11669 this.highWaterMark = ~~this.highWaterMark;
11674 this.pipesCount =
0;
11675 this.flowing = null;
11676 this.ended = false;
11677 this.endEmitted = false;
11678 this.reading = false;
11680 // a flag to be able to tell if the onwrite cb is called immediately,
11681 // or on a later tick. We set this to true at first, because any
11682 // actions that shouldn't happen until "later" should generally also
11683 // not happen before the first write call.
11686 // whenever we return null, then we set a flag to say
11687 // that we're awaiting a 'readable' event emission.
11688 this.needReadable = false;
11689 this.emittedReadable = false;
11690 this.readableListening = false;
11693 // object stream flag. Used to make read(n) ignore n and to
11694 // make all the buffer merging and length checks go away
11695 this.objectMode = !!options.objectMode;
11697 if (stream instanceof Duplex)
11698 this.objectMode = this.objectMode || !!options.readableObjectMode;
11700 // Crypto is kind of old and crusty. Historically, its default string
11701 // encoding is 'binary' so we have to make this configurable.
11702 // Everything else in the universe uses 'utf8', though.
11703 this.defaultEncoding = options.defaultEncoding || 'utf8';
11705 // when piping, we only care about 'readable' events that happen
11706 // after read()ing all the bytes and not getting any pushback.
11707 this.ranOut = false;
11709 // the number of writers that are awaiting a drain event in .pipe()s
11710 this.awaitDrain =
0;
11712 // if true, a maybeReadMore has been scheduled
11713 this.readingMore = false;
11715 this.decoder = null;
11716 this.encoding = null;
11717 if (options.encoding) {
11718 if (!StringDecoder)
11719 StringDecoder = require('string_decoder/').StringDecoder;
11720 this.decoder = new StringDecoder(options.encoding);
11721 this.encoding = options.encoding;
11725 function Readable(options) {
11726 var Duplex = require('./_stream_duplex');
11728 if (!(this instanceof Readable))
11729 return new Readable(options);
11731 this._readableState = new ReadableState(options, this);
11734 this.readable = true;
11739 // Manually shove something into the read() buffer.
11740 // This returns true if the highWaterMark has not been hit yet,
11741 // similar to how Writable.write() returns true if you should
11742 // write() some more.
11743 Readable.prototype.push = function(chunk, encoding) {
11744 var state = this._readableState;
11746 if (util.isString(chunk) && !state.objectMode) {
11747 encoding = encoding || state.defaultEncoding;
11748 if (encoding !== state.encoding) {
11749 chunk = new Buffer(chunk, encoding);
11754 return readableAddChunk(this, state, chunk, encoding, false);
11757 // Unshift should *always* be something directly out of read()
11758 Readable.prototype.unshift = function(chunk) {
11759 var state = this._readableState;
11760 return readableAddChunk(this, state, chunk, '', true);
11763 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
11764 var er = chunkInvalid(state, chunk);
11766 stream.emit('error', er);
11767 } else if (util.isNullOrUndefined(chunk)) {
11768 state.reading = false;
11770 onEofChunk(stream, state);
11771 } else if (state.objectMode || chunk && chunk.length
> 0) {
11772 if (state.ended && !addToFront) {
11773 var e = new Error('stream.push() after EOF');
11774 stream.emit('error', e);
11775 } else if (state.endEmitted && addToFront) {
11776 var e = new Error('stream.unshift() after end event');
11777 stream.emit('error', e);
11779 if (state.decoder && !addToFront && !encoding)
11780 chunk = state.decoder.write(chunk);
11783 state.reading = false;
11785 // if we want the data now, just emit it.
11786 if (state.flowing && state.length ===
0 && !state.sync) {
11787 stream.emit('data', chunk);
11790 // update the buffer info.
11791 state.length += state.objectMode ?
1 : chunk.length;
11793 state.buffer.unshift(chunk);
11795 state.buffer.push(chunk);
11797 if (state.needReadable)
11798 emitReadable(stream);
11801 maybeReadMore(stream, state);
11803 } else if (!addToFront) {
11804 state.reading = false;
11807 return needMoreData(state);
11812 // if it's past the high water mark, we can push in some more.
11813 // Also, if we have no data yet, we can stand some
11814 // more bytes. This is to work around cases where hwm=
0,
11815 // such as the repl. Also, if the push() triggered a
11816 // readable event, and the user called read(largeNumber) such that
11817 // needReadable was set, then we ought to push more, so that another
11818 // 'readable' event will be triggered.
11819 function needMoreData(state) {
11820 return !state.ended &&
11821 (state.needReadable ||
11822 state.length < state.highWaterMark ||
11823 state.length ===
0);
11826 // backwards compatibility.
11827 Readable.prototype.setEncoding = function(enc) {
11828 if (!StringDecoder)
11829 StringDecoder = require('string_decoder/').StringDecoder;
11830 this._readableState.decoder = new StringDecoder(enc);
11831 this._readableState.encoding = enc;
11835 // Don't raise the hwm
> 128MB
11836 var MAX_HWM =
0x800000;
11837 function roundUpToNextPowerOf2(n) {
11838 if (n
>= MAX_HWM) {
11841 // Get the next highest power of
2
11843 for (var p =
1; p <
32; p <<=
1) n |= n
>> p;
11849 function howMuchToRead(n, state) {
11850 if (state.length ===
0 && state.ended)
11853 if (state.objectMode)
11854 return n ===
0 ?
0 :
1;
11856 if (isNaN(n) || util.isNull(n)) {
11857 // only flow one buffer at a time
11858 if (state.flowing && state.buffer.length)
11859 return state.buffer[
0].length;
11861 return state.length;
11867 // If we're asking for more than the target buffer level,
11868 // then raise the water mark. Bump up to the next highest
11869 // power of
2, to prevent increasing it excessively in tiny
11871 if (n
> state.highWaterMark)
11872 state.highWaterMark = roundUpToNextPowerOf2(n);
11874 // don't have that much. return null, unless we've ended.
11875 if (n
> state.length) {
11876 if (!state.ended) {
11877 state.needReadable = true;
11880 return state.length;
11886 // you can override either this method, or the async _read(n) below.
11887 Readable.prototype.read = function(n) {
11889 var state = this._readableState;
11892 if (!util.isNumber(n) || n
> 0)
11893 state.emittedReadable = false;
11895 // if we're doing read(
0) to trigger a readable event, but we
11896 // already have a bunch of data in the buffer, then just trigger
11897 // the 'readable' event and move on.
11899 state.needReadable &&
11900 (state.length
>= state.highWaterMark || state.ended)) {
11901 debug('read: emitReadable', state.length, state.ended);
11902 if (state.length ===
0 && state.ended)
11905 emitReadable(this);
11909 n = howMuchToRead(n, state);
11911 // if we've ended, and we're now clear, then finish it up.
11912 if (n ===
0 && state.ended) {
11913 if (state.length ===
0)
11918 // All the actual chunk generation logic needs to be
11919 // *below* the call to _read. The reason is that in certain
11920 // synthetic stream cases, such as passthrough streams, _read
11921 // may be a completely synchronous operation which may change
11922 // the state of the read buffer, providing enough data when
11923 // before there was *not* enough.
11925 // So, the steps are:
11926 //
1. Figure out what the state of things will be after we do
11927 // a read from the buffer.
11929 //
2. If that resulting state will trigger a _read, then call _read.
11930 // Note that this may be asynchronous, or synchronous. Yes, it is
11931 // deeply ugly to write APIs this way, but that still doesn't mean
11932 // that the Readable class should behave improperly, as streams are
11933 // designed to be sync/async agnostic.
11934 // Take note if the _read call is sync or async (ie, if the read call
11935 // has returned yet), so that we know whether or not it's safe to emit
11938 //
3. Actually pull the requested chunks out of the buffer and return.
11940 // if we need a readable event, then we need to do some reading.
11941 var doRead = state.needReadable;
11942 debug('need readable', doRead);
11944 // if we currently have less than the highWaterMark, then also read some
11945 if (state.length ===
0 || state.length - n < state.highWaterMark) {
11947 debug('length less than watermark', doRead);
11950 // however, if we've ended, then there's no point, and if we're already
11951 // reading, then it's unnecessary.
11952 if (state.ended || state.reading) {
11954 debug('reading or ended', doRead);
11959 state.reading = true;
11961 // if the length is currently zero, then we *need* a readable event.
11962 if (state.length ===
0)
11963 state.needReadable = true;
11964 // call internal read method
11965 this._read(state.highWaterMark);
11966 state.sync = false;
11969 // If _read pushed data synchronously, then `reading` will be false,
11970 // and we need to re-evaluate how much data we can return to the user.
11971 if (doRead && !state.reading)
11972 n = howMuchToRead(nOrig, state);
11976 ret = fromList(n, state);
11980 if (util.isNull(ret)) {
11981 state.needReadable = true;
11987 // If we have nothing in the buffer, then we want to know
11988 // as soon as we *do* get something into the buffer.
11989 if (state.length ===
0 && !state.ended)
11990 state.needReadable = true;
11992 // If we tried to read() past the EOF, then emit end on the next tick.
11993 if (nOrig !== n && state.ended && state.length ===
0)
11996 if (!util.isNull(ret))
11997 this.emit('data', ret);
12002 function chunkInvalid(state, chunk) {
12004 if (!util.isBuffer(chunk) &&
12005 !util.isString(chunk) &&
12006 !util.isNullOrUndefined(chunk) &&
12007 !state.objectMode) {
12008 er = new TypeError('Invalid non-string/buffer chunk');
12014 function onEofChunk(stream, state) {
12015 if (state.decoder && !state.ended) {
12016 var chunk = state.decoder.end();
12017 if (chunk && chunk.length) {
12018 state.buffer.push(chunk);
12019 state.length += state.objectMode ?
1 : chunk.length;
12022 state.ended = true;
12024 // emit 'readable' now to make sure it gets picked up.
12025 emitReadable(stream);
12028 // Don't emit readable right away in sync mode, because this can trigger
12029 // another read() call =
> stack overflow. This way, it might trigger
12030 // a nextTick recursion warning, but that's not so bad.
12031 function emitReadable(stream) {
12032 var state = stream._readableState;
12033 state.needReadable = false;
12034 if (!state.emittedReadable) {
12035 debug('emitReadable', state.flowing);
12036 state.emittedReadable = true;
12038 process.nextTick(function() {
12039 emitReadable_(stream);
12042 emitReadable_(stream);
12046 function emitReadable_(stream) {
12047 debug('emit readable');
12048 stream.emit('readable');
12053 // at this point, the user has presumably seen the 'readable' event,
12054 // and called read() to consume some data. that may have triggered
12055 // in turn another _read(n) call, in which case reading = true if
12056 // it's in progress.
12057 // However, if we're not ended, or reading, and the length < hwm,
12058 // then go ahead and try to read some more preemptively.
12059 function maybeReadMore(stream, state) {
12060 if (!state.readingMore) {
12061 state.readingMore = true;
12062 process.nextTick(function() {
12063 maybeReadMore_(stream, state);
12068 function maybeReadMore_(stream, state) {
12069 var len = state.length;
12070 while (!state.reading && !state.flowing && !state.ended &&
12071 state.length < state.highWaterMark) {
12072 debug('maybeReadMore read
0');
12074 if (len === state.length)
12075 // didn't get any data, stop spinning.
12078 len = state.length;
12080 state.readingMore = false;
12083 // abstract method. to be overridden in specific implementation classes.
12084 // call cb(er, data) where data is <= n in length.
12085 // for virtual (non-string, non-buffer) streams, "length" is somewhat
12086 // arbitrary, and perhaps not very meaningful.
12087 Readable.prototype._read = function(n) {
12088 this.emit('error', new Error('not implemented'));
12091 Readable.prototype.pipe = function(dest, pipeOpts) {
12093 var state = this._readableState;
12095 switch (state.pipesCount) {
12097 state.pipes = dest;
12100 state.pipes = [state.pipes, dest];
12103 state.pipes.push(dest);
12106 state.pipesCount +=
1;
12107 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
12109 var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
12110 dest !== process.stdout &&
12111 dest !== process.stderr;
12113 var endFn = doEnd ? onend : cleanup;
12114 if (state.endEmitted)
12115 process.nextTick(endFn);
12117 src.once('end', endFn);
12119 dest.on('unpipe', onunpipe);
12120 function onunpipe(readable) {
12122 if (readable === src) {
12132 // when the dest drains, it reduces the awaitDrain counter
12133 // on the source. This would be more elegant with a .once()
12134 // handler in flow(), but adding and removing repeatedly is
12136 var ondrain = pipeOnDrain(src);
12137 dest.on('drain', ondrain);
12139 function cleanup() {
12141 // cleanup event handlers once the pipe is broken
12142 dest.removeListener('close', onclose);
12143 dest.removeListener('finish', onfinish);
12144 dest.removeListener('drain', ondrain);
12145 dest.removeListener('error', onerror);
12146 dest.removeListener('unpipe', onunpipe);
12147 src.removeListener('end', onend);
12148 src.removeListener('end', cleanup);
12149 src.removeListener('data', ondata);
12151 // if the reader is waiting for a drain event from this
12152 // specific writer, then it would cause it to never start
12154 // So, if this is awaiting a drain, then we just call it now.
12155 // If we don't know, then assume that we are waiting for one.
12156 if (state.awaitDrain &&
12157 (!dest._writableState || dest._writableState.needDrain))
12161 src.on('data', ondata);
12162 function ondata(chunk) {
12164 var ret = dest.write(chunk);
12165 if (false === ret) {
12166 debug('false write response, pause',
12167 src._readableState.awaitDrain);
12168 src._readableState.awaitDrain++;
12173 // if the dest has an error, then stop piping into it.
12174 // however, don't suppress the throwing behavior for this.
12175 function onerror(er) {
12176 debug('onerror', er);
12178 dest.removeListener('error', onerror);
12179 if (EE.listenerCount(dest, 'error') ===
0)
12180 dest.emit('error', er);
12182 // This is a brutally ugly hack to make sure that our error handler
12183 // is attached before any userland ones. NEVER DO THIS.
12184 if (!dest._events || !dest._events.error)
12185 dest.on('error', onerror);
12186 else if (isArray(dest._events.error))
12187 dest._events.error.unshift(onerror);
12189 dest._events.error = [onerror, dest._events.error];
12193 // Both close and finish should trigger unpipe, but only once.
12194 function onclose() {
12195 dest.removeListener('finish', onfinish);
12198 dest.once('close', onclose);
12199 function onfinish() {
12201 dest.removeListener('close', onclose);
12204 dest.once('finish', onfinish);
12206 function unpipe() {
12211 // tell the dest that it's being piped to
12212 dest.emit('pipe', src);
12214 // start the flow if it hasn't been started already.
12215 if (!state.flowing) {
12216 debug('pipe resume');
12223 function pipeOnDrain(src) {
12224 return function() {
12225 var state = src._readableState;
12226 debug('pipeOnDrain', state.awaitDrain);
12227 if (state.awaitDrain)
12228 state.awaitDrain--;
12229 if (state.awaitDrain ===
0 && EE.listenerCount(src, 'data')) {
12230 state.flowing = true;
12237 Readable.prototype.unpipe = function(dest) {
12238 var state = this._readableState;
12240 // if we're not piping anywhere, then do nothing.
12241 if (state.pipesCount ===
0)
12244 // just one destination. most common case.
12245 if (state.pipesCount ===
1) {
12246 // passed in one, but it's not the right one.
12247 if (dest && dest !== state.pipes)
12251 dest = state.pipes;
12254 state.pipes = null;
12255 state.pipesCount =
0;
12256 state.flowing = false;
12258 dest.emit('unpipe', this);
12262 // slow case. multiple pipe destinations.
12266 var dests = state.pipes;
12267 var len = state.pipesCount;
12268 state.pipes = null;
12269 state.pipesCount =
0;
12270 state.flowing = false;
12272 for (var i =
0; i < len; i++)
12273 dests[i].emit('unpipe', this);
12277 // try to find the right one.
12278 var i = indexOf(state.pipes, dest);
12282 state.pipes.splice(i,
1);
12283 state.pipesCount -=
1;
12284 if (state.pipesCount ===
1)
12285 state.pipes = state.pipes[
0];
12287 dest.emit('unpipe', this);
12292 // set up data events if they are asked for
12293 // Ensure readable listeners eventually get something
12294 Readable.prototype.on = function(ev, fn) {
12295 var res = Stream.prototype.on.call(this, ev, fn);
12297 // If listening to data, and it has not explicitly been paused,
12298 // then call resume to start the flow of data on the next tick.
12299 if (ev === 'data' && false !== this._readableState.flowing) {
12303 if (ev === 'readable' && this.readable) {
12304 var state = this._readableState;
12305 if (!state.readableListening) {
12306 state.readableListening = true;
12307 state.emittedReadable = false;
12308 state.needReadable = true;
12309 if (!state.reading) {
12311 process.nextTick(function() {
12312 debug('readable nexttick read
0');
12315 } else if (state.length) {
12316 emitReadable(this, state);
12323 Readable.prototype.addListener = Readable.prototype.on;
12325 // pause() and resume() are remnants of the legacy readable stream API
12326 // If the user uses them, then switch into old mode.
12327 Readable.prototype.resume = function() {
12328 var state = this._readableState;
12329 if (!state.flowing) {
12331 state.flowing = true;
12332 if (!state.reading) {
12333 debug('resume read
0');
12336 resume(this, state);
12341 function resume(stream, state) {
12342 if (!state.resumeScheduled) {
12343 state.resumeScheduled = true;
12344 process.nextTick(function() {
12345 resume_(stream, state);
12350 function resume_(stream, state) {
12351 state.resumeScheduled = false;
12352 stream.emit('resume');
12354 if (state.flowing && !state.reading)
12358 Readable.prototype.pause = function() {
12359 debug('call pause flowing=%j', this._readableState.flowing);
12360 if (false !== this._readableState.flowing) {
12362 this._readableState.flowing = false;
12363 this.emit('pause');
12368 function flow(stream) {
12369 var state = stream._readableState;
12370 debug('flow', state.flowing);
12371 if (state.flowing) {
12373 var chunk = stream.read();
12374 } while (null !== chunk && state.flowing);
12378 // wrap an old-style stream as the async data source.
12379 // This is *not* part of the readable stream interface.
12380 // It is an ugly unfortunate mess of history.
12381 Readable.prototype.wrap = function(stream) {
12382 var state = this._readableState;
12383 var paused = false;
12386 stream.on('end', function() {
12387 debug('wrapped end');
12388 if (state.decoder && !state.ended) {
12389 var chunk = state.decoder.end();
12390 if (chunk && chunk.length)
12397 stream.on('data', function(chunk) {
12398 debug('wrapped data');
12400 chunk = state.decoder.write(chunk);
12401 if (!chunk || !state.objectMode && !chunk.length)
12404 var ret = self.push(chunk);
12411 // proxy all the other methods.
12412 // important when wrapping filters and duplexes.
12413 for (var i in stream) {
12414 if (util.isFunction(stream[i]) && util.isUndefined(this[i])) {
12415 this[i] = function(method) { return function() {
12416 return stream[method].apply(stream, arguments);
12421 // proxy certain important events.
12422 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
12423 forEach(events, function(ev) {
12424 stream.on(ev, self.emit.bind(self, ev));
12427 // when we try to consume some more bytes, simply unpause the
12428 // underlying stream.
12429 self._read = function(n) {
12430 debug('wrapped _read', n);
12442 // exposed for testing purposes only.
12443 Readable._fromList = fromList;
12445 // Pluck off n bytes from an array of buffers.
12446 // Length is the combined lengths of all the buffers in the list.
12447 function fromList(n, state) {
12448 var list = state.buffer;
12449 var length = state.length;
12450 var stringMode = !!state.decoder;
12451 var objectMode = !!state.objectMode;
12454 // nothing in the list, definitely empty.
12455 if (list.length ===
0)
12460 else if (objectMode)
12461 ret = list.shift();
12462 else if (!n || n
>= length) {
12463 // read it all, truncate the array.
12465 ret = list.join('');
12467 ret = Buffer.concat(list, length);
12470 // read just some of it.
12471 if (n < list[
0].length) {
12472 // just take a part of the first list item.
12473 // slice is the same for buffers and strings.
12475 ret = buf.slice(
0, n);
12476 list[
0] = buf.slice(n);
12477 } else if (n === list[
0].length) {
12478 // first list is a perfect match
12479 ret = list.shift();
12482 // we have enough to cover it, but it spans past the first buffer.
12486 ret = new Buffer(n);
12489 for (var i =
0, l = list.length; i < l && c < n; i++) {
12491 var cpy = Math.min(n - c, buf.length);
12494 ret += buf.slice(
0, cpy);
12496 buf.copy(ret, c,
0, cpy);
12498 if (cpy < buf.length)
12499 list[
0] = buf.slice(cpy);
12511 function endReadable(stream) {
12512 var state = stream._readableState;
12514 // If we get here before consuming all the bytes, then that is a
12515 // bug in node. Should never happen.
12516 if (state.length
> 0)
12517 throw new Error('endReadable called on non-empty stream');
12519 if (!state.endEmitted) {
12520 state.ended = true;
12521 process.nextTick(function() {
12522 // Check that we didn't get one last unshift.
12523 if (!state.endEmitted && state.length ===
0) {
12524 state.endEmitted = true;
12525 stream.readable = false;
12526 stream.emit('end');
12532 function forEach (xs, f) {
12533 for (var i =
0, l = xs.length; i < l; i++) {
12538 function indexOf (xs, x) {
12539 for (var i =
0, l = xs.length; i < l; i++) {
12540 if (xs[i] === x) return i;
12545 }).call(this,require('_process'))
12546 },{
"./_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){
12547 // Copyright Joyent, Inc. and other Node contributors.
12549 // Permission is hereby granted, free of charge, to any person obtaining a
12550 // copy of this software and associated documentation files (the
12551 //
"Software"), to deal in the Software without restriction, including
12552 // without limitation the rights to use, copy, modify, merge, publish,
12553 // distribute, sublicense, and/or sell copies of the Software, and to permit
12554 // persons to whom the Software is furnished to do so, subject to the
12555 // following conditions:
12557 // The above copyright notice and this permission notice shall be included
12558 // in all copies or substantial portions of the Software.
12560 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12561 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12562 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12563 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12564 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12565 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12566 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12569 // a transform stream is a readable/writable stream where you do
12570 // something with the data. Sometimes it's called a
"filter",
12571 // but that's not a great name for it, since that implies a thing where
12572 // some bits pass through, and others are simply ignored. (That would
12573 // be a valid example of a transform, of course.)
12575 // While the output is causally related to the input, it's not a
12576 // necessarily symmetric or synchronous transformation. For example,
12577 // a zlib stream might take multiple plain-text writes(), and then
12578 // emit a single compressed chunk some time in the future.
12580 // Here's how this works:
12582 // The Transform stream has all the aspects of the readable and writable
12583 // stream classes. When you write(chunk), that calls _write(chunk,cb)
12584 // internally, and returns false if there's a lot of pending writes
12585 // buffered up. When you call read(), that calls _read(n) until
12586 // there's enough pending readable data buffered up.
12588 // In a transform stream, the written data is placed in a buffer. When
12589 // _read(n) is called, it transforms the queued up data, calling the
12590 // buffered _write cb's as it consumes chunks. If consuming a single
12591 // written chunk would result in multiple output chunks, then the first
12592 // outputted bit calls the readcb, and subsequent chunks just go into
12593 // the read buffer, and will cause it to emit 'readable' if necessary.
12595 // This way, back-pressure is actually determined by the reading side,
12596 // since _read has to be called to start processing a new chunk. However,
12597 // a pathological inflate type of transform can cause excessive buffering
12598 // here. For example, imagine a stream where every byte of input is
12599 // interpreted as an integer from
0-
255, and then results in that many
12600 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
12601 //
1kb of data being output. In this case, you could write a very small
12602 // amount of input, and end up with a very large amount of output. In
12603 // such a pathological inflating mechanism, there'd be no way to tell
12604 // the system to stop doing the transform. A single
4MB write could
12605 // cause the system to run out of memory.
12607 // However, even in such a pathological case, only a single written chunk
12608 // would be consumed, and then the rest would wait (un-transformed) until
12609 // the results of the previous transformed chunk were consumed.
12611 module.exports = Transform;
12613 var Duplex = require('./_stream_duplex');
12616 var util = require('core-util-is');
12617 util.inherits = require('inherits');
12620 util.inherits(Transform, Duplex);
12623 function TransformState(options, stream) {
12624 this.afterTransform = function(er, data) {
12625 return afterTransform(stream, er, data);
12628 this.needTransform = false;
12629 this.transforming = false;
12630 this.writecb = null;
12631 this.writechunk = null;
12634 function afterTransform(stream, er, data) {
12635 var ts = stream._transformState;
12636 ts.transforming = false;
12638 var cb = ts.writecb;
12641 return stream.emit('error', new Error('no writecb in Transform class'));
12643 ts.writechunk = null;
12646 if (!util.isNullOrUndefined(data))
12652 var rs = stream._readableState;
12653 rs.reading = false;
12654 if (rs.needReadable || rs.length < rs.highWaterMark) {
12655 stream._read(rs.highWaterMark);
12660 function Transform(options) {
12661 if (!(this instanceof Transform))
12662 return new Transform(options);
12664 Duplex.call(this, options);
12666 this._transformState = new TransformState(options, this);
12668 // when the writable side finishes, then flush out anything remaining.
12671 // start out asking for a readable event once data is transformed.
12672 this._readableState.needReadable = true;
12674 // we have implemented the _read method, and done the other things
12675 // that Readable wants before the first _read call, so unset the
12676 // sync guard flag.
12677 this._readableState.sync = false;
12679 this.once('prefinish', function() {
12680 if (util.isFunction(this._flush))
12681 this._flush(function(er) {
12689 Transform.prototype.push = function(chunk, encoding) {
12690 this._transformState.needTransform = false;
12691 return Duplex.prototype.push.call(this, chunk, encoding);
12694 // This is the part where you do stuff!
12695 // override this function in implementation classes.
12696 // 'chunk' is an input chunk.
12698 // Call `push(newChunk)` to pass along transformed output
12699 // to the readable side. You may call 'push' zero or more times.
12701 // Call `cb(err)` when you are done with this chunk. If you pass
12702 // an error, then that'll put the hurt on the whole operation. If you
12703 // never call cb(), then you'll never get another chunk.
12704 Transform.prototype._transform = function(chunk, encoding, cb) {
12705 throw new Error('not implemented');
12708 Transform.prototype._write = function(chunk, encoding, cb) {
12709 var ts = this._transformState;
12711 ts.writechunk = chunk;
12712 ts.writeencoding = encoding;
12713 if (!ts.transforming) {
12714 var rs = this._readableState;
12715 if (ts.needTransform ||
12717 rs.length < rs.highWaterMark)
12718 this._read(rs.highWaterMark);
12722 // Doesn't matter what the args are here.
12723 // _transform does all the work.
12724 // That we got here means that the readable side wants more data.
12725 Transform.prototype._read = function(n) {
12726 var ts = this._transformState;
12728 if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) {
12729 ts.transforming = true;
12730 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
12732 // mark that we need a transform, so that any data that comes in
12733 // will get processed, now that we've asked for it.
12734 ts.needTransform = true;
12739 function done(stream, er) {
12741 return stream.emit('error', er);
12743 // if there's nothing in the write buffer, then that means
12744 // that nothing more will ever be provided
12745 var ws = stream._writableState;
12746 var ts = stream._transformState;
12749 throw new Error('calling transform done when ws.length !=
0');
12751 if (ts.transforming)
12752 throw new Error('calling transform done when still transforming');
12754 return stream.push(null);
12757 },{"./_stream_duplex":
16,"core-util-is":
21,"inherits":
12}],
20:[function(require,module,exports){
12758 (function (process){
12759 // Copyright Joyent, Inc. and other Node contributors.
12761 // Permission is hereby granted, free of charge, to any person obtaining a
12762 // copy of this software and associated documentation files (the
12763 // "Software"), to deal in the Software without restriction, including
12764 // without limitation the rights to use, copy, modify, merge, publish,
12765 // distribute, sublicense, and/or sell copies of the Software, and to permit
12766 // persons to whom the Software is furnished to do so, subject to the
12767 // following conditions:
12769 // The above copyright notice and this permission notice shall be included
12770 // in all copies or substantial portions of the Software.
12772 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12773 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12774 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12775 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12776 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12777 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12778 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12780 // A bit simpler than readable streams.
12781 // Implement an async ._write(chunk, cb), and it'll handle all
12782 // the drain event emission and buffering.
12784 module.exports = Writable;
12787 var Buffer = require('buffer').Buffer;
12790 Writable.WritableState = WritableState;
12794 var util = require('core-util-is');
12795 util.inherits = require('inherits');
12798 var Stream = require('stream');
12800 util.inherits(Writable, Stream);
12802 function WriteReq(chunk, encoding, cb) {
12803 this.chunk = chunk;
12804 this.encoding = encoding;
12805 this.callback = cb;
12808 function WritableState(options, stream) {
12809 var Duplex = require('./_stream_duplex');
12811 options = options || {};
12813 // the point at which write() starts returning false
12814 // Note:
0 is a valid value, means that we always return false if
12815 // the entire buffer is not flushed immediately on write()
12816 var hwm = options.highWaterMark;
12817 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
12818 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
12820 // object stream flag to indicate whether or not this stream
12821 // contains buffers or objects.
12822 this.objectMode = !!options.objectMode;
12824 if (stream instanceof Duplex)
12825 this.objectMode = this.objectMode || !!options.writableObjectMode;
12828 this.highWaterMark = ~~this.highWaterMark;
12830 this.needDrain = false;
12831 // at the start of calling end()
12832 this.ending = false;
12833 // when end() has been called, and returned
12834 this.ended = false;
12835 // when 'finish' is emitted
12836 this.finished = false;
12838 // should we decode strings into buffers before passing to _write?
12839 // this is here so that some node-core streams can optimize string
12840 // handling at a lower level.
12841 var noDecode = options.decodeStrings === false;
12842 this.decodeStrings = !noDecode;
12844 // Crypto is kind of old and crusty. Historically, its default string
12845 // encoding is 'binary' so we have to make this configurable.
12846 // Everything else in the universe uses 'utf8', though.
12847 this.defaultEncoding = options.defaultEncoding || 'utf8';
12849 // not an actual buffer we keep track of, but a measurement
12850 // of how much we're waiting to get pushed to some underlying
12854 // a flag to see when we're in the middle of a write.
12855 this.writing = false;
12857 // when true all writes will be buffered until .uncork() call
12860 // a flag to be able to tell if the onwrite cb is called immediately,
12861 // or on a later tick. We set this to true at first, because any
12862 // actions that shouldn't happen until "later" should generally also
12863 // not happen before the first write call.
12866 // a flag to know if we're processing previously buffered items, which
12867 // may call the _write() callback in the same tick, so that we don't
12868 // end up in an overlapped onwrite situation.
12869 this.bufferProcessing = false;
12871 // the callback that's passed to _write(chunk,cb)
12872 this.onwrite = function(er) {
12873 onwrite(stream, er);
12876 // the callback that the user supplies to write(chunk,encoding,cb)
12877 this.writecb = null;
12879 // the amount that is being written when _write is called.
12884 // number of pending user-supplied write callbacks
12885 // this must be
0 before 'finish' can be emitted
12886 this.pendingcb =
0;
12888 // emit prefinish if the only thing we're waiting for is _write cbs
12889 // This is relevant for synchronous Transform streams
12890 this.prefinished = false;
12892 // True if the error was already emitted and should not be thrown again
12893 this.errorEmitted = false;
12896 function Writable(options) {
12897 var Duplex = require('./_stream_duplex');
12899 // Writable ctor is applied to Duplexes, though they're not
12900 // instanceof Writable, they're instanceof Readable.
12901 if (!(this instanceof Writable) && !(this instanceof Duplex))
12902 return new Writable(options);
12904 this._writableState = new WritableState(options, this);
12907 this.writable = true;
12912 // Otherwise people can pipe Writable streams, which is just wrong.
12913 Writable.prototype.pipe = function() {
12914 this.emit('error', new Error('Cannot pipe. Not readable.'));
12918 function writeAfterEnd(stream, state, cb) {
12919 var er = new Error('write after end');
12920 // TODO: defer error events consistently everywhere, not just the cb
12921 stream.emit('error', er);
12922 process.nextTick(function() {
12927 // If we get something that is not a buffer, string, null, or undefined,
12928 // and we're not in objectMode, then that's an error.
12929 // Otherwise stream chunks are all considered to be of length=
1, and the
12930 // watermarks determine how many objects to keep in the buffer, rather than
12931 // how many bytes or characters.
12932 function validChunk(stream, state, chunk, cb) {
12934 if (!util.isBuffer(chunk) &&
12935 !util.isString(chunk) &&
12936 !util.isNullOrUndefined(chunk) &&
12937 !state.objectMode) {
12938 var er = new TypeError('Invalid non-string/buffer chunk');
12939 stream.emit('error', er);
12940 process.nextTick(function() {
12948 Writable.prototype.write = function(chunk, encoding, cb) {
12949 var state = this._writableState;
12952 if (util.isFunction(encoding)) {
12957 if (util.isBuffer(chunk))
12958 encoding = 'buffer';
12959 else if (!encoding)
12960 encoding = state.defaultEncoding;
12962 if (!util.isFunction(cb))
12963 cb = function() {};
12966 writeAfterEnd(this, state, cb);
12967 else if (validChunk(this, state, chunk, cb)) {
12969 ret = writeOrBuffer(this, state, chunk, encoding, cb);
12975 Writable.prototype.cork = function() {
12976 var state = this._writableState;
12981 Writable.prototype.uncork = function() {
12982 var state = this._writableState;
12984 if (state.corked) {
12987 if (!state.writing &&
12990 !state.bufferProcessing &&
12991 state.buffer.length)
12992 clearBuffer(this, state);
12996 function decodeChunk(state, chunk, encoding) {
12997 if (!state.objectMode &&
12998 state.decodeStrings !== false &&
12999 util.isString(chunk)) {
13000 chunk = new Buffer(chunk, encoding);
13005 // if we're already writing something, then just put this
13006 // in the queue, and wait our turn. Otherwise, call _write
13007 // If we return false, then we need a drain event, so set that flag.
13008 function writeOrBuffer(stream, state, chunk, encoding, cb) {
13009 chunk = decodeChunk(state, chunk, encoding);
13010 if (util.isBuffer(chunk))
13011 encoding = 'buffer';
13012 var len = state.objectMode ?
1 : chunk.length;
13014 state.length += len;
13016 var ret = state.length < state.highWaterMark;
13017 // we must ensure that previous needDrain will not be reset to false.
13019 state.needDrain = true;
13021 if (state.writing || state.corked)
13022 state.buffer.push(new WriteReq(chunk, encoding, cb));
13024 doWrite(stream, state, false, len, chunk, encoding, cb);
13029 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
13030 state.writelen = len;
13031 state.writecb = cb;
13032 state.writing = true;
13035 stream._writev(chunk, state.onwrite);
13037 stream._write(chunk, encoding, state.onwrite);
13038 state.sync = false;
13041 function onwriteError(stream, state, sync, er, cb) {
13043 process.nextTick(function() {
13052 stream._writableState.errorEmitted = true;
13053 stream.emit('error', er);
13056 function onwriteStateUpdate(state) {
13057 state.writing = false;
13058 state.writecb = null;
13059 state.length -= state.writelen;
13060 state.writelen =
0;
13063 function onwrite(stream, er) {
13064 var state = stream._writableState;
13065 var sync = state.sync;
13066 var cb = state.writecb;
13068 onwriteStateUpdate(state);
13071 onwriteError(stream, state, sync, er, cb);
13073 // Check if we're actually ready to finish, but don't emit yet
13074 var finished = needFinish(stream, state);
13078 !state.bufferProcessing &&
13079 state.buffer.length) {
13080 clearBuffer(stream, state);
13084 process.nextTick(function() {
13085 afterWrite(stream, state, finished, cb);
13088 afterWrite(stream, state, finished, cb);
13093 function afterWrite(stream, state, finished, cb) {
13095 onwriteDrain(stream, state);
13098 finishMaybe(stream, state);
13101 // Must force callback to be called on nextTick, so that we don't
13102 // emit 'drain' before the write() consumer gets the 'false' return
13103 // value, and has a chance to attach a 'drain' listener.
13104 function onwriteDrain(stream, state) {
13105 if (state.length ===
0 && state.needDrain) {
13106 state.needDrain = false;
13107 stream.emit('drain');
13112 // if there's something in the buffer waiting, then process it
13113 function clearBuffer(stream, state) {
13114 state.bufferProcessing = true;
13116 if (stream._writev && state.buffer.length
> 1) {
13117 // Fast case, write everything using _writev()
13119 for (var c =
0; c < state.buffer.length; c++)
13120 cbs.push(state.buffer[c].callback);
13122 // count the one we are adding, as well.
13123 // TODO(isaacs) clean this up
13125 doWrite(stream, state, true, state.length, state.buffer, '', function(err) {
13126 for (var i =
0; i < cbs.length; i++) {
13135 // Slow case, write chunks one-by-one
13136 for (var c =
0; c < state.buffer.length; c++) {
13137 var entry = state.buffer[c];
13138 var chunk = entry.chunk;
13139 var encoding = entry.encoding;
13140 var cb = entry.callback;
13141 var len = state.objectMode ?
1 : chunk.length;
13143 doWrite(stream, state, false, len, chunk, encoding, cb);
13145 // if we didn't call the onwrite immediately, then
13146 // it means that we need to wait until it does.
13147 // also, that means that the chunk and cb are currently
13148 // being processed, so move the buffer counter past them.
13149 if (state.writing) {
13155 if (c < state.buffer.length)
13156 state.buffer = state.buffer.slice(c);
13158 state.buffer.length =
0;
13161 state.bufferProcessing = false;
13164 Writable.prototype._write = function(chunk, encoding, cb) {
13165 cb(new Error('not implemented'));
13169 Writable.prototype._writev = null;
13171 Writable.prototype.end = function(chunk, encoding, cb) {
13172 var state = this._writableState;
13174 if (util.isFunction(chunk)) {
13178 } else if (util.isFunction(encoding)) {
13183 if (!util.isNullOrUndefined(chunk))
13184 this.write(chunk, encoding);
13186 // .end() fully uncorks
13187 if (state.corked) {
13192 // ignore unnecessary end() calls.
13193 if (!state.ending && !state.finished)
13194 endWritable(this, state, cb);
13198 function needFinish(stream, state) {
13199 return (state.ending &&
13200 state.length ===
0 &&
13205 function prefinish(stream, state) {
13206 if (!state.prefinished) {
13207 state.prefinished = true;
13208 stream.emit('prefinish');
13212 function finishMaybe(stream, state) {
13213 var need = needFinish(stream, state);
13215 if (state.pendingcb ===
0) {
13216 prefinish(stream, state);
13217 state.finished = true;
13218 stream.emit('finish');
13220 prefinish(stream, state);
13225 function endWritable(stream, state, cb) {
13226 state.ending = true;
13227 finishMaybe(stream, state);
13229 if (state.finished)
13230 process.nextTick(cb);
13232 stream.once('finish', cb);
13234 state.ended = true;
13237 }).call(this,require('_process'))
13238 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"inherits":
12,
"stream":
26}],
21:[function(require,module,exports){
13239 (function (Buffer){
13240 // Copyright Joyent, Inc. and other Node contributors.
13242 // Permission is hereby granted, free of charge, to any person obtaining a
13243 // copy of this software and associated documentation files (the
13244 //
"Software"), to deal in the Software without restriction, including
13245 // without limitation the rights to use, copy, modify, merge, publish,
13246 // distribute, sublicense, and/or sell copies of the Software, and to permit
13247 // persons to whom the Software is furnished to do so, subject to the
13248 // following conditions:
13250 // The above copyright notice and this permission notice shall be included
13251 // in all copies or substantial portions of the Software.
13253 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13254 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13255 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13256 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13257 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13258 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13259 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13261 // NOTE: These type checking functions intentionally don't use `instanceof`
13262 // because it is fragile and can be easily faked with `Object.create()`.
13263 function isArray(ar) {
13264 return Array.isArray(ar);
13266 exports.isArray = isArray;
13268 function isBoolean(arg) {
13269 return typeof arg === 'boolean';
13271 exports.isBoolean = isBoolean;
13273 function isNull(arg) {
13274 return arg === null;
13276 exports.isNull = isNull;
13278 function isNullOrUndefined(arg) {
13279 return arg == null;
13281 exports.isNullOrUndefined = isNullOrUndefined;
13283 function isNumber(arg) {
13284 return typeof arg === 'number';
13286 exports.isNumber = isNumber;
13288 function isString(arg) {
13289 return typeof arg === 'string';
13291 exports.isString = isString;
13293 function isSymbol(arg) {
13294 return typeof arg === 'symbol';
13296 exports.isSymbol = isSymbol;
13298 function isUndefined(arg) {
13299 return arg === void
0;
13301 exports.isUndefined = isUndefined;
13303 function isRegExp(re) {
13304 return isObject(re) && objectToString(re) === '[object RegExp]';
13306 exports.isRegExp = isRegExp;
13308 function isObject(arg) {
13309 return typeof arg === 'object' && arg !== null;
13311 exports.isObject = isObject;
13313 function isDate(d) {
13314 return isObject(d) && objectToString(d) === '[object Date]';
13316 exports.isDate = isDate;
13318 function isError(e) {
13319 return isObject(e) &&
13320 (objectToString(e) === '[object Error]' || e instanceof Error);
13322 exports.isError = isError;
13324 function isFunction(arg) {
13325 return typeof arg === 'function';
13327 exports.isFunction = isFunction;
13329 function isPrimitive(arg) {
13330 return arg === null ||
13331 typeof arg === 'boolean' ||
13332 typeof arg === 'number' ||
13333 typeof arg === 'string' ||
13334 typeof arg === 'symbol' || // ES6 symbol
13335 typeof arg === 'undefined';
13337 exports.isPrimitive = isPrimitive;
13339 function isBuffer(arg) {
13340 return Buffer.isBuffer(arg);
13342 exports.isBuffer = isBuffer;
13344 function objectToString(o) {
13345 return Object.prototype.toString.call(o);
13347 }).call(this,require(
"buffer").Buffer)
13348 },{
"buffer":
7}],
22:[function(require,module,exports){
13349 module.exports = require(
"./lib/_stream_passthrough.js")
13351 },{
"./lib/_stream_passthrough.js":
17}],
23:[function(require,module,exports){
13352 exports = module.exports = require('./lib/_stream_readable.js');
13353 exports.Stream = require('stream');
13354 exports.Readable = exports;
13355 exports.Writable = require('./lib/_stream_writable.js');
13356 exports.Duplex = require('./lib/_stream_duplex.js');
13357 exports.Transform = require('./lib/_stream_transform.js');
13358 exports.PassThrough = require('./lib/_stream_passthrough.js');
13360 },{
"./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){
13361 module.exports = require(
"./lib/_stream_transform.js")
13363 },{
"./lib/_stream_transform.js":
19}],
25:[function(require,module,exports){
13364 module.exports = require(
"./lib/_stream_writable.js")
13366 },{
"./lib/_stream_writable.js":
20}],
26:[function(require,module,exports){
13367 // Copyright Joyent, Inc. and other Node contributors.
13369 // Permission is hereby granted, free of charge, to any person obtaining a
13370 // copy of this software and associated documentation files (the
13371 //
"Software"), to deal in the Software without restriction, including
13372 // without limitation the rights to use, copy, modify, merge, publish,
13373 // distribute, sublicense, and/or sell copies of the Software, and to permit
13374 // persons to whom the Software is furnished to do so, subject to the
13375 // following conditions:
13377 // The above copyright notice and this permission notice shall be included
13378 // in all copies or substantial portions of the Software.
13380 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13381 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13382 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13383 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13384 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13385 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13386 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13388 module.exports = Stream;
13390 var EE = require('events').EventEmitter;
13391 var inherits = require('inherits');
13393 inherits(Stream, EE);
13394 Stream.Readable = require('readable-stream/readable.js');
13395 Stream.Writable = require('readable-stream/writable.js');
13396 Stream.Duplex = require('readable-stream/duplex.js');
13397 Stream.Transform = require('readable-stream/transform.js');
13398 Stream.PassThrough = require('readable-stream/passthrough.js');
13400 // Backwards-compat with node
0.4.x
13401 Stream.Stream = Stream;
13405 // old-style streams. Note that the pipe method (the only relevant
13406 // part of this class) is overridden in the Readable class.
13408 function Stream() {
13412 Stream.prototype.pipe = function(dest, options) {
13415 function ondata(chunk) {
13416 if (dest.writable) {
13417 if (false === dest.write(chunk) && source.pause) {
13423 source.on('data', ondata);
13425 function ondrain() {
13426 if (source.readable && source.resume) {
13431 dest.on('drain', ondrain);
13433 // If the 'end' option is not supplied, dest.end() will be called when
13434 // source gets the 'end' or 'close' events. Only dest.end() once.
13435 if (!dest._isStdio && (!options || options.end !== false)) {
13436 source.on('end', onend);
13437 source.on('close', onclose);
13440 var didOnEnd = false;
13442 if (didOnEnd) return;
13449 function onclose() {
13450 if (didOnEnd) return;
13453 if (typeof dest.destroy === 'function') dest.destroy();
13456 // don't leave dangling pipes when there are errors.
13457 function onerror(er) {
13459 if (EE.listenerCount(this, 'error') ===
0) {
13460 throw er; // Unhandled stream error in pipe.
13464 source.on('error', onerror);
13465 dest.on('error', onerror);
13467 // remove all the event listeners that were added.
13468 function cleanup() {
13469 source.removeListener('data', ondata);
13470 dest.removeListener('drain', ondrain);
13472 source.removeListener('end', onend);
13473 source.removeListener('close', onclose);
13475 source.removeListener('error', onerror);
13476 dest.removeListener('error', onerror);
13478 source.removeListener('end', cleanup);
13479 source.removeListener('close', cleanup);
13481 dest.removeListener('close', cleanup);
13484 source.on('end', cleanup);
13485 source.on('close', cleanup);
13487 dest.on('close', cleanup);
13489 dest.emit('pipe', source);
13491 // Allow for unix-like usage: A.pipe(B).pipe(C)
13495 },{
"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){
13496 // Copyright Joyent, Inc. and other Node contributors.
13498 // Permission is hereby granted, free of charge, to any person obtaining a
13499 // copy of this software and associated documentation files (the
13500 //
"Software"), to deal in the Software without restriction, including
13501 // without limitation the rights to use, copy, modify, merge, publish,
13502 // distribute, sublicense, and/or sell copies of the Software, and to permit
13503 // persons to whom the Software is furnished to do so, subject to the
13504 // following conditions:
13506 // The above copyright notice and this permission notice shall be included
13507 // in all copies or substantial portions of the Software.
13509 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13510 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13511 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13512 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13513 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13514 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13515 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13517 var Buffer = require('buffer').Buffer;
13519 var isBufferEncoding = Buffer.isEncoding
13520 || function(encoding) {
13521 switch (encoding && encoding.toLowerCase()) {
13522 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;
13523 default: return false;
13528 function assertEncoding(encoding) {
13529 if (encoding && !isBufferEncoding(encoding)) {
13530 throw new Error('Unknown encoding: ' + encoding);
13534 // StringDecoder provides an interface for efficiently splitting a series of
13535 // buffers into a series of JS strings without breaking apart multi-byte
13536 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
13538 // @TODO Handling all encodings inside a single object makes it very difficult
13539 // to reason about this code, so it should be split up in the future.
13540 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
13541 // points as used by CESU-
8.
13542 var StringDecoder = exports.StringDecoder = function(encoding) {
13543 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
13544 assertEncoding(encoding);
13545 switch (this.encoding) {
13547 // CESU-
8 represents each of Surrogate Pair by
3-bytes
13548 this.surrogateSize =
3;
13552 // UTF-
16 represents each of Surrogate Pair by
2-bytes
13553 this.surrogateSize =
2;
13554 this.detectIncompleteChar = utf16DetectIncompleteChar;
13557 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
13558 this.surrogateSize =
3;
13559 this.detectIncompleteChar = base64DetectIncompleteChar;
13562 this.write = passThroughWrite;
13566 // Enough space to store all bytes of a single character. UTF-
8 needs
4
13567 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
13568 this.charBuffer = new Buffer(
6);
13569 // Number of bytes received for the current incomplete multi-byte character.
13570 this.charReceived =
0;
13571 // Number of bytes expected for the current incomplete multi-byte character.
13572 this.charLength =
0;
13576 // write decodes the given buffer and returns it as JS string that is
13577 // guaranteed to not contain any partial multi-byte characters. Any partial
13578 // character found at the end of the buffer is buffered up, and will be
13579 // returned when calling write again with the remaining bytes.
13581 // Note: Converting a Buffer containing an orphan surrogate to a String
13582 // currently works, but converting a String to a Buffer (via `new Buffer`, or
13583 // Buffer#write) will replace incomplete surrogates with the unicode
13584 // replacement character. See https://codereview.chromium.org/
121173009/ .
13585 StringDecoder.prototype.write = function(buffer) {
13587 // if our last write ended with an incomplete multibyte character
13588 while (this.charLength) {
13589 // determine how many remaining bytes this buffer has to offer for this char
13590 var available = (buffer.length
>= this.charLength - this.charReceived) ?
13591 this.charLength - this.charReceived :
13594 // add the new bytes to the char buffer
13595 buffer.copy(this.charBuffer, this.charReceived,
0, available);
13596 this.charReceived += available;
13598 if (this.charReceived < this.charLength) {
13599 // still not enough chars in this buffer? wait for more ...
13603 // remove bytes belonging to the current character from the buffer
13604 buffer = buffer.slice(available, buffer.length);
13606 // get the character that was split
13607 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
13609 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
13610 var charCode = charStr.charCodeAt(charStr.length -
1);
13611 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
13612 this.charLength += this.surrogateSize;
13616 this.charReceived = this.charLength =
0;
13618 // if there are no more bytes in this buffer, just emit our char
13619 if (buffer.length ===
0) {
13625 // determine and set charLength / charReceived
13626 this.detectIncompleteChar(buffer);
13628 var end = buffer.length;
13629 if (this.charLength) {
13630 // buffer the incomplete character bytes we got
13631 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
13632 end -= this.charReceived;
13635 charStr += buffer.toString(this.encoding,
0, end);
13637 var end = charStr.length -
1;
13638 var charCode = charStr.charCodeAt(end);
13639 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
13640 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
13641 var size = this.surrogateSize;
13642 this.charLength += size;
13643 this.charReceived += size;
13644 this.charBuffer.copy(this.charBuffer, size,
0, size);
13645 buffer.copy(this.charBuffer,
0,
0, size);
13646 return charStr.substring(
0, end);
13649 // or just emit the charStr
13653 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
13654 // the end of the given buffer. If so, it sets this.charLength to the byte
13655 // length that character, and sets this.charReceived to the number of bytes
13656 // that are available for this character.
13657 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
13658 // determine how many bytes we have to check at the end of this buffer
13659 var i = (buffer.length
>=
3) ?
3 : buffer.length;
13661 // Figure out if one of the last i bytes of our buffer announces an
13662 // incomplete char.
13663 for (; i
> 0; i--) {
13664 var c = buffer[buffer.length - i];
13666 // See http://en.wikipedia.org/wiki/UTF-
8#Description
13669 if (i ==
1 && c
>> 5 ==
0x06) {
13670 this.charLength =
2;
13675 if (i <=
2 && c
>> 4 ==
0x0E) {
13676 this.charLength =
3;
13681 if (i <=
3 && c
>> 3 ==
0x1E) {
13682 this.charLength =
4;
13686 this.charReceived = i;
13689 StringDecoder.prototype.end = function(buffer) {
13691 if (buffer && buffer.length)
13692 res = this.write(buffer);
13694 if (this.charReceived) {
13695 var cr = this.charReceived;
13696 var buf = this.charBuffer;
13697 var enc = this.encoding;
13698 res += buf.slice(
0, cr).toString(enc);
13704 function passThroughWrite(buffer) {
13705 return buffer.toString(this.encoding);
13708 function utf16DetectIncompleteChar(buffer) {
13709 this.charReceived = buffer.length %
2;
13710 this.charLength = this.charReceived ?
2 :
0;
13713 function base64DetectIncompleteChar(buffer) {
13714 this.charReceived = buffer.length %
3;
13715 this.charLength = this.charReceived ?
3 :
0;
13718 },{
"buffer":
7}],
28:[function(require,module,exports){
13719 module.exports = function isBuffer(arg) {
13720 return arg && typeof arg === 'object'
13721 && typeof arg.copy === 'function'
13722 && typeof arg.fill === 'function'
13723 && typeof arg.readUInt8 === 'function';
13725 },{}],
29:[function(require,module,exports){
13726 (function (process,global){
13727 // Copyright Joyent, Inc. and other Node contributors.
13729 // Permission is hereby granted, free of charge, to any person obtaining a
13730 // copy of this software and associated documentation files (the
13731 //
"Software"), to deal in the Software without restriction, including
13732 // without limitation the rights to use, copy, modify, merge, publish,
13733 // distribute, sublicense, and/or sell copies of the Software, and to permit
13734 // persons to whom the Software is furnished to do so, subject to the
13735 // following conditions:
13737 // The above copyright notice and this permission notice shall be included
13738 // in all copies or substantial portions of the Software.
13740 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13741 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13742 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13743 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13744 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13745 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13746 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13748 var formatRegExp = /%[sdj%]/g;
13749 exports.format = function(f) {
13750 if (!isString(f)) {
13752 for (var i =
0; i < arguments.length; i++) {
13753 objects.push(inspect(arguments[i]));
13755 return objects.join(' ');
13759 var args = arguments;
13760 var len = args.length;
13761 var str = String(f).replace(formatRegExp, function(x) {
13762 if (x === '%%') return '%';
13763 if (i
>= len) return x;
13765 case '%s': return String(args[i++]);
13766 case '%d': return Number(args[i++]);
13769 return JSON.stringify(args[i++]);
13771 return '[Circular]';
13777 for (var x = args[i]; i < len; x = args[++i]) {
13778 if (isNull(x) || !isObject(x)) {
13781 str += ' ' + inspect(x);
13788 // Mark that a method should not be used.
13789 // Returns a modified function which warns once by default.
13790 // If --no-deprecation is set, then it is a no-op.
13791 exports.deprecate = function(fn, msg) {
13792 // Allow for deprecating things in the process of starting up.
13793 if (isUndefined(global.process)) {
13794 return function() {
13795 return exports.deprecate(fn, msg).apply(this, arguments);
13799 if (process.noDeprecation === true) {
13803 var warned = false;
13804 function deprecated() {
13806 if (process.throwDeprecation) {
13807 throw new Error(msg);
13808 } else if (process.traceDeprecation) {
13809 console.trace(msg);
13811 console.error(msg);
13815 return fn.apply(this, arguments);
13824 exports.debuglog = function(set) {
13825 if (isUndefined(debugEnviron))
13826 debugEnviron = process.env.NODE_DEBUG || '';
13827 set = set.toUpperCase();
13828 if (!debugs[set]) {
13829 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13830 var pid = process.pid;
13831 debugs[set] = function() {
13832 var msg = exports.format.apply(exports, arguments);
13833 console.error('%s %d: %s', set, pid, msg);
13836 debugs[set] = function() {};
13839 return debugs[set];
13844 * Echos the value of a value. Trys to print the value out
13845 * in the best way possible given the different types.
13847 * @param {Object} obj The object to print out.
13848 * @param {Object} opts Optional options object that alters the output.
13850 /* legacy: obj, showHidden, depth, colors*/
13851 function inspect(obj, opts) {
13855 stylize: stylizeNoColor
13858 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13859 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13860 if (isBoolean(opts)) {
13862 ctx.showHidden = opts;
13864 // got an "options" object
13865 exports._extend(ctx, opts);
13867 // set default options
13868 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13869 if (isUndefined(ctx.depth)) ctx.depth =
2;
13870 if (isUndefined(ctx.colors)) ctx.colors = false;
13871 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13872 if (ctx.colors) ctx.stylize = stylizeWithColor;
13873 return formatValue(ctx, obj, ctx.depth);
13875 exports.inspect = inspect;
13878 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13881 'italic' : [
3,
23],
13882 'underline' : [
4,
24],
13883 'inverse' : [
7,
27],
13884 'white' : [
37,
39],
13886 'black' : [
30,
39],
13889 'green' : [
32,
39],
13890 'magenta' : [
35,
39],
13892 'yellow' : [
33,
39]
13895 // Don't use 'blue' not visible on cmd.exe
13898 'number': 'yellow',
13899 'boolean': 'yellow',
13900 'undefined': 'grey',
13904 // "name": intentionally not styling
13909 function stylizeWithColor(str, styleType) {
13910 var style = inspect.styles[styleType];
13913 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13914 '\u001b[' + inspect.colors[style][
1] + 'm';
13921 function stylizeNoColor(str, styleType) {
13926 function arrayToHash(array) {
13929 array.forEach(function(val, idx) {
13937 function formatValue(ctx, value, recurseTimes) {
13938 // Provide a hook for user-specified inspect functions.
13939 // Check that value is an object with an inspect function on it
13940 if (ctx.customInspect &&
13942 isFunction(value.inspect) &&
13943 // Filter out the util module, it's inspect function is special
13944 value.inspect !== exports.inspect &&
13945 // Also filter out any prototype objects using the circular check.
13946 !(value.constructor && value.constructor.prototype === value)) {
13947 var ret = value.inspect(recurseTimes, ctx);
13948 if (!isString(ret)) {
13949 ret = formatValue(ctx, ret, recurseTimes);
13954 // Primitive types cannot have properties
13955 var primitive = formatPrimitive(ctx, value);
13960 // Look up the keys of the object.
13961 var keys = Object.keys(value);
13962 var visibleKeys = arrayToHash(keys);
13964 if (ctx.showHidden) {
13965 keys = Object.getOwnPropertyNames(value);
13968 // IE doesn't make error fields non-enumerable
13969 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13971 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13972 return formatError(value);
13975 // Some type of object without properties can be shortcutted.
13976 if (keys.length ===
0) {
13977 if (isFunction(value)) {
13978 var name = value.name ? ': ' + value.name : '';
13979 return ctx.stylize('[Function' + name + ']', 'special');
13981 if (isRegExp(value)) {
13982 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13984 if (isDate(value)) {
13985 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13987 if (isError(value)) {
13988 return formatError(value);
13992 var base = '', array = false, braces = ['{', '}'];
13994 // Make Array say that they are Array
13995 if (isArray(value)) {
13997 braces = ['[', ']'];
14000 // Make functions say that they are functions
14001 if (isFunction(value)) {
14002 var n = value.name ? ': ' + value.name : '';
14003 base = ' [Function' + n + ']';
14006 // Make RegExps say that they are RegExps
14007 if (isRegExp(value)) {
14008 base = ' ' + RegExp.prototype.toString.call(value);
14011 // Make dates with properties first say the date
14012 if (isDate(value)) {
14013 base = ' ' + Date.prototype.toUTCString.call(value);
14016 // Make error with message first say the error
14017 if (isError(value)) {
14018 base = ' ' + formatError(value);
14021 if (keys.length ===
0 && (!array || value.length ==
0)) {
14022 return braces[
0] + base + braces[
1];
14025 if (recurseTimes <
0) {
14026 if (isRegExp(value)) {
14027 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
14029 return ctx.stylize('[Object]', 'special');
14033 ctx.seen.push(value);
14037 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
14039 output = keys.map(function(key) {
14040 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
14046 return reduceToSingleString(output, base, braces);
14050 function formatPrimitive(ctx, value) {
14051 if (isUndefined(value))
14052 return ctx.stylize('undefined', 'undefined');
14053 if (isString(value)) {
14054 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
14055 .replace(/'/g, "\\'")
14056 .replace(/\\"/g, '"') + '\'';
14057 return ctx.stylize(simple, 'string');
14059 if (isNumber(value))
14060 return ctx.stylize('' + value, 'number');
14061 if (isBoolean(value))
14062 return ctx.stylize('' + value, 'boolean');
14063 // For some reason typeof null is "object", so special case here.
14065 return ctx.stylize('null', 'null');
14069 function formatError(value) {
14070 return '[' + Error.prototype.toString.call(value) + ']';
14074 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
14076 for (var i =
0, l = value.length; i < l; ++i) {
14077 if (hasOwnProperty(value, String(i))) {
14078 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
14084 keys.forEach(function(key) {
14085 if (!key.match(/^\d+$/)) {
14086 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
14094 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
14095 var name, str, desc;
14096 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
14099 str = ctx.stylize('[Getter/Setter]', 'special');
14101 str = ctx.stylize('[Getter]', 'special');
14105 str = ctx.stylize('[Setter]', 'special');
14108 if (!hasOwnProperty(visibleKeys, key)) {
14109 name = '[' + key + ']';
14112 if (ctx.seen.indexOf(desc.value) <
0) {
14113 if (isNull(recurseTimes)) {
14114 str = formatValue(ctx, desc.value, null);
14116 str = formatValue(ctx, desc.value, recurseTimes -
1);
14118 if (str.indexOf('\n')
> -
1) {
14120 str = str.split('\n').map(function(line) {
14122 }).join('\n').substr(
2);
14124 str = '\n' + str.split('\n').map(function(line) {
14130 str = ctx.stylize('[Circular]', 'special');
14133 if (isUndefined(name)) {
14134 if (array && key.match(/^\d+$/)) {
14137 name = JSON.stringify('' + key);
14138 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
14139 name = name.substr(
1, name.length -
2);
14140 name = ctx.stylize(name, 'name');
14142 name = name.replace(/'/g, "\\'")
14143 .replace(/\\"/g, '"')
14144 .replace(/(^"|"$)/g, "'");
14145 name = ctx.stylize(name, 'string');
14149 return name + ': ' + str;
14153 function reduceToSingleString(output, base, braces) {
14154 var numLinesEst =
0;
14155 var length = output.reduce(function(prev, cur) {
14157 if (cur.indexOf('\n')
>=
0) numLinesEst++;
14158 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
14163 (base === '' ? '' : base + '\n ') +
14165 output.join(',\n ') +
14170 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
14174 // NOTE: These type checking functions intentionally don't use `instanceof`
14175 // because it is fragile and can be easily faked with `Object.create()`.
14176 function isArray(ar) {
14177 return Array.isArray(ar);
14179 exports.isArray = isArray;
14181 function isBoolean(arg) {
14182 return typeof arg === 'boolean';
14184 exports.isBoolean = isBoolean;
14186 function isNull(arg) {
14187 return arg === null;
14189 exports.isNull = isNull;
14191 function isNullOrUndefined(arg) {
14192 return arg == null;
14194 exports.isNullOrUndefined = isNullOrUndefined;
14196 function isNumber(arg) {
14197 return typeof arg === 'number';
14199 exports.isNumber = isNumber;
14201 function isString(arg) {
14202 return typeof arg === 'string';
14204 exports.isString = isString;
14206 function isSymbol(arg) {
14207 return typeof arg === 'symbol';
14209 exports.isSymbol = isSymbol;
14211 function isUndefined(arg) {
14212 return arg === void
0;
14214 exports.isUndefined = isUndefined;
14216 function isRegExp(re) {
14217 return isObject(re) && objectToString(re) === '[object RegExp]';
14219 exports.isRegExp = isRegExp;
14221 function isObject(arg) {
14222 return typeof arg === 'object' && arg !== null;
14224 exports.isObject = isObject;
14226 function isDate(d) {
14227 return isObject(d) && objectToString(d) === '[object Date]';
14229 exports.isDate = isDate;
14231 function isError(e) {
14232 return isObject(e) &&
14233 (objectToString(e) === '[object Error]' || e instanceof Error);
14235 exports.isError = isError;
14237 function isFunction(arg) {
14238 return typeof arg === 'function';
14240 exports.isFunction = isFunction;
14242 function isPrimitive(arg) {
14243 return arg === null ||
14244 typeof arg === 'boolean' ||
14245 typeof arg === 'number' ||
14246 typeof arg === 'string' ||
14247 typeof arg === 'symbol' || // ES6 symbol
14248 typeof arg === 'undefined';
14250 exports.isPrimitive = isPrimitive;
14252 exports.isBuffer = require('./support/isBuffer');
14254 function objectToString(o) {
14255 return Object.prototype.toString.call(o);
14260 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
14264 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
14265 'Oct', 'Nov', 'Dec'];
14268 function timestamp() {
14269 var d = new Date();
14270 var time = [pad(d.getHours()),
14271 pad(d.getMinutes()),
14272 pad(d.getSeconds())].join(':');
14273 return [d.getDate(), months[d.getMonth()], time].join(' ');
14277 // log is just a thin wrapper to console.log that prepends a timestamp
14278 exports.log = function() {
14279 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
14284 * Inherit the prototype methods from one constructor into another.
14286 * The Function.prototype.inherits from lang.js rewritten as a standalone
14287 * function (not on Function.prototype). NOTE: If this file is to be loaded
14288 * during bootstrapping this function needs to be rewritten using some native
14289 * functions as prototype setup using normal JavaScript does not work as
14290 * expected during bootstrapping (see mirror.js in r114903).
14292 * @param {function} ctor Constructor function which needs to inherit the
14294 * @param {function} superCtor Constructor function to inherit prototype from.
14296 exports.inherits = require('inherits');
14298 exports._extend = function(origin, add) {
14299 // Don't do anything if add isn't an object
14300 if (!add || !isObject(add)) return origin;
14302 var keys = Object.keys(add);
14303 var i = keys.length;
14305 origin[keys[i]] = add[keys[i]];
14310 function hasOwnProperty(obj, prop) {
14311 return Object.prototype.hasOwnProperty.call(obj, prop);
14314 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
14315 },{
"./support/isBuffer":
28,
"_process":
14,
"inherits":
12}],
30:[function(require,module,exports){
14316 // Base58 encoding/decoding
14317 // Originally written by Mike Hearn for BitcoinJ
14318 // Copyright (c)
2011 Google Inc
14319 // Ported to JavaScript by Stefan Thomas
14320 // Merged Buffer refactorings from base58-native by Stephen Pair
14321 // Copyright (c)
2013 BitPay Inc
14323 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
14324 var ALPHABET_MAP = {}
14325 for(var i =
0; i < ALPHABET.length; i++) {
14326 ALPHABET_MAP[ALPHABET.charAt(i)] = i
14330 function encode(buffer) {
14331 if (buffer.length ===
0) return ''
14333 var i, j, digits = [
0]
14334 for (i =
0; i < buffer.length; i++) {
14335 for (j =
0; j < digits.length; j++) digits[j] <<=
8
14337 digits[
0] += buffer[i]
14340 for (j =
0; j < digits.length; ++j) {
14343 carry = (digits[j] / BASE) |
0
14348 digits.push(carry % BASE)
14350 carry = (carry / BASE) |
0
14354 // deal with leading zeros
14355 for (i =
0; buffer[i] ===
0 && i < buffer.length -
1; i++) digits.push(
0)
14357 // convert digits to a string
14358 var stringOutput =
""
14359 for (var i = digits.length -
1; i
>=
0; i--) {
14360 stringOutput = stringOutput + ALPHABET[digits[i]]
14362 return stringOutput
14365 function decode(string) {
14366 if (string.length ===
0) return []
14368 var i, j, bytes = [
0]
14369 for (i =
0; i < string.length; i++) {
14371 if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character')
14373 for (j =
0; j < bytes.length; j++) bytes[j] *= BASE
14374 bytes[
0] += ALPHABET_MAP[c]
14377 for (j =
0; j < bytes.length; ++j) {
14380 carry = bytes[j]
>> 8
14385 bytes.push(carry &
0xff)
14391 // deal with leading zeros
14392 for (i =
0; string[i] === '
1' && i < string.length -
1; i++) bytes.push(
0)
14394 return bytes.reverse()
14402 },{}],
31:[function(require,module,exports){
14403 (function (Buffer){
14406 var base58 = require('bs58')
14407 var createHash = require('create-hash')
14409 // SHA256(SHA256(buffer))
14410 function sha256x2 (buffer) {
14411 buffer = createHash('sha256').update(buffer).digest()
14412 return createHash('sha256').update(buffer).digest()
14415 // Encode a buffer as a base58-check encoded string
14416 function encode (payload) {
14417 var checksum = sha256x2(payload).slice(
0,
4)
14419 return base58.encode(Buffer.concat([
14425 // Decode a base58-check encoded string to a buffer
14426 function decode (string) {
14427 var buffer = new Buffer(base58.decode(string))
14429 var payload = buffer.slice(
0, -
4)
14430 var checksum = buffer.slice(-
4)
14431 var newChecksum = sha256x2(payload).slice(
0,
4)
14433 for (var i =
0; i < newChecksum.length; ++i) {
14434 if (newChecksum[i] === checksum[i]) continue
14436 throw new Error('Invalid checksum')
14447 }).call(this,require("buffer").Buffer)
14448 },{"bs58":
30,"buffer":
7,"create-hash":
32}],
32:[function(require,module,exports){
14449 (function (Buffer){
14451 var inherits = require('inherits')
14452 var md5 = require('./md5')
14453 var rmd160 = require('ripemd160')
14454 var sha = require('sha.js')
14456 var Transform = require('stream').Transform
14458 function HashNoConstructor(hash) {
14459 Transform.call(this)
14465 inherits(HashNoConstructor, Transform)
14467 HashNoConstructor.prototype._transform = function (data, _, next) {
14468 this.buffers.push(data)
14473 HashNoConstructor.prototype._flush = function (next) {
14474 this.push(this.digest())
14478 HashNoConstructor.prototype.update = function (data, enc) {
14479 if (typeof data === 'string') {
14480 data = new Buffer(data, enc)
14483 this.buffers.push(data)
14487 HashNoConstructor.prototype.digest = function (enc) {
14488 var buf = Buffer.concat(this.buffers)
14489 var r = this._hash(buf)
14490 this.buffers = null
14492 return enc ? r.toString(enc) : r
14495 function Hash(hash) {
14496 Transform.call(this)
14501 inherits(Hash, Transform)
14503 Hash.prototype._transform = function (data, enc, next) {
14504 if (enc) data = new Buffer(data, enc)
14506 this._hash.update(data)
14511 Hash.prototype._flush = function (next) {
14512 this.push(this._hash.digest())
14518 Hash.prototype.update = function (data, enc) {
14519 if (typeof data === 'string') {
14520 data = new Buffer(data, enc)
14523 this._hash.update(data)
14527 Hash.prototype.digest = function (enc) {
14528 var outData = this._hash.digest()
14530 return enc ? outData.toString(enc) : outData
14533 module.exports = function createHash (alg) {
14534 if ('md5' === alg) return new HashNoConstructor(md5)
14535 if ('rmd160' === alg) return new HashNoConstructor(rmd160)
14537 return new Hash(sha(alg))
14540 }).call(this,require("buffer").Buffer)
14541 },{"./md5":
34,"buffer":
7,"inherits":
35,"ripemd160":
36,"sha.js":
38,"stream":
26}],
33:[function(require,module,exports){
14542 (function (Buffer){
14545 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
14548 function toArray(buf, bigEndian) {
14549 if ((buf.length % intSize) !==
0) {
14550 var len = buf.length + (intSize - (buf.length % intSize));
14551 buf = Buffer.concat([buf, zeroBuffer], len);
14555 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
14556 for (var i =
0; i < buf.length; i += intSize) {
14557 arr.push(fn.call(buf, i));
14562 function toBuffer(arr, size, bigEndian) {
14563 var buf = new Buffer(size);
14564 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
14565 for (var i =
0; i < arr.length; i++) {
14566 fn.call(buf, arr[i], i *
4, true);
14571 function hash(buf, fn, hashSize, bigEndian) {
14572 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
14573 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
14574 return toBuffer(arr, hashSize, bigEndian);
14576 exports.hash = hash;
14577 }).call(this,require("buffer").Buffer)
14578 },{"buffer":
7}],
34:[function(require,module,exports){
14581 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
14582 * Digest Algorithm, as defined in RFC
1321.
14583 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
14584 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
14585 * Distributed under the BSD License
14586 * See http://pajhome.org.uk/crypt/md5 for more info.
14589 var helpers = require('./helpers');
14592 * Calculate the MD5 of an array of little-endian words, and a bit length
14594 function core_md5(x, len)
14596 /* append padding */
14597 x[len
>> 5] |=
0x80 << ((len) %
32);
14598 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
14600 var a =
1732584193;
14601 var b = -
271733879;
14602 var c = -
1732584194;
14605 for(var i =
0; i < x.length; i +=
16)
14612 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
14613 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
14614 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
14615 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
14616 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
14617 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
14618 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
14619 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
14620 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
14621 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
14622 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
14623 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
14624 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
14625 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
14626 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
14627 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
14629 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
14630 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
14631 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
14632 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
14633 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
14634 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
14635 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
14636 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
14637 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
14638 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
14639 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
14640 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
14641 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
14642 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
14643 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
14644 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
14646 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
14647 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
14648 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
14649 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
14650 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
14651 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
14652 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
14653 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
14654 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
14655 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
14656 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
14657 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
14658 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
14659 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
14660 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
14661 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
14663 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
14664 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
14665 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
14666 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
14667 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
14668 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
14669 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
14670 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
14671 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
14672 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
14673 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
14674 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
14675 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
14676 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
14677 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
14678 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
14680 a = safe_add(a, olda);
14681 b = safe_add(b, oldb);
14682 c = safe_add(c, oldc);
14683 d = safe_add(d, oldd);
14685 return Array(a, b, c, d);
14690 * These functions implement the four basic operations the algorithm uses.
14692 function md5_cmn(q, a, b, x, s, t)
14694 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
14696 function md5_ff(a, b, c, d, x, s, t)
14698 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
14700 function md5_gg(a, b, c, d, x, s, t)
14702 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
14704 function md5_hh(a, b, c, d, x, s, t)
14706 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
14708 function md5_ii(a, b, c, d, x, s, t)
14710 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
14714 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
14715 * to work around bugs in some JS interpreters.
14717 function safe_add(x, y)
14719 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
14720 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
14721 return (msw <<
16) | (lsw &
0xFFFF);
14725 * Bitwise rotate a
32-bit number to the left.
14727 function bit_rol(num, cnt)
14729 return (num << cnt) | (num
>>> (
32 - cnt));
14732 module.exports = function md5(buf) {
14733 return helpers.hash(buf, core_md5,
16);
14735 },{"./helpers":
33}],
35:[function(require,module,exports){
14736 arguments[
4][
12][
0].apply(exports,arguments)
14737 },{"dup":
12}],
36:[function(require,module,exports){
14738 (function (Buffer){
14741 code.google.com/p/crypto-js
14742 (c)
2009-
2013 by Jeff Mott. All rights reserved.
14743 code.google.com/p/crypto-js/wiki/License
14746 (c)
2012 by Cédric Mesnil. All rights reserved.
14748 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
14750 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
14751 - 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.
14753 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.
14758 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
14759 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
14760 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
14761 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
14762 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
14766 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
14767 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
14768 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
14769 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
14770 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
14774 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
14775 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
14776 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
14777 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
14778 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
14782 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
14783 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
14784 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
14785 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
14786 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
14789 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
14790 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
14792 function bytesToWords (bytes) {
14794 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
14795 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
14800 function wordsToBytes (words) {
14802 for (var b =
0; b < words.length *
32; b +=
8) {
14803 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
14808 function processBlock (H, M, offset) {
14810 for (var i =
0; i <
16; i++) {
14811 var offset_i = offset + i
14812 var M_offset_i = M[offset_i]
14816 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
14817 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
14821 // Working variables
14822 var al, bl, cl, dl, el
14823 var ar, br, cr, dr, er
14833 for (i =
0; i <
80; i +=
1) {
14834 t = (al + M[offset + zl[i]]) |
0
14836 t += f1(bl, cl, dl) + hl[
0]
14837 } else if (i <
32) {
14838 t += f2(bl, cl, dl) + hl[
1]
14839 } else if (i <
48) {
14840 t += f3(bl, cl, dl) + hl[
2]
14841 } else if (i <
64) {
14842 t += f4(bl, cl, dl) + hl[
3]
14843 } else {// if (i
<80) {
14844 t += f5(bl, cl, dl) + hl[
4]
14855 t = (ar + M[offset + zr[i]]) |
0
14857 t += f5(br, cr, dr) + hr[
0]
14858 } else if (i <
32) {
14859 t += f4(br, cr, dr) + hr[
1]
14860 } else if (i <
48) {
14861 t += f3(br, cr, dr) + hr[
2]
14862 } else if (i <
64) {
14863 t += f2(br, cr, dr) + hr[
3]
14864 } else {// if (i
<80) {
14865 t += f1(br, cr, dr) + hr[
4]
14878 // intermediate hash value
14879 t = (H[
1] + cl + dr) |
0
14880 H[
1] = (H[
2] + dl + er) |
0
14881 H[
2] = (H[
3] + el + ar) |
0
14882 H[
3] = (H[
4] + al + br) |
0
14883 H[
4] = (H[
0] + bl + cr) |
0
14887 function f1 (x, y, z) {
14888 return ((x) ^ (y) ^ (z))
14891 function f2 (x, y, z) {
14892 return (((x) & (y)) | ((~x) & (z)))
14895 function f3 (x, y, z) {
14896 return (((x) | (~(y))) ^ (z))
14899 function f4 (x, y, z) {
14900 return (((x) & (z)) | ((y) & (~(z))))
14903 function f5 (x, y, z) {
14904 return ((x) ^ ((y) | (~(z))))
14907 function rotl (x, n) {
14908 return (x << n) | (x
>>> (
32 - n))
14911 function ripemd160 (message) {
14912 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
14914 if (typeof message === 'string') {
14915 message = new Buffer(message, 'utf8')
14918 var m = bytesToWords(message)
14920 var nBitsLeft = message.length *
8
14921 var nBitsTotal = message.length *
8
14924 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
14925 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
14926 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
14927 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
14930 for (var i =
0; i < m.length; i +=
16) {
14931 processBlock(H, m, i)
14935 for (i =
0; i <
5; i++) {
14940 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
14941 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
14944 var digestbytes = wordsToBytes(H)
14945 return new Buffer(digestbytes)
14948 module.exports = ripemd160
14950 }).call(this,require(
"buffer").Buffer)
14951 },{
"buffer":
7}],
37:[function(require,module,exports){
14952 (function (Buffer){
14953 // prototype class for hash functions
14954 function Hash (blockSize, finalSize) {
14955 this._block = new Buffer(blockSize)
14956 this._finalSize = finalSize
14957 this._blockSize = blockSize
14962 Hash.prototype.update = function (data, enc) {
14963 if (typeof data === 'string') {
14964 enc = enc || 'utf8'
14965 data = new Buffer(data, enc)
14968 var l = this._len += data.length
14969 var s = this._s ||
0
14971 var buffer = this._block
14974 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
14977 for (var i =
0; i < ch; i++) {
14978 buffer[(s % this._blockSize) + i] = data[i + f]
14984 if ((s % this._blockSize) ===
0) {
14985 this._update(buffer)
14993 Hash.prototype.digest = function (enc) {
14994 // Suppose the length of the message M, in bits, is l
14995 var l = this._len *
8
14997 // Append the bit
1 to the end of the message
14998 this._block[this._len % this._blockSize] =
0x80
15000 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
15001 this._block.fill(
0, this._len % this._blockSize +
1)
15003 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
15004 this._update(this._block)
15005 this._block.fill(
0)
15008 // to this append the block which is equal to the number l written in binary
15009 // TODO: handle case where l is
> Math.pow(
2,
29)
15010 this._block.writeInt32BE(l, this._blockSize -
4)
15012 var hash = this._update(this._block) || this._hash()
15014 return enc ? hash.toString(enc) : hash
15017 Hash.prototype._update = function () {
15018 throw new Error('_update must be implemented by subclass')
15021 module.exports = Hash
15023 }).call(this,require("buffer").Buffer)
15024 },{"buffer":
7}],
38:[function(require,module,exports){
15025 var exports = module.exports = function SHA (algorithm) {
15026 algorithm = algorithm.toLowerCase()
15028 var Algorithm = exports[algorithm]
15029 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
15031 return new Algorithm()
15034 exports.sha = require('./sha')
15035 exports.sha1 = require('./sha1')
15036 exports.sha224 = require('./sha224')
15037 exports.sha256 = require('./sha256')
15038 exports.sha384 = require('./sha384')
15039 exports.sha512 = require('./sha512')
15041 },{"./sha":
39,"./sha1":
40,"./sha224":
41,"./sha256":
42,"./sha384":
43,"./sha512":
44}],
39:[function(require,module,exports){
15042 (function (Buffer){
15044 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
15045 * in FIPS PUB
180-
1
15046 * This source code is derived from sha1.js of the same repository.
15047 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
15048 * operation was added.
15051 var inherits = require('inherits')
15052 var Hash = require('./hash')
15054 var W = new Array(
80)
15060 Hash.call(this,
64,
56)
15063 inherits(Sha, Hash)
15065 Sha.prototype.init = function () {
15066 this._a =
0x67452301 |
0
15067 this._b =
0xefcdab89 |
0
15068 this._c =
0x98badcfe |
0
15069 this._d =
0x10325476 |
0
15070 this._e =
0xc3d2e1f0 |
0
15076 * Bitwise rotate a
32-bit number to the left.
15078 function rol (num, cnt) {
15079 return (num << cnt) | (num
>>> (
32 - cnt))
15082 Sha.prototype._update = function (M) {
15094 * SHA-
1 has a bitwise rotate left operation. But, SHA is not
15095 * function calcW() { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
15097 function calcW () { return W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16] }
15098 function loop (w, f) {
15101 var t = rol(a,
5) + f + e + w + k
15112 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
15113 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
15115 while (j <
40) loop(calcW(), b ^ c ^ d)
15117 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
15119 while (j <
80) loop(calcW(), b ^ c ^ d)
15121 this._a = (a + this._a) |
0
15122 this._b = (b + this._b) |
0
15123 this._c = (c + this._c) |
0
15124 this._d = (d + this._d) |
0
15125 this._e = (e + this._e) |
0
15128 Sha.prototype._hash = function () {
15129 var H = new Buffer(
20)
15131 H.writeInt32BE(this._a |
0,
0)
15132 H.writeInt32BE(this._b |
0,
4)
15133 H.writeInt32BE(this._c |
0,
8)
15134 H.writeInt32BE(this._d |
0,
12)
15135 H.writeInt32BE(this._e |
0,
16)
15140 module.exports = Sha
15143 }).call(this,require("buffer").Buffer)
15144 },{"./hash":
37,"buffer":
7,"inherits":
35}],
40:[function(require,module,exports){
15145 (function (Buffer){
15147 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
15148 * in FIPS PUB
180-
1
15149 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
15150 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15151 * Distributed under the BSD License
15152 * See http://pajhome.org.uk/crypt/md5 for details.
15155 var inherits = require('inherits')
15156 var Hash = require('./hash')
15158 var W = new Array(
80)
15164 Hash.call(this,
64,
56)
15167 inherits(Sha1, Hash)
15169 Sha1.prototype.init = function () {
15170 this._a =
0x67452301 |
0
15171 this._b =
0xefcdab89 |
0
15172 this._c =
0x98badcfe |
0
15173 this._d =
0x10325476 |
0
15174 this._e =
0xc3d2e1f0 |
0
15180 * Bitwise rotate a
32-bit number to the left.
15182 function rol (num, cnt) {
15183 return (num << cnt) | (num
>>> (
32 - cnt))
15186 Sha1.prototype._update = function (M) {
15197 function calcW () { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
15198 function loop (w, f) {
15201 var t = rol(a,
5) + f + e + w + k
15212 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
15213 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
15215 while (j <
40) loop(calcW(), b ^ c ^ d)
15217 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
15219 while (j <
80) loop(calcW(), b ^ c ^ d)
15221 this._a = (a + this._a) |
0
15222 this._b = (b + this._b) |
0
15223 this._c = (c + this._c) |
0
15224 this._d = (d + this._d) |
0
15225 this._e = (e + this._e) |
0
15228 Sha1.prototype._hash = function () {
15229 var H = new Buffer(
20)
15231 H.writeInt32BE(this._a |
0,
0)
15232 H.writeInt32BE(this._b |
0,
4)
15233 H.writeInt32BE(this._c |
0,
8)
15234 H.writeInt32BE(this._d |
0,
12)
15235 H.writeInt32BE(this._e |
0,
16)
15240 module.exports = Sha1
15242 }).call(this,require("buffer").Buffer)
15243 },{"./hash":
37,"buffer":
7,"inherits":
35}],
41:[function(require,module,exports){
15244 (function (Buffer){
15246 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
15248 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
15249 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15253 var inherits = require('inherits')
15254 var Sha256 = require('./sha256')
15255 var Hash = require('./hash')
15257 var W = new Array(
64)
15259 function Sha224 () {
15262 this._w = W // new Array(
64)
15264 Hash.call(this,
64,
56)
15267 inherits(Sha224, Sha256)
15269 Sha224.prototype.init = function () {
15270 this._a =
0xc1059ed8 |
0
15271 this._b =
0x367cd507 |
0
15272 this._c =
0x3070dd17 |
0
15273 this._d =
0xf70e5939 |
0
15274 this._e =
0xffc00b31 |
0
15275 this._f =
0x68581511 |
0
15276 this._g =
0x64f98fa7 |
0
15277 this._h =
0xbefa4fa4 |
0
15282 Sha224.prototype._hash = function () {
15283 var H = new Buffer(
28)
15285 H.writeInt32BE(this._a,
0)
15286 H.writeInt32BE(this._b,
4)
15287 H.writeInt32BE(this._c,
8)
15288 H.writeInt32BE(this._d,
12)
15289 H.writeInt32BE(this._e,
16)
15290 H.writeInt32BE(this._f,
20)
15291 H.writeInt32BE(this._g,
24)
15296 module.exports = Sha224
15298 }).call(this,require("buffer").Buffer)
15299 },{"./hash":
37,"./sha256":
42,"buffer":
7,"inherits":
35}],
42:[function(require,module,exports){
15300 (function (Buffer){
15302 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
15304 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
15305 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15309 var inherits = require('inherits')
15310 var Hash = require('./hash')
15313 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
15314 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
15315 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
15316 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
15317 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
15318 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
15319 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
15320 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
15321 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
15322 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
15323 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
15324 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
15325 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
15326 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
15327 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
15328 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
15331 var W = new Array(
64)
15333 function Sha256 () {
15336 this._w = W // new Array(
64)
15338 Hash.call(this,
64,
56)
15341 inherits(Sha256, Hash)
15343 Sha256.prototype.init = function () {
15344 this._a =
0x6a09e667 |
0
15345 this._b =
0xbb67ae85 |
0
15346 this._c =
0x3c6ef372 |
0
15347 this._d =
0xa54ff53a |
0
15348 this._e =
0x510e527f |
0
15349 this._f =
0x9b05688c |
0
15350 this._g =
0x1f83d9ab |
0
15351 this._h =
0x5be0cd19 |
0
15356 function S (X, n) {
15357 return (X
>>> n) | (X << (
32 - n))
15360 function R (X, n) {
15364 function Ch (x, y, z) {
15365 return ((x & y) ^ ((~x) & z))
15368 function Maj (x, y, z) {
15369 return ((x & y) ^ (x & z) ^ (y & z))
15372 function Sigma0256 (x) {
15373 return (S(x,
2) ^ S(x,
13) ^ S(x,
22))
15376 function Sigma1256 (x) {
15377 return (S(x,
6) ^ S(x,
11) ^ S(x,
25))
15380 function Gamma0256 (x) {
15381 return (S(x,
7) ^ S(x,
18) ^ R(x,
3))
15384 function Gamma1256 (x) {
15385 return (S(x,
17) ^ S(x,
19) ^ R(x,
10))
15388 Sha256.prototype._update = function (M) {
15391 var a = this._a |
0
15392 var b = this._b |
0
15393 var c = this._c |
0
15394 var d = this._d |
0
15395 var e = this._e |
0
15396 var f = this._f |
0
15397 var g = this._g |
0
15398 var h = this._h |
0
15402 function calcW () { return Gamma1256(W[j -
2]) + W[j -
7] + Gamma0256(W[j -
15]) + W[j -
16] }
15403 function loop (w) {
15406 var T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
15407 var T2 = Sigma0256(a) + Maj(a, b, c)
15421 while (j <
16) loop(M.readInt32BE(j *
4))
15422 while (j <
64) loop(calcW())
15424 this._a = (a + this._a) |
0
15425 this._b = (b + this._b) |
0
15426 this._c = (c + this._c) |
0
15427 this._d = (d + this._d) |
0
15428 this._e = (e + this._e) |
0
15429 this._f = (f + this._f) |
0
15430 this._g = (g + this._g) |
0
15431 this._h = (h + this._h) |
0
15434 Sha256.prototype._hash = function () {
15435 var H = new Buffer(
32)
15437 H.writeInt32BE(this._a,
0)
15438 H.writeInt32BE(this._b,
4)
15439 H.writeInt32BE(this._c,
8)
15440 H.writeInt32BE(this._d,
12)
15441 H.writeInt32BE(this._e,
16)
15442 H.writeInt32BE(this._f,
20)
15443 H.writeInt32BE(this._g,
24)
15444 H.writeInt32BE(this._h,
28)
15449 module.exports = Sha256
15451 }).call(this,require("buffer").Buffer)
15452 },{"./hash":
37,"buffer":
7,"inherits":
35}],
43:[function(require,module,exports){
15453 (function (Buffer){
15454 var inherits = require('inherits')
15455 var SHA512 = require('./sha512')
15456 var Hash = require('./hash')
15458 var W = new Array(
160)
15460 function Sha384 () {
15464 Hash.call(this,
128,
112)
15467 inherits(Sha384, SHA512)
15469 Sha384.prototype.init = function () {
15470 this._a =
0xcbbb9d5d |
0
15471 this._b =
0x629a292a |
0
15472 this._c =
0x9159015a |
0
15473 this._d =
0x152fecd8 |
0
15474 this._e =
0x67332667 |
0
15475 this._f =
0x8eb44a87 |
0
15476 this._g =
0xdb0c2e0d |
0
15477 this._h =
0x47b5481d |
0
15479 this._al =
0xc1059ed8 |
0
15480 this._bl =
0x367cd507 |
0
15481 this._cl =
0x3070dd17 |
0
15482 this._dl =
0xf70e5939 |
0
15483 this._el =
0xffc00b31 |
0
15484 this._fl =
0x68581511 |
0
15485 this._gl =
0x64f98fa7 |
0
15486 this._hl =
0xbefa4fa4 |
0
15491 Sha384.prototype._hash = function () {
15492 var H = new Buffer(
48)
15494 function writeInt64BE (h, l, offset) {
15495 H.writeInt32BE(h, offset)
15496 H.writeInt32BE(l, offset +
4)
15499 writeInt64BE(this._a, this._al,
0)
15500 writeInt64BE(this._b, this._bl,
8)
15501 writeInt64BE(this._c, this._cl,
16)
15502 writeInt64BE(this._d, this._dl,
24)
15503 writeInt64BE(this._e, this._el,
32)
15504 writeInt64BE(this._f, this._fl,
40)
15509 module.exports = Sha384
15511 }).call(this,require("buffer").Buffer)
15512 },{"./hash":
37,"./sha512":
44,"buffer":
7,"inherits":
35}],
44:[function(require,module,exports){
15513 (function (Buffer){
15514 var inherits = require('inherits')
15515 var Hash = require('./hash')
15518 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
15519 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
15520 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
15521 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
15522 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
15523 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
15524 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
15525 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
15526 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
15527 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
15528 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
15529 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
15530 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
15531 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
15532 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
15533 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
15534 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
15535 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
15536 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
15537 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
15538 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
15539 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
15540 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
15541 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
15542 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
15543 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
15544 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
15545 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
15546 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
15547 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
15548 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
15549 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
15550 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
15551 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
15552 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
15553 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
15554 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
15555 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
15556 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
15557 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
15560 var W = new Array(
160)
15562 function Sha512 () {
15566 Hash.call(this,
128,
112)
15569 inherits(Sha512, Hash)
15571 Sha512.prototype.init = function () {
15572 this._a =
0x6a09e667 |
0
15573 this._b =
0xbb67ae85 |
0
15574 this._c =
0x3c6ef372 |
0
15575 this._d =
0xa54ff53a |
0
15576 this._e =
0x510e527f |
0
15577 this._f =
0x9b05688c |
0
15578 this._g =
0x1f83d9ab |
0
15579 this._h =
0x5be0cd19 |
0
15581 this._al =
0xf3bcc908 |
0
15582 this._bl =
0x84caa73b |
0
15583 this._cl =
0xfe94f82b |
0
15584 this._dl =
0x5f1d36f1 |
0
15585 this._el =
0xade682d1 |
0
15586 this._fl =
0x2b3e6c1f |
0
15587 this._gl =
0xfb41bd6b |
0
15588 this._hl =
0x137e2179 |
0
15593 function S (X, Xl, n) {
15594 return (X
>>> n) | (Xl << (
32 - n))
15597 function Ch (x, y, z) {
15598 return ((x & y) ^ ((~x) & z))
15601 function Maj (x, y, z) {
15602 return ((x & y) ^ (x & z) ^ (y & z))
15605 Sha512.prototype._update = function (M) {
15608 var a = this._a |
0
15609 var b = this._b |
0
15610 var c = this._c |
0
15611 var d = this._d |
0
15612 var e = this._e |
0
15613 var f = this._f |
0
15614 var g = this._g |
0
15615 var h = this._h |
0
15617 var al = this._al |
0
15618 var bl = this._bl |
0
15619 var cl = this._cl |
0
15620 var dl = this._dl |
0
15621 var el = this._el |
0
15622 var fl = this._fl |
0
15623 var gl = this._gl |
0
15624 var hl = this._hl |
0
15628 function calcW () {
15629 var x = W[j -
15 *
2]
15630 var xl = W[j -
15 *
2 +
1]
15631 var gamma0 = S(x, xl,
1) ^ S(x, xl,
8) ^ (x
>>> 7)
15632 var gamma0l = S(xl, x,
1) ^ S(xl, x,
8) ^ S(xl, x,
7)
15635 xl = W[j -
2 *
2 +
1]
15636 var gamma1 = S(x, xl,
19) ^ S(xl, x,
29) ^ (x
>>> 6)
15637 var gamma1l = S(xl, x,
19) ^ S(x, xl,
29) ^ S(xl, x,
6)
15639 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
15640 var Wi7 = W[j -
7 *
2]
15641 var Wi7l = W[j -
7 *
2 +
1]
15643 var Wi16 = W[j -
16 *
2]
15644 var Wi16l = W[j -
16 *
2 +
1]
15646 Wil = gamma0l + Wi7l
15647 Wi = gamma0 + Wi7 + ((Wil
>>> 0) < (gamma0l
>>> 0) ?
1 :
0)
15648 Wil = Wil + gamma1l
15649 Wi = Wi + gamma1 + ((Wil
>>> 0) < (gamma1l
>>> 0) ?
1 :
0)
15651 Wi = Wi + Wi16 + ((Wil
>>> 0) < (Wi16l
>>> 0) ?
1 :
0)
15658 var maj = Maj(a, b, c)
15659 var majl = Maj(al, bl, cl)
15661 var sigma0h = S(a, al,
28) ^ S(al, a,
2) ^ S(al, a,
7)
15662 var sigma0l = S(al, a,
28) ^ S(a, al,
2) ^ S(a, al,
7)
15663 var sigma1h = S(e, el,
14) ^ S(e, el,
18) ^ S(el, e,
9)
15664 var sigma1l = S(el, e,
14) ^ S(el, e,
18) ^ S(e, el,
9)
15666 // t1 = h + sigma1 + ch + K[i] + W[i]
15670 var ch = Ch(e, f, g)
15671 var chl = Ch(el, fl, gl)
15673 var t1l = hl + sigma1l
15674 var t1 = h + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0)
15676 t1 = t1 + ch + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0)
15678 t1 = t1 + Ki + ((t1l
>>> 0) < (Kil
>>> 0) ?
1 :
0)
15680 t1 = t1 + Wi + ((t1l
>>> 0) < (Wil
>>> 0) ?
1 :
0)
15682 // t2 = sigma0 + maj
15683 var t2l = sigma0l + majl
15684 var t2 = sigma0h + maj + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0)
15692 el = (dl + t1l) |
0
15693 e = (d + t1 + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
15700 al = (t1l + t2l) |
0
15701 a = (t1 + t2 + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0
15708 Wi = M.readInt32BE(j *
4)
15709 Wil = M.readInt32BE(j *
4 +
4)
15719 this._al = (this._al + al) |
0
15720 this._bl = (this._bl + bl) |
0
15721 this._cl = (this._cl + cl) |
0
15722 this._dl = (this._dl + dl) |
0
15723 this._el = (this._el + el) |
0
15724 this._fl = (this._fl + fl) |
0
15725 this._gl = (this._gl + gl) |
0
15726 this._hl = (this._hl + hl) |
0
15728 this._a = (this._a + a + ((this._al
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0
15729 this._b = (this._b + b + ((this._bl
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0
15730 this._c = (this._c + c + ((this._cl
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0
15731 this._d = (this._d + d + ((this._dl
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
15732 this._e = (this._e + e + ((this._el
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0
15733 this._f = (this._f + f + ((this._fl
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0
15734 this._g = (this._g + g + ((this._gl
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0
15735 this._h = (this._h + h + ((this._hl
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0
15738 Sha512.prototype._hash = function () {
15739 var H = new Buffer(
64)
15741 function writeInt64BE (h, l, offset) {
15742 H.writeInt32BE(h, offset)
15743 H.writeInt32BE(l, offset +
4)
15746 writeInt64BE(this._a, this._al,
0)
15747 writeInt64BE(this._b, this._bl,
8)
15748 writeInt64BE(this._c, this._cl,
16)
15749 writeInt64BE(this._d, this._dl,
24)
15750 writeInt64BE(this._e, this._el,
32)
15751 writeInt64BE(this._f, this._fl,
40)
15752 writeInt64BE(this._g, this._gl,
48)
15753 writeInt64BE(this._h, this._hl,
56)
15758 module.exports = Sha512
15760 }).call(this,require(
"buffer").Buffer)
15761 },{
"./hash":
37,
"buffer":
7,
"inherits":
35}],
45:[function(require,module,exports){
15762 (function (Buffer){
15764 var createHash = require('create-hash/browser');
15765 var inherits = require('inherits')
15767 var Transform = require('stream').Transform
15769 var ZEROS = new Buffer(
128)
15772 function Hmac(alg, key) {
15773 Transform.call(this)
15775 if (typeof key === 'string') {
15776 key = new Buffer(key)
15779 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
15784 if (key.length
> blocksize) {
15785 key = createHash(alg).update(key).digest()
15787 } else if (key.length < blocksize) {
15788 key = Buffer.concat([key, ZEROS], blocksize)
15791 var ipad = this._ipad = new Buffer(blocksize)
15792 var opad = this._opad = new Buffer(blocksize)
15794 for (var i =
0; i < blocksize; i++) {
15795 ipad[i] = key[i] ^
0x36
15796 opad[i] = key[i] ^
0x5C
15799 this._hash = createHash(alg).update(ipad)
15802 inherits(Hmac, Transform)
15804 Hmac.prototype.update = function (data, enc) {
15805 this._hash.update(data, enc)
15810 Hmac.prototype._transform = function (data, _, next) {
15811 this._hash.update(data)
15816 Hmac.prototype._flush = function (next) {
15817 this.push(this.digest())
15822 Hmac.prototype.digest = function (enc) {
15823 var h = this._hash.digest()
15825 return createHash(this._alg).update(this._opad).update(h).digest(enc)
15828 module.exports = function createHmac(alg, key) {
15829 return new Hmac(alg, key)
15832 }).call(this,require("buffer").Buffer)
15833 },{"buffer":
7,"create-hash/browser":
32,"inherits":
46,"stream":
26}],
46:[function(require,module,exports){
15834 arguments[
4][
12][
0].apply(exports,arguments)
15835 },{"dup":
12}],
47:[function(require,module,exports){
15836 var assert = require('assert')
15837 var BigInteger = require('bigi')
15839 var Point = require('./point')
15841 function Curve(p, a, b, Gx, Gy, n, h) {
15845 this.G = Point.fromAffine(this, Gx, Gy)
15849 this.infinity = new Point(this, null, null, BigInteger.ZERO)
15852 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
15855 Curve.prototype.pointFromX = function(isOdd, x) {
15856 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
15857 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
15860 if (beta.isEven() ^ !isOdd) {
15861 y = this.p.subtract(y) // -y % p
15864 return Point.fromAffine(this, x, y)
15867 Curve.prototype.isInfinity = function(Q) {
15868 if (Q === this.infinity) return true
15870 return Q.z.signum() ===
0 && Q.y.signum() !==
0
15873 Curve.prototype.isOnCurve = function(Q) {
15874 if (this.isInfinity(Q)) return true
15882 // Check that xQ and yQ are integers in the interval [
0, p -
1]
15883 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
15884 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
15886 // and check that y^
2 = x^
3 + ax + b (mod p)
15887 var lhs = y.square().mod(p)
15888 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
15889 return lhs.equals(rhs)
15893 * Validate an elliptic curve point.
15895 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
15897 Curve.prototype.validate = function(Q) {
15899 assert(!this.isInfinity(Q), 'Point is at infinity')
15900 assert(this.isOnCurve(Q), 'Point is not on the curve')
15902 // Check nQ = O (where Q is a scalar multiple of G)
15903 var nQ = Q.multiply(this.n)
15904 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
15909 module.exports = Curve
15911 },{"./point":
51,"assert":
5,"bigi":
3}],
48:[function(require,module,exports){
15914 "p": "fffffffdffffffffffffffffffffffff",
15915 "a": "fffffffdfffffffffffffffffffffffc",
15916 "b": "e87579c11079f43dd824993c2cee5ed3",
15917 "n": "fffffffe0000000075a30d1b9038a115",
15919 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
15920 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
15923 "p": "fffffffffffffffffffffffffffffffeffffac73",
15926 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
15928 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
15929 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
15932 "p": "ffffffffffffffffffffffffffffffff7fffffff",
15933 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
15934 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
15935 "n": "
0100000000000000000001f4c8f927aed3ca752257",
15937 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
15938 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
15941 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
15944 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
15946 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
15947 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
15950 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
15951 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
15952 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
15953 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
15955 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
15956 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
15959 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
15962 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
15964 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
15965 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
15968 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
15969 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
15970 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
15971 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
15973 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
15974 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
15978 },{}],
49:[function(require,module,exports){
15979 var Point = require('./point')
15980 var Curve = require('./curve')
15982 var getCurveByName = require('./names')
15987 getCurveByName: getCurveByName
15990 },{"./curve":
47,"./names":
50,"./point":
51}],
50:[function(require,module,exports){
15991 var BigInteger = require('bigi')
15993 var curves = require('./curves')
15994 var Curve = require('./curve')
15996 function getCurveByName(name) {
15997 var curve = curves[name]
15998 if (!curve) return null
16000 var p = new BigInteger(curve.p,
16)
16001 var a = new BigInteger(curve.a,
16)
16002 var b = new BigInteger(curve.b,
16)
16003 var n = new BigInteger(curve.n,
16)
16004 var h = new BigInteger(curve.h,
16)
16005 var Gx = new BigInteger(curve.Gx,
16)
16006 var Gy = new BigInteger(curve.Gy,
16)
16008 return new Curve(p, a, b, Gx, Gy, n, h)
16011 module.exports = getCurveByName
16013 },{"./curve":
47,"./curves":
48,"bigi":
3}],
51:[function(require,module,exports){
16014 (function (Buffer){
16015 var assert = require('assert')
16016 var BigInteger = require('bigi')
16018 var THREE = BigInteger.valueOf(
3)
16020 function Point(curve, x, y, z) {
16021 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
16029 this.compressed = true
16032 Object.defineProperty(Point.prototype, 'zInv', {
16034 if (this._zInv === null) {
16035 this._zInv = this.z.modInverse(this.curve.p)
16042 Object.defineProperty(Point.prototype, 'affineX', {
16044 return this.x.multiply(this.zInv).mod(this.curve.p)
16048 Object.defineProperty(Point.prototype, 'affineY', {
16050 return this.y.multiply(this.zInv).mod(this.curve.p)
16054 Point.fromAffine = function(curve, x, y) {
16055 return new Point(curve, x, y, BigInteger.ONE)
16058 Point.prototype.equals = function(other) {
16059 if (other === this) return true
16060 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
16061 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
16063 // u = Y2 * Z1 - Y1 * Z2
16064 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
16066 if (u.signum() !==
0) return false
16068 // v = X2 * Z1 - X1 * Z2
16069 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
16071 return v.signum() ===
0
16074 Point.prototype.negate = function() {
16075 var y = this.curve.p.subtract(this.y)
16077 return new Point(this.curve, this.x, y, this.z)
16080 Point.prototype.add = function(b) {
16081 if (this.curve.isInfinity(this)) return b
16082 if (this.curve.isInfinity(b)) return this
16089 // u = Y2 * Z1 - Y1 * Z2
16090 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
16091 // v = X2 * Z1 - X1 * Z2
16092 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
16094 if (v.signum() ===
0) {
16095 if (u.signum() ===
0) {
16096 return this.twice() // this == b, so double
16099 return this.curve.infinity // this = -b, so infinity
16102 var v2 = v.square()
16103 var v3 = v2.multiply(v)
16104 var x1v2 = x1.multiply(v2)
16105 var zu2 = u.square().multiply(this.z)
16107 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
16108 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
16109 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
16110 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)
16111 // z3 = v^
3 * z1 * z2
16112 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
16114 return new Point(this.curve, x3, y3, z3)
16117 Point.prototype.twice = function() {
16118 if (this.curve.isInfinity(this)) return this
16119 if (this.y.signum() ===
0) return this.curve.infinity
16124 var y1z1 = y1.multiply(this.z)
16125 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
16126 var a = this.curve.a
16128 // w =
3 * x1^
2 + a * z1^
2
16129 var w = x1.square().multiply(THREE)
16131 if (a.signum() !==
0) {
16132 w = w.add(this.z.square().multiply(a))
16135 w = w.mod(this.curve.p)
16136 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
16137 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
16138 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
16139 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
16140 // z3 =
8 * (y1 * z1)^
3
16141 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
16143 return new Point(this.curve, x3, y3, z3)
16146 // Simple NAF (Non-Adjacent Form) multiplication algorithm
16147 // TODO: modularize the multiplication algorithm
16148 Point.prototype.multiply = function(k) {
16149 if (this.curve.isInfinity(this)) return this
16150 if (k.signum() ===
0) return this.curve.infinity
16153 var h = e.multiply(THREE)
16155 var neg = this.negate()
16158 for (var i = h.bitLength() -
2; i
> 0; --i) {
16161 var hBit = h.testBit(i)
16162 var eBit = e.testBit(i)
16164 if (hBit != eBit) {
16165 R = R.add(hBit ? this : neg)
16172 // Compute this*j + x*k (simultaneous multiplication)
16173 Point.prototype.multiplyTwo = function(j, x, k) {
16176 if (j.bitLength()
> k.bitLength())
16177 i = j.bitLength() -
1
16179 i = k.bitLength() -
1
16181 var R = this.curve.infinity
16182 var both = this.add(x)
16187 var jBit = j.testBit(i)
16188 var kBit = k.testBit(i)
16209 Point.prototype.getEncoded = function(compressed) {
16210 if (compressed == undefined) compressed = this.compressed
16211 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
16213 var x = this.affineX
16214 var y = this.affineY
16218 // Determine size of q in bytes
16219 var byteLength = Math.floor((this.curve.p.bitLength() +
7) /
8)
16223 buffer = new Buffer(
1 + byteLength)
16224 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
16228 buffer = new Buffer(
1 + byteLength + byteLength)
16229 buffer.writeUInt8(
0x04,
0)
16231 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
16234 x.toBuffer(byteLength).copy(buffer,
1)
16239 Point.decodeFrom = function(curve, buffer) {
16240 var type = buffer.readUInt8(
0)
16241 var compressed = (type !==
4)
16243 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
16244 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
16248 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
16249 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
16251 var isOdd = (type ===
0x03)
16252 Q = curve.pointFromX(isOdd, x)
16255 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
16257 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
16258 Q = Point.fromAffine(curve, x, y)
16261 Q.compressed = compressed
16265 Point.prototype.toString = function () {
16266 if (this.curve.isInfinity(this)) return '(INFINITY)'
16268 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
16271 module.exports = Point
16273 }).call(this,require("buffer").Buffer)
16274 },{"assert":
5,"bigi":
3,"buffer":
7}],
52:[function(require,module,exports){
16275 (function (process,global,Buffer){
16278 var crypto = global.crypto || global.msCrypto
16279 if(crypto && crypto.getRandomValues) {
16280 module.exports = randomBytes;
16282 module.exports = oldBrowser;
16284 function randomBytes(size, cb) {
16285 var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
16286 /* This will not work in older browsers.
16287 * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
16290 crypto.getRandomValues(bytes);
16291 if (typeof cb === 'function') {
16292 return process.nextTick(function () {
16298 function oldBrowser() {
16300 'secure random number generation not supported by this browser\n'+
16301 'use chrome, FireFox or Internet Explorer
11'
16305 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
16306 },{"_process":
14,"buffer":
7}],
53:[function(require,module,exports){
16307 (function (Buffer){
16310 function getFunctionName(fn) {
16311 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1];
16314 function getTypeTypeName(type) {
16315 if (nativeTypes.Function(type)) {
16316 type = type.toJSON ? type.toJSON() : getFunctionName(type);
16318 if (nativeTypes.Object(type)) return JSON.stringify(type);
16323 function getValueTypeName(value) {
16324 if (nativeTypes.Null(value)) return '';
16326 return getFunctionName(value.constructor);
16329 function tfErrorString(type, value) {
16330 var typeTypeName = getTypeTypeName(type);
16331 var valueTypeName = getValueTypeName(value);
16333 return 'Expected ' + typeTypeName + ', got ' + (valueTypeName && valueTypeName + ' ') + JSON.stringify(value);
16336 function tfPropertyErrorString(type, name, value) {
16337 return tfErrorString('property \"' + name + '\" of type ' + getTypeTypeName(type), value);
16340 var nativeTypes = {
16341 Array: (function (_Array) {
16342 function Array(_x) {
16343 return _Array.apply(this, arguments);
16346 Array.toString = function () {
16347 return _Array.toString();
16351 })(function (value) {
16352 return value !== null && value !== undefined && value.constructor === Array;
16354 Boolean: function Boolean(value) {
16355 return typeof value === 'boolean';
16357 Buffer: (function (_Buffer) {
16358 function Buffer(_x2) {
16359 return _Buffer.apply(this, arguments);
16362 Buffer.toString = function () {
16363 return _Buffer.toString();
16367 })(function (value) {
16368 return Buffer.isBuffer(value);
16370 Function: function Function(value) {
16371 return typeof value === 'function';
16373 Null: function Null(value) {
16374 return value === undefined || value === null;
16376 Number: function Number(value) {
16377 return typeof value === 'number';
16379 Object: function Object(value) {
16380 return typeof value === 'object';
16382 String: function String(value) {
16383 return typeof value === 'string';
16390 function tJSON(type) {
16391 return type && type.toJSON ? type.toJSON() : type;
16394 function sJSON(type) {
16395 var json = tJSON(type);
16396 return nativeTypes.Object(json) ? JSON.stringify(json) : json;
16400 arrayOf: function arrayOf(type) {
16401 function arrayOf(value, strict) {
16403 return nativeTypes.Array(value) && value.every(function (x) {
16404 return typeforce(type, x, strict);
16410 arrayOf.toJSON = function () {
16411 return [tJSON(type)];
16417 maybe: function maybe(type) {
16418 function maybe(value, strict) {
16419 return nativeTypes.Null(value) || typeforce(type, value, strict);
16421 maybe.toJSON = function () {
16422 return '?' + sJSON(type);
16428 object: function object(type) {
16429 function object(value, strict) {
16430 typeforce(nativeTypes.Object, value, strict);
16432 var propertyName, propertyType, propertyValue;
16435 for (propertyName in type) {
16436 propertyType = type[propertyName];
16437 propertyValue = value[propertyName];
16439 typeforce(propertyType, propertyValue, strict);
16442 throw new TypeError(tfPropertyErrorString(propertyType, propertyName, propertyValue));
16446 for (propertyName in value) {
16447 if (type[propertyName]) continue;
16449 throw new TypeError('Unexpected property "' + propertyName + '"');
16455 object.toJSON = function () {
16462 oneOf: function oneOf() {
16463 for (var _len = arguments.length, types = Array(_len), _key =
0; _key < _len; _key++) {
16464 types[_key] = arguments[_key];
16467 function oneOf(value, strict) {
16468 return types.some(function (type) {
16470 return typeforce(type, value, strict);
16476 oneOf.toJSON = function () {
16477 return types.map(sJSON).join('|');
16483 quacksLike: function quacksLike(type) {
16484 function quacksLike(value, strict) {
16485 return type === getValueTypeName(value);
16487 quacksLike.toJSON = function () {
16494 tuple: function tuple() {
16495 for (var _len2 = arguments.length, types = Array(_len2), _key2 =
0; _key2 < _len2; _key2++) {
16496 types[_key2] = arguments[_key2];
16499 function tuple(value, strict) {
16500 return types.every(function (type, i) {
16501 return typeforce(type, value[i], strict);
16504 tuple.toJSON = function () {
16505 return '(' + types.map(sJSON).join(', ') + ')';
16511 value: function value(expected) {
16512 function value(actual) {
16513 return actual === expected;
16515 value.toJSON = function () {
16523 function compile(type) {
16524 if (nativeTypes.String(type)) {
16525 if (type[
0] === '?') return otherTypes.maybe(compile(type.slice(
1)));
16527 return nativeTypes[type] || otherTypes.quacksLike(type);
16528 } else if (type && nativeTypes.Object(type)) {
16529 if (nativeTypes.Array(type)) return otherTypes.arrayOf(compile(type[
0]));
16533 for (var propertyName in type) {
16534 compiled[propertyName] = compile(type[propertyName]);
16537 return otherTypes.object(compiled);
16538 } else if (nativeTypes.Function(type)) {
16542 return otherTypes.value(type);
16545 function typeforce(_x3, _x4, _x5) {
16548 _function: while (_again) {
16554 if (nativeTypes.Function(type)) {
16555 if (type(value, strict)) return true;
16557 throw new TypeError(tfErrorString(type, value));
16561 _x3 = compile(type);
16565 continue _function;
16569 // assign all types to typeforce function
16571 Object.keys(nativeTypes).forEach(function (typeName) {
16572 var nativeType = nativeTypes[typeName];
16573 nativeType.toJSON = function () {
16577 typeforce[typeName] = nativeType;
16580 for (typeName in otherTypes) {
16581 typeforce[typeName] = otherTypes[typeName];
16584 module.exports = typeforce;
16585 module.exports.compile = compile;
16586 }).call(this,require("buffer").Buffer)
16587 },{"buffer":
7}],
54:[function(require,module,exports){
16588 (function (Buffer){
16589 var assert = require('assert')
16590 var base58check = require('bs58check')
16591 var typeForce = require('typeforce')
16592 var networks = require('./networks')
16593 var scripts = require('./scripts')
16595 function findScriptTypeByVersion (version) {
16596 for (var networkName in networks) {
16597 var network = networks[networkName]
16599 if (version === network.pubKeyHash) return 'pubkeyhash'
16600 if (version === network.scriptHash) return 'scripthash'
16604 function Address (hash, version) {
16605 typeForce('Buffer', hash)
16607 assert.strictEqual(hash.length,
20, 'Invalid hash length')
16608 assert.strictEqual(version &
0xff, version, 'Invalid version byte')
16611 this.version = version
16614 Address.fromBase58Check = function (string) {
16615 var payload = base58check.decode(string)
16616 var version = payload.readUInt8(
0)
16617 var hash = payload.slice(
1)
16619 return new Address(hash, version)
16622 Address.fromOutputScript = function (script, network) {
16623 network = network || networks.bitcoin
16625 if (scripts.isPubKeyHashOutput(script)) return new Address(script.chunks[
2], network.pubKeyHash)
16626 if (scripts.isScriptHashOutput(script)) return new Address(script.chunks[
1], network.scriptHash)
16628 assert(false, script.toASM() + ' has no matching Address')
16631 Address.prototype.toBase58Check = function () {
16632 var payload = new Buffer(
21)
16633 payload.writeUInt8(this.version,
0)
16634 this.hash.copy(payload,
1)
16636 return base58check.encode(payload)
16639 Address.prototype.toOutputScript = function () {
16640 var scriptType = findScriptTypeByVersion(this.version)
16642 if (scriptType === 'pubkeyhash') return scripts.pubKeyHashOutput(this.hash)
16643 if (scriptType === 'scripthash') return scripts.scriptHashOutput(this.hash)
16645 assert(false, this.toString() + ' has no matching Script')
16648 Address.prototype.toString = Address.prototype.toBase58Check
16650 module.exports = Address
16652 }).call(this,require("buffer").Buffer)
16653 },{"./networks":
66,"./scripts":
69,"assert":
5,"bs58check":
31,"buffer":
7,"typeforce":
53}],
55:[function(require,module,exports){
16654 var bs58check = require('bs58check')
16656 function decode () {
16657 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
16659 return bs58check.decode.apply(undefined, arguments)
16662 function encode () {
16663 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
16665 return bs58check.encode.apply(undefined, arguments)
16673 },{"bs58check":
31}],
56:[function(require,module,exports){
16674 (function (Buffer){
16675 var assert = require('assert')
16676 var bufferutils = require('./bufferutils')
16677 var crypto = require('./crypto')
16679 var Transaction = require('./transaction')
16681 function Block () {
16683 this.prevHash = null
16684 this.merkleRoot = null
16690 Block.fromBuffer = function (buffer) {
16691 assert(buffer.length
>=
80, 'Buffer too small (<
80 bytes)')
16694 function readSlice (n) {
16696 return buffer.slice(offset - n, offset)
16699 function readUInt32 () {
16700 var i = buffer.readUInt32LE(offset)
16705 var block = new Block()
16706 block.version = readUInt32()
16707 block.prevHash = readSlice(
32)
16708 block.merkleRoot = readSlice(
32)
16709 block.timestamp = readUInt32()
16710 block.bits = readUInt32()
16711 block.nonce = readUInt32()
16713 if (buffer.length ===
80) return block
16715 function readVarInt () {
16716 var vi = bufferutils.readVarInt(buffer, offset)
16721 // FIXME: poor performance
16722 function readTransaction () {
16723 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
16725 offset += tx.toBuffer().length
16729 var nTransactions = readVarInt()
16730 block.transactions = []
16732 for (var i =
0; i < nTransactions; ++i) {
16733 var tx = readTransaction()
16734 block.transactions.push(tx)
16740 Block.fromHex = function (hex) {
16741 return Block.fromBuffer(new Buffer(hex, 'hex'))
16744 Block.prototype.getHash = function () {
16745 return crypto.hash256(this.toBuffer(true))
16748 Block.prototype.getId = function () {
16749 return bufferutils.reverse(this.getHash()).toString('hex')
16752 Block.prototype.getUTCDate = function () {
16753 var date = new Date(
0) // epoch
16754 date.setUTCSeconds(this.timestamp)
16759 Block.prototype.toBuffer = function (headersOnly) {
16760 var buffer = new Buffer(
80)
16763 function writeSlice (slice) {
16764 slice.copy(buffer, offset)
16765 offset += slice.length
16768 function writeUInt32 (i) {
16769 buffer.writeUInt32LE(i, offset)
16773 writeUInt32(this.version)
16774 writeSlice(this.prevHash)
16775 writeSlice(this.merkleRoot)
16776 writeUInt32(this.timestamp)
16777 writeUInt32(this.bits)
16778 writeUInt32(this.nonce)
16780 if (headersOnly || !this.transactions) return buffer
16782 var txLenBuffer = bufferutils.varIntBuffer(this.transactions.length)
16783 var txBuffers = this.transactions.map(function (tx) {
16784 return tx.toBuffer()
16787 return Buffer.concat([buffer, txLenBuffer].concat(txBuffers))
16790 Block.prototype.toHex = function (headersOnly) {
16791 return this.toBuffer(headersOnly).toString('hex')
16794 module.exports = Block
16796 }).call(this,require("buffer").Buffer)
16797 },{"./bufferutils":
57,"./crypto":
58,"./transaction":
70,"assert":
5,"buffer":
7}],
57:[function(require,module,exports){
16798 (function (Buffer){
16799 var assert = require('assert')
16800 var opcodes = require('./opcodes')
16802 // https://github.com/feross/buffer/blob/master/index.js#L1127
16803 function verifuint (value, max) {
16804 assert(typeof value === 'number', 'cannot write a non-number as a number')
16805 assert(value
>=
0, 'specified a negative value for writing an unsigned value')
16806 assert(value <= max, 'value is larger than maximum value for type')
16807 assert(Math.floor(value) === value, 'value has a fractional component')
16810 function pushDataSize (i) {
16811 return i < opcodes.OP_PUSHDATA1 ?
1
16817 function readPushDataInt (buffer, offset) {
16818 var opcode = buffer.readUInt8(offset)
16822 if (opcode < opcodes.OP_PUSHDATA1) {
16827 } else if (opcode === opcodes.OP_PUSHDATA1) {
16828 if (offset +
2 > buffer.length) return null
16829 number = buffer.readUInt8(offset +
1)
16833 } else if (opcode === opcodes.OP_PUSHDATA2) {
16834 if (offset +
3 > buffer.length) return null
16835 number = buffer.readUInt16LE(offset +
1)
16840 if (offset +
5 > buffer.length) return null
16841 assert.equal(opcode, opcodes.OP_PUSHDATA4, 'Unexpected opcode')
16843 number = buffer.readUInt32LE(offset +
1)
16854 function readUInt64LE (buffer, offset) {
16855 var a = buffer.readUInt32LE(offset)
16856 var b = buffer.readUInt32LE(offset +
4)
16859 verifuint(b + a,
0x001fffffffffffff)
16864 function readVarInt (buffer, offset) {
16865 var t = buffer.readUInt8(offset)
16874 } else if (t <
254) {
16875 number = buffer.readUInt16LE(offset +
1)
16879 } else if (t <
255) {
16880 number = buffer.readUInt32LE(offset +
1)
16885 number = readUInt64LE(buffer, offset +
1)
16895 function writePushDataInt (buffer, number, offset) {
16896 var size = pushDataSize(number)
16900 buffer.writeUInt8(number, offset)
16903 } else if (size ===
2) {
16904 buffer.writeUInt8(opcodes.OP_PUSHDATA1, offset)
16905 buffer.writeUInt8(number, offset +
1)
16908 } else if (size ===
3) {
16909 buffer.writeUInt8(opcodes.OP_PUSHDATA2, offset)
16910 buffer.writeUInt16LE(number, offset +
1)
16914 buffer.writeUInt8(opcodes.OP_PUSHDATA4, offset)
16915 buffer.writeUInt32LE(number, offset +
1)
16921 function writeUInt64LE (buffer, value, offset) {
16922 verifuint(value,
0x001fffffffffffff)
16924 buffer.writeInt32LE(value & -
1, offset)
16925 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16928 function varIntSize (i) {
16931 : i <
0x100000000 ?
5
16935 function writeVarInt (buffer, number, offset) {
16936 var size = varIntSize(number)
16940 buffer.writeUInt8(number, offset)
16943 } else if (size ===
3) {
16944 buffer.writeUInt8(
253, offset)
16945 buffer.writeUInt16LE(number, offset +
1)
16948 } else if (size ===
5) {
16949 buffer.writeUInt8(
254, offset)
16950 buffer.writeUInt32LE(number, offset +
1)
16954 buffer.writeUInt8(
255, offset)
16955 writeUInt64LE(buffer, number, offset +
1)
16961 function varIntBuffer (i) {
16962 var size = varIntSize(i)
16963 var buffer = new Buffer(size)
16964 writeVarInt(buffer, i,
0)
16969 function reverse (buffer) {
16970 var buffer2 = new Buffer(buffer)
16971 Array.prototype.reverse.call(buffer2)
16976 pushDataSize: pushDataSize,
16977 readPushDataInt: readPushDataInt,
16978 readUInt64LE: readUInt64LE,
16979 readVarInt: readVarInt,
16981 varIntBuffer: varIntBuffer,
16982 varIntSize: varIntSize,
16983 writePushDataInt: writePushDataInt,
16984 writeUInt64LE: writeUInt64LE,
16985 writeVarInt: writeVarInt
16988 }).call(this,require("buffer").Buffer)
16989 },{"./opcodes":
67,"assert":
5,"buffer":
7}],
58:[function(require,module,exports){
16990 var createHash = require('create-hash')
16992 function hash160 (buffer) {
16993 return ripemd160(sha256(buffer))
16996 function hash256 (buffer) {
16997 return sha256(sha256(buffer))
17000 function ripemd160 (buffer) {
17001 return createHash('rmd160').update(buffer).digest()
17004 function sha1 (buffer) {
17005 return createHash('sha1').update(buffer).digest()
17008 function sha256 (buffer) {
17009 return createHash('sha256').update(buffer).digest()
17012 // FIXME: Name not consistent with others
17013 var createHmac = require('create-hmac')
17015 function HmacSHA256 (buffer, secret) {
17016 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
17017 return createHmac('sha256', secret).update(buffer).digest()
17020 function HmacSHA512 (buffer, secret) {
17021 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
17022 return createHmac('sha512', secret).update(buffer).digest()
17026 ripemd160: ripemd160,
17031 HmacSHA256: HmacSHA256,
17032 HmacSHA512: HmacSHA512
17035 },{"create-hash":
32,"create-hmac":
45}],
59:[function(require,module,exports){
17036 (function (Buffer){
17037 var assert = require('assert')
17038 var createHmac = require('create-hmac')
17039 var typeForce = require('typeforce')
17041 var BigInteger = require('bigi')
17042 var ECSignature = require('./ecsignature')
17044 var ZERO = new Buffer([
0])
17045 var ONE = new Buffer([
1])
17047 // https://tools.ietf.org/html/rfc6979#section-
3.2
17048 function deterministicGenerateK (curve, hash, d, checkSig) {
17049 typeForce('Buffer', hash)
17050 typeForce('BigInteger', d)
17052 // FIXME: remove/uncomment for
2.0.0
17053 // typeForce('Function', checkSig)
17055 if (typeof checkSig !== 'function') {
17056 console.warn('deterministicGenerateK requires a checkSig callback in
2.0.0, see #
337 for more information')
17058 checkSig = function (k) {
17061 var e = BigInteger.fromBuffer(hash)
17063 var Q = G.multiply(k)
17065 if (curve.isInfinity(Q))
17068 var r = Q.affineX.mod(n)
17069 if (r.signum() ===
0)
17072 var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
17073 if (s.signum() ===
0)
17081 assert.equal(hash.length,
32, 'Hash must be
256 bit')
17083 var x = d.toBuffer(
32)
17084 var k = new Buffer(
32)
17085 var v = new Buffer(
32)
17087 // Step A, ignored as hash already provided
17095 k = createHmac('sha256', k)
17103 v = createHmac('sha256', k).update(v).digest()
17106 k = createHmac('sha256', k)
17114 v = createHmac('sha256', k).update(v).digest()
17116 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
17118 v = createHmac('sha256', k).update(v).digest()
17120 var T = BigInteger.fromBuffer(v)
17122 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
17123 while ((T.signum() <=
0) || (T.compareTo(curve.n)
>=
0) || !checkSig(T)) {
17124 k = createHmac('sha256', k)
17129 v = createHmac('sha256', k).update(v).digest()
17131 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
17133 v = createHmac('sha256', k).update(v).digest()
17134 T = BigInteger.fromBuffer(v)
17140 function sign (curve, hash, d) {
17143 var e = BigInteger.fromBuffer(hash)
17147 deterministicGenerateK(curve, hash, d, function (k) {
17148 var Q = G.multiply(k)
17150 if (curve.isInfinity(Q))
17153 r = Q.affineX.mod(n)
17154 if (r.signum() ===
0)
17157 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
17158 if (s.signum() ===
0)
17164 var N_OVER_TWO = n.shiftRight(
1)
17166 // enforce low S values, see bip62: 'low s values in signatures'
17167 if (s.compareTo(N_OVER_TWO)
> 0) {
17171 return new ECSignature(r, s)
17174 function verifyRaw (curve, e, signature, Q) {
17178 var r = signature.r
17179 var s = signature.s
17181 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
17182 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
17183 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
17186 var c = s.modInverse(n)
17188 //
1.4.4 Compute u1 = es^−
1 mod n
17189 // u2 = rs^−
1 mod n
17190 var u1 = e.multiply(c).mod(n)
17191 var u2 = r.multiply(c).mod(n)
17193 //
1.4.5 Compute R = (xR, yR) = u1G + u2Q
17194 var R = G.multiplyTwo(u1, Q, u2)
17195 var v = R.affineX.mod(n)
17197 //
1.4.5 (cont.) Enforce R is not at infinity
17198 if (curve.isInfinity(R)) return false
17200 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
17204 function verify (curve, hash, signature, Q) {
17205 //
1.4.2 H = Hash(M), already done by the user
17207 var e = BigInteger.fromBuffer(hash)
17209 return verifyRaw(curve, e, signature, Q)
17213 * Recover a public key from a signature.
17215 * See SEC
1: Elliptic Curve Cryptography, section
4.1.6, "Public
17216 * Key Recovery Operation".
17218 * http://www.secg.org/download/aid-
780/sec1-v2.pdf
17220 function recoverPubKey (curve, e, signature, i) {
17221 assert.strictEqual(i &
3, i, 'Recovery param is more than two bits')
17226 var r = signature.r
17227 var s = signature.s
17229 assert(r.signum()
> 0 && r.compareTo(n) <
0, 'Invalid r value')
17230 assert(s.signum()
> 0 && s.compareTo(n) <
0, 'Invalid s value')
17232 // A set LSB signifies that the y-coordinate is odd
17235 // The more significant bit specifies whether we should use the
17236 // first or second candidate key.
17237 var isSecondKey = i
>> 1
17239 //
1.1 Let x = r + jn
17240 var x = isSecondKey ? r.add(n) : r
17241 var R = curve.pointFromX(isYOdd, x)
17243 //
1.4 Check that nR is at infinity
17244 var nR = R.multiply(n)
17245 assert(curve.isInfinity(nR), 'nR is not a valid curve point')
17247 // Compute -e from e
17248 var eNeg = e.negate().mod(n)
17250 //
1.6.1 Compute Q = r^-
1 (sR - eG)
17251 // Q = r^-
1 (sR + -eG)
17252 var rInv = r.modInverse(n)
17254 var Q = R.multiplyTwo(s, G, eNeg).multiply(rInv)
17261 * Calculate pubkey extraction parameter.
17263 * When extracting a pubkey from a signature, we have to
17264 * distinguish four different cases. Rather than putting this
17265 * burden on the verifier, Bitcoin includes a
2-bit value with the
17268 * This function simply tries all four cases and returns the value
17269 * that resulted in a successful pubkey recovery.
17271 function calcPubKeyRecoveryParam (curve, e, signature, Q) {
17272 for (var i =
0; i <
4; i++) {
17273 var Qprime = recoverPubKey(curve, e, signature, i)
17276 if (Qprime.equals(Q)) {
17281 throw new Error('Unable to find valid recovery factor')
17285 calcPubKeyRecoveryParam: calcPubKeyRecoveryParam,
17286 deterministicGenerateK: deterministicGenerateK,
17287 recoverPubKey: recoverPubKey,
17290 verifyRaw: verifyRaw
17293 }).call(this,require(
"buffer").Buffer)
17294 },{
"./ecsignature":
62,
"assert":
5,
"bigi":
3,
"buffer":
7,
"create-hmac":
45,
"typeforce":
53}],
60:[function(require,module,exports){
17295 (function (Buffer){
17296 var assert = require('assert')
17297 var base58check = require('bs58check')
17298 var ecdsa = require('./ecdsa')
17299 var networks = require('./networks')
17300 var randomBytes = require('randombytes')
17301 var typeForce = require('typeforce')
17303 var BigInteger = require('bigi')
17304 var ECPubKey = require('./ecpubkey')
17306 var ecurve = require('ecurve')
17307 var secp256k1 = ecurve.getCurveByName('secp256k1')
17309 function ECKey (d, compressed) {
17310 assert(d.signum()
> 0, 'Private key must be greater than
0')
17311 assert(d.compareTo(ECKey.curve.n) <
0, 'Private key must be less than the curve order')
17313 var Q = ECKey.curve.G.multiply(d)
17316 this.pub = new ECPubKey(Q, compressed)
17320 ECKey.curve = secp256k1
17322 // Static constructors
17323 ECKey.fromWIF = function (string) {
17324 var payload = base58check.decode(string)
17325 var compressed = false
17327 // Ignore the version byte
17328 payload = payload.slice(
1)
17330 if (payload.length ===
33) {
17331 assert.strictEqual(payload[
32],
0x01, 'Invalid compression flag')
17333 // Truncate the compression flag
17334 payload = payload.slice(
0, -
1)
17338 assert.equal(payload.length,
32, 'Invalid WIF payload length')
17340 var d = BigInteger.fromBuffer(payload)
17341 return new ECKey(d, compressed)
17344 ECKey.makeRandom = function (compressed, rng) {
17345 rng = rng || randomBytes
17347 var buffer = rng(
32)
17348 typeForce('Buffer', buffer)
17349 assert.equal(buffer.length,
32, 'Expected
256-bit Buffer from RNG')
17351 var d = BigInteger.fromBuffer(buffer)
17352 d = d.mod(ECKey.curve.n)
17354 return new ECKey(d, compressed)
17357 // Export functions
17358 ECKey.prototype.toWIF = function (network) {
17359 network = network || networks.bitcoin
17361 var bufferLen = this.pub.compressed ?
34 :
33
17362 var buffer = new Buffer(bufferLen)
17364 buffer.writeUInt8(network.wif,
0)
17365 this.d.toBuffer(
32).copy(buffer,
1)
17367 if (this.pub.compressed) {
17368 buffer.writeUInt8(
0x01,
33)
17371 return base58check.encode(buffer)
17375 ECKey.prototype.sign = function (hash) {
17376 return ecdsa.sign(ECKey.curve, hash, this.d)
17379 module.exports = ECKey
17381 }).call(this,require(
"buffer").Buffer)
17382 },{
"./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){
17383 (function (Buffer){
17384 var crypto = require('./crypto')
17385 var ecdsa = require('./ecdsa')
17386 var typeForce = require('typeforce')
17387 var networks = require('./networks')
17389 var Address = require('./address')
17391 var ecurve = require('ecurve')
17392 var secp256k1 = ecurve.getCurveByName('secp256k1')
17394 function ECPubKey (Q, compressed) {
17395 if (compressed === undefined) {
17399 typeForce('Point', Q)
17400 typeForce('Boolean', compressed)
17402 this.compressed = compressed
17407 ECPubKey.curve = secp256k1
17409 // Static constructors
17410 ECPubKey.fromBuffer = function (buffer) {
17411 var Q = ecurve.Point.decodeFrom(ECPubKey.curve, buffer)
17412 return new ECPubKey(Q, Q.compressed)
17415 ECPubKey.fromHex = function (hex) {
17416 return ECPubKey.fromBuffer(new Buffer(hex, 'hex'))
17420 ECPubKey.prototype.getAddress = function (network) {
17421 network = network || networks.bitcoin
17423 return new Address(crypto.hash160(this.toBuffer()), network.pubKeyHash)
17426 ECPubKey.prototype.verify = function (hash, signature) {
17427 return ecdsa.verify(ECPubKey.curve, hash, signature, this.Q)
17430 // Export functions
17431 ECPubKey.prototype.toBuffer = function () {
17432 return this.Q.getEncoded(this.compressed)
17435 ECPubKey.prototype.toHex = function () {
17436 return this.toBuffer().toString('hex')
17439 module.exports = ECPubKey
17441 }).call(this,require(
"buffer").Buffer)
17442 },{
"./address":
54,
"./crypto":
58,
"./ecdsa":
59,
"./networks":
66,
"buffer":
7,
"ecurve":
49,
"typeforce":
53}],
62:[function(require,module,exports){
17443 (function (Buffer){
17444 var assert = require('assert')
17445 var typeForce = require('typeforce')
17447 var BigInteger = require('bigi')
17449 function ECSignature (r, s) {
17450 typeForce('BigInteger', r)
17451 typeForce('BigInteger', s)
17457 ECSignature.parseCompact = function (buffer) {
17458 assert.equal(buffer.length,
65, 'Invalid signature length')
17459 var i = buffer.readUInt8(
0) -
27
17462 assert.equal(i, i &
7, 'Invalid signature parameter')
17463 var compressed = !!(i &
4)
17465 // Recovery param only
17468 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
17469 var s = BigInteger.fromBuffer(buffer.slice(
33))
17472 compressed: compressed,
17474 signature: new ECSignature(r, s)
17478 ECSignature.fromDER = function (buffer) {
17479 assert.equal(buffer.readUInt8(
0),
0x30, 'Not a DER sequence')
17480 assert.equal(buffer.readUInt8(
1), buffer.length -
2, 'Invalid sequence length')
17481 assert.equal(buffer.readUInt8(
2),
0x02, 'Expected a DER integer')
17483 var rLen = buffer.readUInt8(
3)
17484 assert(rLen
> 0, 'R length is zero')
17486 var offset =
4 + rLen
17487 assert.equal(buffer.readUInt8(offset),
0x02, 'Expected a DER integer (
2)')
17489 var sLen = buffer.readUInt8(offset +
1)
17490 assert(sLen
> 0, 'S length is zero')
17492 var rB = buffer.slice(
4, offset)
17493 var sB = buffer.slice(offset +
2)
17496 if (rLen
> 1 && rB.readUInt8(
0) ===
0x00) {
17497 assert(rB.readUInt8(
1) &
0x80, 'R value excessively padded')
17500 if (sLen
> 1 && sB.readUInt8(
0) ===
0x00) {
17501 assert(sB.readUInt8(
1) &
0x80, 'S value excessively padded')
17504 assert.equal(offset, buffer.length, 'Invalid DER encoding')
17505 var r = BigInteger.fromDERInteger(rB)
17506 var s = BigInteger.fromDERInteger(sB)
17508 assert(r.signum()
>=
0, 'R value is negative')
17509 assert(s.signum()
>=
0, 'S value is negative')
17511 return new ECSignature(r, s)
17514 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
17515 ECSignature.parseScriptSignature = function (buffer) {
17516 var hashType = buffer.readUInt8(buffer.length -
1)
17517 var hashTypeMod = hashType & ~
0x80
17519 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
17522 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
17527 ECSignature.prototype.toCompact = function (i, compressed) {
17534 var buffer = new Buffer(
65)
17535 buffer.writeUInt8(i,
0)
17537 this.r.toBuffer(
32).copy(buffer,
1)
17538 this.s.toBuffer(
32).copy(buffer,
33)
17543 ECSignature.prototype.toDER = function () {
17544 var rBa = this.r.toDERInteger()
17545 var sBa = this.s.toDERInteger()
17550 sequence.push(
0x02, rBa.length)
17551 sequence = sequence.concat(rBa)
17554 sequence.push(
0x02, sBa.length)
17555 sequence = sequence.concat(sBa)
17558 sequence.unshift(
0x30, sequence.length)
17560 return new Buffer(sequence)
17563 ECSignature.prototype.toScriptSignature = function (hashType) {
17564 var hashTypeMod = hashType & ~
0x80
17565 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
17567 var hashTypeBuffer = new Buffer(
1)
17568 hashTypeBuffer.writeUInt8(hashType,
0)
17570 return Buffer.concat([this.toDER(), hashTypeBuffer])
17573 module.exports = ECSignature
17575 }).call(this,require(
"buffer").Buffer)
17576 },{
"assert":
5,
"bigi":
3,
"buffer":
7,
"typeforce":
53}],
63:[function(require,module,exports){
17577 (function (Buffer){
17578 var assert = require('assert')
17579 var base58check = require('bs58check')
17580 var bcrypto = require('./crypto')
17581 var createHmac = require('create-hmac')
17582 var typeForce = require('typeforce')
17583 var networks = require('./networks')
17585 var BigInteger = require('bigi')
17586 var ECKey = require('./eckey')
17587 var ECPubKey = require('./ecpubkey')
17589 var ecurve = require('ecurve')
17590 var curve = ecurve.getCurveByName('secp256k1')
17592 function findBIP32NetworkByVersion (version) {
17593 for (var name in networks) {
17594 var network = networks[name]
17596 if (version === network.bip32.private || version === network.bip32.public) {
17601 assert(false, 'Could not find network for ' + version.toString(
16))
17604 function HDNode (K, chainCode, network) {
17605 network = network || networks.bitcoin
17607 typeForce('Buffer', chainCode)
17609 assert.equal(chainCode.length,
32, 'Expected chainCode length of
32, got ' + chainCode.length)
17610 assert(network.bip32, 'Unknown BIP32 constants for network')
17612 this.chainCode = chainCode
17615 this.parentFingerprint =
0x00000000
17616 this.network = network
17618 if (K instanceof BigInteger) {
17619 this.privKey = new ECKey(K, true)
17620 this.pubKey = this.privKey.pub
17621 } else if (K instanceof ECKey) {
17622 assert(K.pub.compressed, 'ECKey must be compressed')
17624 this.pubKey = K.pub
17625 } else if (K instanceof ECPubKey) {
17626 assert(K.compressed, 'ECPubKey must be compressed')
17629 this.pubKey = new ECPubKey(K, true)
17633 HDNode.MASTER_SECRET = new Buffer('Bitcoin seed')
17634 HDNode.HIGHEST_BIT =
0x80000000
17637 HDNode.fromSeedBuffer = function (seed, network) {
17638 typeForce('Buffer', seed)
17640 assert(seed.length
>=
16, 'Seed should be at least
128 bits')
17641 assert(seed.length <=
64, 'Seed should be at most
512 bits')
17643 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
17644 var IL = I.slice(
0,
32)
17645 var IR = I.slice(
32)
17647 // In case IL is
0 or
>= n, the master key is invalid
17648 // This is handled by `new ECKey` in the HDNode constructor
17649 var pIL = BigInteger.fromBuffer(IL)
17651 return new HDNode(pIL, IR, network)
17654 HDNode.fromSeedHex = function (hex, network) {
17655 return HDNode.fromSeedBuffer(new Buffer(hex, 'hex'), network)
17658 HDNode.fromBase58 = function (string, network) {
17659 return HDNode.fromBuffer(base58check.decode(string), network, true)
17662 // FIXME: remove in
2.x.y
17663 HDNode.fromBuffer = function (buffer, network, __ignoreDeprecation) {
17664 if (!__ignoreDeprecation) {
17665 console.warn('HDNode.fromBuffer() is deprecated for removal in
2.x.y, use fromBase58 instead')
17668 assert.strictEqual(buffer.length, HDNode.LENGTH, 'Invalid buffer length')
17670 //
4 byte: version bytes
17671 var version = buffer.readUInt32BE(
0)
17674 assert(version === network.bip32.private || version === network.bip32.public, "Network doesn't match")
17678 network = findBIP32NetworkByVersion(version)
17681 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
17682 var depth = buffer.readUInt8(
4)
17684 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
17685 var parentFingerprint = buffer.readUInt32BE(
5)
17687 assert.strictEqual(parentFingerprint,
0x00000000, 'Invalid parent fingerprint')
17690 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
17691 // This is encoded in MSB order. (
0x00000000 if master key)
17692 var index = buffer.readUInt32BE(
9)
17693 assert(depth
> 0 || index ===
0, 'Invalid index')
17695 //
32 bytes: the chain code
17696 var chainCode = buffer.slice(
13,
45)
17699 //
33 bytes: private key data (
0x00 + k)
17700 if (version === network.bip32.private) {
17701 assert.strictEqual(buffer.readUInt8(
45),
0x00, 'Invalid private key')
17702 data = buffer.slice(
46,
78)
17703 var d = BigInteger.fromBuffer(data)
17704 hd = new HDNode(d, chainCode, network)
17706 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
17708 data = buffer.slice(
45,
78)
17709 var Q = ecurve.Point.decodeFrom(curve, data)
17710 assert.equal(Q.compressed, true, 'Invalid public key')
17712 // Verify that the X coordinate in the public point corresponds to a point on the curve.
17713 // If not, the extended public key is invalid.
17716 hd = new HDNode(Q, chainCode, network)
17721 hd.parentFingerprint = parentFingerprint
17726 // FIXME: remove in
2.x.y
17727 HDNode.fromHex = function (hex, network) {
17728 return HDNode.fromBuffer(new Buffer(hex, 'hex'), network)
17731 HDNode.prototype.getIdentifier = function () {
17732 return bcrypto.hash160(this.pubKey.toBuffer())
17735 HDNode.prototype.getFingerprint = function () {
17736 return this.getIdentifier().slice(
0,
4)
17739 HDNode.prototype.getAddress = function () {
17740 return this.pubKey.getAddress(this.network)
17743 HDNode.prototype.neutered = function () {
17744 var neutered = new HDNode(this.pubKey.Q, this.chainCode, this.network)
17745 neutered.depth = this.depth
17746 neutered.index = this.index
17747 neutered.parentFingerprint = this.parentFingerprint
17752 HDNode.prototype.toBase58 = function (isPrivate) {
17753 return base58check.encode(this.toBuffer(isPrivate, true))
17756 // FIXME: remove in
2.x.y
17757 HDNode.prototype.toBuffer = function (isPrivate, __ignoreDeprecation) {
17758 if (isPrivate === undefined) {
17759 isPrivate = !!this.privKey
17761 // FIXME: remove in
2.x.y
17763 console.warn('isPrivate flag is deprecated, please use the .neutered() method instead')
17766 if (!__ignoreDeprecation) {
17767 console.warn('HDNode.toBuffer() is deprecated for removal in
2.x.y, use toBase58 instead')
17771 var version = isPrivate ? this.network.bip32.private : this.network.bip32.public
17772 var buffer = new Buffer(HDNode.LENGTH)
17774 //
4 bytes: version bytes
17775 buffer.writeUInt32BE(version,
0)
17778 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
17779 buffer.writeUInt8(this.depth,
4)
17781 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
17782 buffer.writeUInt32BE(this.parentFingerprint,
5)
17784 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
17785 // This is encoded in Big endian. (
0x00000000 if master key)
17786 buffer.writeUInt32BE(this.index,
9)
17788 //
32 bytes: the chain code
17789 this.chainCode.copy(buffer,
13)
17791 //
33 bytes: the public key or private key data
17793 // FIXME: remove in
2.x.y
17794 assert(this.privKey, 'Missing private key')
17796 //
0x00 + k for private keys
17797 buffer.writeUInt8(
0,
45)
17798 this.privKey.d.toBuffer(
32).copy(buffer,
46)
17800 // X9.62 encoding for public keys
17801 this.pubKey.toBuffer().copy(buffer,
45)
17807 // FIXME: remove in
2.x.y
17808 HDNode.prototype.toHex = function (isPrivate) {
17809 return this.toBuffer(isPrivate).toString('hex')
17812 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
17813 HDNode.prototype.derive = function (index) {
17814 var isHardened = index
>= HDNode.HIGHEST_BIT
17815 var indexBuffer = new Buffer(
4)
17816 indexBuffer.writeUInt32BE(index,
0)
17822 assert(this.privKey, 'Could not derive hardened child key')
17824 // data =
0x00 || ser256(kpar) || ser32(index)
17825 data = Buffer.concat([
17826 this.privKey.d.toBuffer(
33),
17832 // data = serP(point(kpar)) || ser32(index)
17833 // = serP(Kpar) || ser32(index)
17834 data = Buffer.concat([
17835 this.pubKey.toBuffer(),
17840 var I = createHmac('sha512', this.chainCode).update(data).digest()
17841 var IL = I.slice(
0,
32)
17842 var IR = I.slice(
32)
17844 var pIL = BigInteger.fromBuffer(IL)
17846 // In case parse256(IL)
>= n, proceed with the next value for i
17847 if (pIL.compareTo(curve.n)
>=
0) {
17848 return this.derive(index +
1)
17851 // Private parent key -
> private child key
17853 if (this.privKey) {
17854 // ki = parse256(IL) + kpar (mod n)
17855 var ki = pIL.add(this.privKey.d).mod(curve.n)
17857 // In case ki ==
0, proceed with the next value for i
17858 if (ki.signum() ===
0) {
17859 return this.derive(index +
1)
17862 hd = new HDNode(ki, IR, this.network)
17864 // Public parent key -
> public child key
17866 // Ki = point(parse256(IL)) + Kpar
17868 var Ki = curve.G.multiply(pIL).add(this.pubKey.Q)
17870 // In case Ki is the point at infinity, proceed with the next value for i
17871 if (curve.isInfinity(Ki)) {
17872 return this.derive(index +
1)
17875 hd = new HDNode(Ki, IR, this.network)
17878 hd.depth = this.depth +
1
17880 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
17885 HDNode.prototype.deriveHardened = function (index) {
17886 // Only derives hardened private keys by default
17887 return this.derive(index + HDNode.HIGHEST_BIT)
17890 HDNode.prototype.toString = HDNode.prototype.toBase58
17892 module.exports = HDNode
17894 }).call(this,require("buffer").Buffer)
17895 },{"./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){
17897 Address: require('./address'),
17898 base58check: require('./base58check'),
17899 Block: require('./block'),
17900 bufferutils: require('./bufferutils'),
17901 crypto: require('./crypto'),
17902 ecdsa: require('./ecdsa'),
17903 ECKey: require('./eckey'),
17904 ECPubKey: require('./ecpubkey'),
17905 ECSignature: require('./ecsignature'),
17906 Message: require('./message'),
17907 opcodes: require('./opcodes'),
17908 HDNode: require('./hdnode'),
17909 Script: require('./script'),
17910 scripts: require('./scripts'),
17911 Transaction: require('./transaction'),
17912 TransactionBuilder: require('./transaction_builder'),
17913 networks: require('./networks'),
17914 Wallet: require('./wallet')
17917 },{"./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){
17918 (function (Buffer){
17919 var bufferutils = require('./bufferutils')
17920 var crypto = require('./crypto')
17921 var ecdsa = require('./ecdsa')
17922 var networks = require('./networks')
17924 var BigInteger = require('bigi')
17925 var ECPubKey = require('./ecpubkey')
17926 var ECSignature = require('./ecsignature')
17928 var ecurve = require('ecurve')
17929 var ecparams = ecurve.getCurveByName('secp256k1')
17931 function magicHash (message, network) {
17932 var magicPrefix = new Buffer(network.magicPrefix)
17933 var messageBuffer = new Buffer(message)
17934 var lengthBuffer = bufferutils.varIntBuffer(messageBuffer.length)
17936 var buffer = Buffer.concat([magicPrefix, lengthBuffer, messageBuffer])
17937 return crypto.hash256(buffer)
17940 function sign (privKey, message, network) {
17941 network = network || networks.bitcoin
17943 var hash = magicHash(message, network)
17944 var signature = privKey.sign(hash)
17945 var e = BigInteger.fromBuffer(hash)
17946 var i = ecdsa.calcPubKeyRecoveryParam(ecparams, e, signature, privKey.pub.Q)
17948 return signature.toCompact(i, privKey.pub.compressed)
17951 // TODO: network could be implied from address
17952 function verify (address, signature, message, network) {
17953 if (!Buffer.isBuffer(signature)) {
17954 signature = new Buffer(signature, 'base64')
17957 network = network || networks.bitcoin
17959 var hash = magicHash(message, network)
17960 var parsed = ECSignature.parseCompact(signature)
17961 var e = BigInteger.fromBuffer(hash)
17962 var Q = ecdsa.recoverPubKey(ecparams, e, parsed.signature, parsed.i)
17964 var pubKey = new ECPubKey(Q, parsed.compressed)
17965 return pubKey.getAddress(network).toString() === address.toString()
17969 magicHash: magicHash,
17974 }).call(this,require("buffer").Buffer)
17975 },{"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./ecpubkey":
61,"./ecsignature":
62,"./networks":
66,"bigi":
3,"buffer":
7,"ecurve":
49}],
66:[function(require,module,exports){
17976 // https://en.bitcoin.it/wiki/List_of_address_prefixes
17977 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
17981 magicPrefix: '\x18Bitcoin Signed Message:\n',
17983 public:
0x0488b21e,
17984 private:
0x0488ade4
17989 dustThreshold:
546, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/core.h#L151-L162
17990 feePerKb:
10000, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/main.cpp#L53
17991 estimateFee: estimateFee('bitcoin')
17994 magicPrefix: '\x18Bitcoin Signed Message:\n',
17996 public:
0x043587cf,
17997 private:
0x04358394
18002 dustThreshold:
546,
18004 estimateFee: estimateFee('testnet')
18007 magicPrefix: '\x19Litecoin Signed Message:\n',
18009 public:
0x019da462,
18010 private:
0x019d9cfe
18015 dustThreshold:
0, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L360-L365
18016 dustSoftThreshold:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.h#L53
18017 feePerKb:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L56
18018 estimateFee: estimateFee('litecoin')
18021 magicPrefix: '\x19Dogecoin Signed Message:\n',
18023 public:
0x02facafd,
18024 private:
0x02fac398
18029 dustThreshold:
0, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/core.h#L155-L160
18030 dustSoftThreshold:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.h#L62
18031 feePerKb:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.cpp#L58
18032 estimateFee: estimateFee('dogecoin')
18035 magicPrefix: '\x18Viacoin Signed Message:\n',
18037 public:
0x0488b21e,
18038 private:
0x0488ade4
18043 dustThreshold:
560,
18044 dustSoftThreshold:
100000,
18045 feePerKb:
100000, //
18046 estimateFee: estimateFee('viacoin')
18049 magicPrefix: '\x18Viacoin Signed Message:\n',
18051 public:
0x043587cf,
18052 private:
0x04358394
18057 dustThreshold:
560,
18058 dustSoftThreshold:
100000,
18060 estimateFee: estimateFee('viacointestnet')
18063 magicPrefix: '\x19Gamerscoin Signed Message:\n',
18065 public:
0x019da462,
18066 private:
0x019d9cfe
18071 dustThreshold:
0, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L358-L363
18072 dustSoftThreshold:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L51
18073 feePerKb:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L54
18074 estimateFee: estimateFee('gamerscoin')
18077 magicPrefix: '\x19Jumbucks Signed Message:\n',
18079 public:
0x037a689a,
18080 private:
0x037a6460
18086 dustSoftThreshold:
10000,
18088 estimateFee: estimateFee('jumbucks')
18091 magicPrefix: '\x18Zetacoin Signed Message:\n',
18093 public:
0x0488b21e,
18094 private:
0x0488ade4
18099 dustThreshold:
546, // https://github.com/zetacoin/zetacoin/blob/master/src/core.h#L159
18100 feePerKb:
10000, // https://github.com/zetacoin/zetacoin/blob/master/src/main.cpp#L54
18101 estimateFee: estimateFee('zetacoin')
18105 function estimateFee (type) {
18106 return function (tx) {
18107 var network = networks[type]
18108 var baseFee = network.feePerKb
18109 var byteSize = tx.toBuffer().length
18111 var fee = baseFee * Math.ceil(byteSize /
1000)
18112 if (network.dustSoftThreshold === undefined) return fee
18114 tx.outs.forEach(function (e) {
18115 if (e.value < network.dustSoftThreshold) {
18124 module.exports = networks
18126 },{}],
67:[function(require,module,exports){
18167 OP_TOALTSTACK:
107,
18168 OP_FROMALTSTACK:
108,
18200 OP_EQUALVERIFY:
136,
18225 OP_NUMEQUALVERIFY:
157,
18226 OP_NUMNOTEQUAL:
158,
18228 OP_GREATERTHAN:
160,
18229 OP_LESSTHANOREQUAL:
161,
18230 OP_GREATERTHANOREQUAL:
162,
18242 OP_CODESEPARATOR:
171,
18244 OP_CHECKSIGVERIFY:
173,
18245 OP_CHECKMULTISIG:
174,
18246 OP_CHECKMULTISIGVERIFY:
175,
18260 // template matching params
18261 OP_PUBKEYHASH:
253,
18263 OP_INVALIDOPCODE:
255
18266 },{}],
68:[function(require,module,exports){
18267 (function (Buffer){
18268 var assert = require('assert')
18269 var bufferutils = require('./bufferutils')
18270 var crypto = require('./crypto')
18271 var typeForce = require('typeforce')
18272 var opcodes = require('./opcodes')
18274 function Script (buffer, chunks) {
18275 typeForce('Buffer', buffer)
18276 typeForce('Array', chunks)
18278 this.buffer = buffer
18279 this.chunks = chunks
18282 Script.fromASM = function (asm) {
18283 var strChunks = asm.split(' ')
18284 var chunks = strChunks.map(function (strChunk) {
18286 if (strChunk in opcodes) {
18287 return opcodes[strChunk]
18291 return new Buffer(strChunk, 'hex')
18295 return Script.fromChunks(chunks)
18298 Script.fromBuffer = function (buffer) {
18302 while (i < buffer.length) {
18303 var opcode = buffer.readUInt8(i)
18306 if ((opcode
> opcodes.OP_0) && (opcode <= opcodes.OP_PUSHDATA4)) {
18307 var d = bufferutils.readPushDataInt(buffer, i)
18309 // did reading a pushDataInt fail? return non-chunked script
18310 if (d === null) return new Script(buffer, [])
18313 // attempt to read too much data?
18314 if (i + d.number
> buffer.length) return new Script(buffer, [])
18316 var data = buffer.slice(i, i + d.number)
18323 chunks.push(opcode)
18329 return new Script(buffer, chunks)
18332 Script.fromChunks = function (chunks) {
18333 typeForce('Array', chunks)
18335 var bufferSize = chunks.reduce(function (accum, chunk) {
18337 if (Buffer.isBuffer(chunk)) {
18338 return accum + bufferutils.pushDataSize(chunk.length) + chunk.length
18345 var buffer = new Buffer(bufferSize)
18348 chunks.forEach(function (chunk) {
18350 if (Buffer.isBuffer(chunk)) {
18351 offset += bufferutils.writePushDataInt(buffer, chunk.length, offset)
18353 chunk.copy(buffer, offset)
18354 offset += chunk.length
18358 buffer.writeUInt8(chunk, offset)
18363 assert.equal(offset, buffer.length, 'Could not decode chunks')
18364 return new Script(buffer, chunks)
18367 Script.fromHex = function (hex) {
18368 return Script.fromBuffer(new Buffer(hex, 'hex'))
18371 Script.EMPTY = Script.fromChunks([])
18373 Script.prototype.getHash = function () {
18374 return crypto.hash160(this.buffer)
18377 // FIXME: doesn't work for data chunks, maybe time to use buffertools.compare...
18378 Script.prototype.without = function (needle) {
18379 return Script.fromChunks(this.chunks.filter(function (op) {
18380 return op !== needle
18384 var reverseOps = []
18385 for (var op in opcodes) {
18386 var code = opcodes[op]
18387 reverseOps[code] = op
18390 Script.prototype.toASM = function () {
18391 return this.chunks.map(function (chunk) {
18393 if (Buffer.isBuffer(chunk)) {
18394 return chunk.toString('hex')
18398 return reverseOps[chunk]
18403 Script.prototype.toBuffer = function () {
18407 Script.prototype.toHex = function () {
18408 return this.toBuffer().toString('hex')
18411 module.exports = Script
18413 }).call(this,require("buffer").Buffer)
18414 },{"./bufferutils":
57,"./crypto":
58,"./opcodes":
67,"assert":
5,"buffer":
7,"typeforce":
53}],
69:[function(require,module,exports){
18415 (function (Buffer){
18416 var assert = require('assert')
18417 var ops = require('./opcodes')
18418 var typeForce = require('typeforce')
18420 var ecurve = require('ecurve')
18421 var curve = ecurve.getCurveByName('secp256k1')
18423 var ECSignature = require('./ecsignature')
18424 var Script = require('./script')
18426 function isCanonicalPubKey (buffer) {
18427 if (!Buffer.isBuffer(buffer)) return false
18430 ecurve.Point.decodeFrom(curve, buffer)
18432 if (!(e.message.match(/Invalid sequence (length|tag)/)))
18441 function isCanonicalSignature (buffer) {
18442 if (!Buffer.isBuffer(buffer)) return false
18445 ECSignature.parseScriptSignature(buffer)
18447 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/))) {
18457 function isPubKeyHashInput (script) {
18458 return script.chunks.length ===
2 &&
18459 isCanonicalSignature(script.chunks[
0]) &&
18460 isCanonicalPubKey(script.chunks[
1])
18463 function isPubKeyHashOutput (script) {
18464 return script.chunks.length ===
5 &&
18465 script.chunks[
0] === ops.OP_DUP &&
18466 script.chunks[
1] === ops.OP_HASH160 &&
18467 Buffer.isBuffer(script.chunks[
2]) &&
18468 script.chunks[
2].length ===
20 &&
18469 script.chunks[
3] === ops.OP_EQUALVERIFY &&
18470 script.chunks[
4] === ops.OP_CHECKSIG
18473 function isPubKeyInput (script) {
18474 return script.chunks.length ===
1 &&
18475 isCanonicalSignature(script.chunks[
0])
18478 function isPubKeyOutput (script) {
18479 return script.chunks.length ===
2 &&
18480 isCanonicalPubKey(script.chunks[
0]) &&
18481 script.chunks[
1] === ops.OP_CHECKSIG
18484 function isScriptHashInput (script, allowIncomplete) {
18485 if (script.chunks.length <
2) return false
18487 var lastChunk = script.chunks[script.chunks.length -
1]
18488 if (!Buffer.isBuffer(lastChunk)) return false
18490 var scriptSig = Script.fromChunks(script.chunks.slice(
0, -
1))
18491 var redeemScript = Script.fromBuffer(lastChunk)
18493 // is redeemScript a valid script?
18494 if (redeemScript.chunks.length ===
0) return false
18496 return classifyInput(scriptSig, allowIncomplete) === classifyOutput(redeemScript)
18499 function isScriptHashOutput (script) {
18500 return script.chunks.length ===
3 &&
18501 script.chunks[
0] === ops.OP_HASH160 &&
18502 Buffer.isBuffer(script.chunks[
1]) &&
18503 script.chunks[
1].length ===
20 &&
18504 script.chunks[
2] === ops.OP_EQUAL
18507 // allowIncomplete is to account for combining signatures
18508 // See https://github.com/bitcoin/bitcoin/blob/f425050546644a36b0b8e0eb2f6934a3e0f6f80f/src/script/sign.cpp#L195-L197
18509 function isMultisigInput (script, allowIncomplete) {
18510 if (script.chunks.length <
2) return false
18511 if (script.chunks[
0] !== ops.OP_0) return false
18513 if (allowIncomplete) {
18514 return script.chunks.slice(
1).every(function (chunk) {
18515 return chunk === ops.OP_0 || isCanonicalSignature(chunk)
18519 return script.chunks.slice(
1).every(isCanonicalSignature)
18522 function isMultisigOutput (script) {
18523 if (script.chunks.length <
4) return false
18524 if (script.chunks[script.chunks.length -
1] !== ops.OP_CHECKMULTISIG) return false
18526 var mOp = script.chunks[
0]
18527 if (mOp === ops.OP_0) return false
18528 if (mOp < ops.OP_1) return false
18529 if (mOp
> ops.OP_16) return false
18531 var nOp = script.chunks[script.chunks.length -
2]
18532 if (nOp === ops.OP_0) return false
18533 if (nOp < ops.OP_1) return false
18534 if (nOp
> ops.OP_16) return false
18536 var m = mOp - (ops.OP_1 -
1)
18537 var n = nOp - (ops.OP_1 -
1)
18538 if (n < m) return false
18540 var pubKeys = script.chunks.slice(
1, -
2)
18541 if (n < pubKeys.length) return false
18543 return pubKeys.every(isCanonicalPubKey)
18546 function isNullDataOutput (script) {
18547 return script.chunks[
0] === ops.OP_RETURN
18550 function classifyOutput (script) {
18551 typeForce('Script', script)
18553 if (isPubKeyHashOutput(script)) {
18554 return 'pubkeyhash'
18555 } else if (isScriptHashOutput(script)) {
18556 return 'scripthash'
18557 } else if (isMultisigOutput(script)) {
18559 } else if (isPubKeyOutput(script)) {
18561 } else if (isNullDataOutput(script)) {
18565 return 'nonstandard'
18568 function classifyInput (script, allowIncomplete) {
18569 typeForce('Script', script)
18571 if (isPubKeyHashInput(script)) {
18572 return 'pubkeyhash'
18573 } else if (isMultisigInput(script, allowIncomplete)) {
18575 } else if (isScriptHashInput(script, allowIncomplete)) {
18576 return 'scripthash'
18577 } else if (isPubKeyInput(script)) {
18581 return 'nonstandard'
18584 // Standard Script Templates
18585 // {pubKey} OP_CHECKSIG
18586 function pubKeyOutput (pubKey) {
18587 return Script.fromChunks([
18593 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
18594 function pubKeyHashOutput (hash) {
18595 typeForce('Buffer', hash)
18597 return Script.fromChunks([
18601 ops.OP_EQUALVERIFY,
18606 // OP_HASH160 {scriptHash} OP_EQUAL
18607 function scriptHashOutput (hash) {
18608 typeForce('Buffer', hash)
18610 return Script.fromChunks([
18617 // m [pubKeys ...] n OP_CHECKMULTISIG
18618 function multisigOutput (m, pubKeys) {
18619 typeForce(['ECPubKey'], pubKeys)
18621 assert(pubKeys.length
>= m, 'Not enough pubKeys provided')
18623 var pubKeyBuffers = pubKeys.map(function (pubKey) {
18624 return pubKey.toBuffer()
18626 var n = pubKeys.length
18628 return Script.fromChunks([].concat(
18629 (ops.OP_1 -
1) + m,
18631 (ops.OP_1 -
1) + n,
18632 ops.OP_CHECKMULTISIG
18637 function pubKeyInput (signature) {
18638 typeForce('Buffer', signature)
18640 return Script.fromChunks([signature])
18643 // {signature} {pubKey}
18644 function pubKeyHashInput (signature, pubKey) {
18645 typeForce('Buffer', signature)
18647 return Script.fromChunks([signature, pubKey.toBuffer()])
18650 //
<scriptSig> {serialized scriptPubKey script}
18651 function scriptHashInput (scriptSig, scriptPubKey) {
18652 return Script.fromChunks([].concat(
18654 scriptPubKey.toBuffer()
18658 // OP_0 [signatures ...]
18659 function multisigInput (signatures, scriptPubKey) {
18660 if (scriptPubKey) {
18661 assert(isMultisigOutput(scriptPubKey))
18663 var mOp = scriptPubKey.chunks[
0]
18664 var nOp = scriptPubKey.chunks[scriptPubKey.chunks.length -
2]
18665 var m = mOp - (ops.OP_1 -
1)
18666 var n = nOp - (ops.OP_1 -
1)
18668 assert(signatures.length
>= m, 'Not enough signatures provided')
18669 assert(signatures.length <= n, 'Too many signatures provided')
18672 return Script.fromChunks([].concat(ops.OP_0, signatures))
18675 function nullDataOutput (data) {
18676 return Script.fromChunks([ops.OP_RETURN, data])
18680 isCanonicalPubKey: isCanonicalPubKey,
18681 isCanonicalSignature: isCanonicalSignature,
18682 isPubKeyHashInput: isPubKeyHashInput,
18683 isPubKeyHashOutput: isPubKeyHashOutput,
18684 isPubKeyInput: isPubKeyInput,
18685 isPubKeyOutput: isPubKeyOutput,
18686 isScriptHashInput: isScriptHashInput,
18687 isScriptHashOutput: isScriptHashOutput,
18688 isMultisigInput: isMultisigInput,
18689 isMultisigOutput: isMultisigOutput,
18690 isNullDataOutput: isNullDataOutput,
18691 classifyOutput: classifyOutput,
18692 classifyInput: classifyInput,
18693 pubKeyOutput: pubKeyOutput,
18694 pubKeyHashOutput: pubKeyHashOutput,
18695 scriptHashOutput: scriptHashOutput,
18696 multisigOutput: multisigOutput,
18697 pubKeyInput: pubKeyInput,
18698 pubKeyHashInput: pubKeyHashInput,
18699 scriptHashInput: scriptHashInput,
18700 multisigInput: multisigInput,
18701 dataOutput: function (data) {
18702 console.warn('dataOutput is deprecated, use nullDataOutput by
2.0.0')
18703 return nullDataOutput(data)
18705 nullDataOutput: nullDataOutput
18708 }).call(this,require("buffer").Buffer)
18709 },{"./ecsignature":
62,"./opcodes":
67,"./script":
68,"assert":
5,"buffer":
7,"ecurve":
49,"typeforce":
53}],
70:[function(require,module,exports){
18710 (function (Buffer){
18711 var assert = require('assert')
18712 var bufferutils = require('./bufferutils')
18713 var crypto = require('./crypto')
18714 var typeForce = require('typeforce')
18715 var opcodes = require('./opcodes')
18716 var scripts = require('./scripts')
18718 var Address = require('./address')
18719 var ECSignature = require('./ecsignature')
18720 var Script = require('./script')
18722 function Transaction () {
18729 Transaction.DEFAULT_SEQUENCE =
0xffffffff
18730 Transaction.SIGHASH_ALL =
0x01
18731 Transaction.SIGHASH_NONE =
0x02
18732 Transaction.SIGHASH_SINGLE =
0x03
18733 Transaction.SIGHASH_ANYONECANPAY =
0x80
18735 Transaction.fromBuffer = function (buffer, __disableAssert) {
18737 function readSlice (n) {
18739 return buffer.slice(offset - n, offset)
18742 function readUInt32 () {
18743 var i = buffer.readUInt32LE(offset)
18748 function readUInt64 () {
18749 var i = bufferutils.readUInt64LE(buffer, offset)
18754 function readVarInt () {
18755 var vi = bufferutils.readVarInt(buffer, offset)
18760 function readScript () {
18761 return Script.fromBuffer(readSlice(readVarInt()))
18764 function readGenerationScript () {
18765 return new Script(readSlice(readVarInt()), [])
18768 var tx = new Transaction()
18769 tx.version = readUInt32()
18771 var vinLen = readVarInt()
18772 for (var i =
0; i < vinLen; ++i) {
18773 var hash = readSlice(
32)
18775 if (Transaction.isCoinbaseHash(hash)) {
18778 index: readUInt32(),
18779 script: readGenerationScript(),
18780 sequence: readUInt32()
18785 index: readUInt32(),
18786 script: readScript(),
18787 sequence: readUInt32()
18792 var voutLen = readVarInt()
18793 for (i =
0; i < voutLen; ++i) {
18795 value: readUInt64(),
18796 script: readScript()
18800 tx.locktime = readUInt32()
18802 if (!__disableAssert) {
18803 assert.equal(offset, buffer.length, 'Transaction has unexpected data')
18809 Transaction.fromHex = function (hex) {
18810 return Transaction.fromBuffer(new Buffer(hex, 'hex'))
18813 Transaction.isCoinbaseHash = function (buffer) {
18814 return Array.prototype.every.call(buffer, function (x) {
18820 * Create a new txIn.
18822 * Can be called with any of:
18824 * - A transaction and an index
18825 * - A transaction hash and an index
18827 * Note that this method does not sign the created input.
18829 Transaction.prototype.addInput = function (hash, index, sequence, script) {
18830 if (sequence === undefined || sequence === null) {
18831 sequence = Transaction.DEFAULT_SEQUENCE
18834 script = script || Script.EMPTY
18836 if (typeof hash === 'string') {
18837 // TxId hex is big-endian, we need little-endian
18838 hash = bufferutils.reverse(new Buffer(hash, 'hex'))
18839 } else if (hash instanceof Transaction) {
18840 hash = hash.getHash()
18843 typeForce('Buffer', hash)
18844 typeForce('Number', index)
18845 typeForce('Number', sequence)
18846 typeForce('Script', script)
18848 assert.equal(hash.length,
32, 'Expected hash length of
32, got ' + hash.length)
18850 // Add the input and return the input's index
18851 return (this.ins.push({
18860 * Create a new txOut.
18862 * Can be called with:
18864 * - A base58 address string and a value
18865 * - An Address object and a value
18866 * - A scriptPubKey Script and a value
18868 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18869 // Attempt to get a valid address if it's a base58 address string
18870 if (typeof scriptPubKey === 'string') {
18871 scriptPubKey = Address.fromBase58Check(scriptPubKey)
18874 // Attempt to get a valid script if it's an Address object
18875 if (scriptPubKey instanceof Address) {
18876 scriptPubKey = scriptPubKey.toOutputScript()
18879 typeForce('Script', scriptPubKey)
18880 typeForce('Number', value)
18882 // Add the output and return the output's index
18883 return (this.outs.push({
18884 script: scriptPubKey,
18889 Transaction.prototype.clone = function () {
18890 var newTx = new Transaction()
18891 newTx.version = this.version
18892 newTx.locktime = this.locktime
18894 newTx.ins = this.ins.map(function (txIn) {
18898 script: txIn.script,
18899 sequence: txIn.sequence
18903 newTx.outs = this.outs.map(function (txOut) {
18905 script: txOut.script,
18914 * Hash transaction for signing a specific input.
18916 * Bitcoin uses a different hash for each signed transaction input. This
18917 * method copies the transaction, makes the necessary changes based on the
18918 * hashType, serializes and finally hashes the result. This hash can then be
18919 * used to sign the transaction input in question.
18921 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18922 // FIXME: remove in
2.x.y
18923 if (arguments[
0] instanceof Script) {
18924 console.warn('hashForSignature(prevOutScript, inIndex, ...) has been deprecated. Use hashForSignature(inIndex, prevOutScript, ...)')
18926 // swap the arguments (must be stored in tmp, arguments is special)
18927 var tmp = arguments[
0]
18928 inIndex = arguments[
1]
18929 prevOutScript = tmp
18932 typeForce('Number', inIndex)
18933 typeForce('Script', prevOutScript)
18934 typeForce('Number', hashType)
18936 assert(inIndex
>=
0, 'Invalid vin index')
18937 assert(inIndex < this.ins.length, 'Invalid vin index')
18939 var txTmp = this.clone()
18940 var hashScript = prevOutScript.without(opcodes.OP_CODESEPARATOR)
18942 // Blank out other inputs' signatures
18943 txTmp.ins.forEach(function (txIn) {
18944 txIn.script = Script.EMPTY
18946 txTmp.ins[inIndex].script = hashScript
18948 var hashTypeModifier = hashType &
0x1f
18950 if (hashTypeModifier === Transaction.SIGHASH_NONE) {
18951 assert(false, 'SIGHASH_NONE not yet supported')
18952 } else if (hashTypeModifier === Transaction.SIGHASH_SINGLE) {
18953 assert(false, 'SIGHASH_SINGLE not yet supported')
18956 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18957 assert(false, 'SIGHASH_ANYONECANPAY not yet supported')
18960 var hashTypeBuffer = new Buffer(
4)
18961 hashTypeBuffer.writeInt32LE(hashType,
0)
18963 var buffer = Buffer.concat([txTmp.toBuffer(), hashTypeBuffer])
18964 return crypto.hash256(buffer)
18967 Transaction.prototype.getHash = function () {
18968 return crypto.hash256(this.toBuffer())
18971 Transaction.prototype.getId = function () {
18972 // TxHash is little-endian, we need big-endian
18973 return bufferutils.reverse(this.getHash()).toString('hex')
18976 Transaction.prototype.toBuffer = function () {
18977 function scriptSize (script) {
18978 var length = script.buffer.length
18980 return bufferutils.varIntSize(length) + length
18983 var buffer = new Buffer(
18985 bufferutils.varIntSize(this.ins.length) +
18986 bufferutils.varIntSize(this.outs.length) +
18987 this.ins.reduce(function (sum, input) { return sum +
40 + scriptSize(input.script) },
0) +
18988 this.outs.reduce(function (sum, output) { return sum +
8 + scriptSize(output.script) },
0)
18992 function writeSlice (slice) {
18993 slice.copy(buffer, offset)
18994 offset += slice.length
18997 function writeUInt32 (i) {
18998 buffer.writeUInt32LE(i, offset)
19002 function writeUInt64 (i) {
19003 bufferutils.writeUInt64LE(buffer, i, offset)
19007 function writeVarInt (i) {
19008 var n = bufferutils.writeVarInt(buffer, i, offset)
19012 writeUInt32(this.version)
19013 writeVarInt(this.ins.length)
19015 this.ins.forEach(function (txIn) {
19016 writeSlice(txIn.hash)
19017 writeUInt32(txIn.index)
19018 writeVarInt(txIn.script.buffer.length)
19019 writeSlice(txIn.script.buffer)
19020 writeUInt32(txIn.sequence)
19023 writeVarInt(this.outs.length)
19024 this.outs.forEach(function (txOut) {
19025 writeUInt64(txOut.value)
19026 writeVarInt(txOut.script.buffer.length)
19027 writeSlice(txOut.script.buffer)
19030 writeUInt32(this.locktime)
19035 Transaction.prototype.toHex = function () {
19036 return this.toBuffer().toString('hex')
19039 Transaction.prototype.setInputScript = function (index, script) {
19040 typeForce('Number', index)
19041 typeForce('Script', script)
19043 this.ins[index].script = script
19046 // FIXME: remove in
2.x.y
19047 Transaction.prototype.sign = function (index, privKey, hashType) {
19048 console.warn('Transaction.prototype.sign is deprecated. Use TransactionBuilder instead.')
19050 var prevOutScript = privKey.pub.getAddress().toOutputScript()
19051 var signature = this.signInput(index, prevOutScript, privKey, hashType)
19053 var scriptSig = scripts.pubKeyHashInput(signature, privKey.pub)
19054 this.setInputScript(index, scriptSig)
19057 // FIXME: remove in
2.x.y
19058 Transaction.prototype.signInput = function (index, prevOutScript, privKey, hashType) {
19059 console.warn('Transaction.prototype.signInput is deprecated. Use TransactionBuilder instead.')
19061 hashType = hashType || Transaction.SIGHASH_ALL
19063 var hash = this.hashForSignature(index, prevOutScript, hashType)
19064 var signature = privKey.sign(hash)
19066 return signature.toScriptSignature(hashType)
19069 // FIXME: remove in
2.x.y
19070 Transaction.prototype.validateInput = function (index, prevOutScript, pubKey, buffer) {
19071 console.warn('Transaction.prototype.validateInput is deprecated. Use TransactionBuilder instead.')
19073 var parsed = ECSignature.parseScriptSignature(buffer)
19074 var hash = this.hashForSignature(index, prevOutScript, parsed.hashType)
19076 return pubKey.verify(hash, parsed.signature)
19079 module.exports = Transaction
19081 }).call(this,require("buffer").Buffer)
19082 },{"./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){
19083 (function (Buffer){
19084 var assert = require('assert')
19085 var ops = require('./opcodes')
19086 var scripts = require('./scripts')
19088 var ECPubKey = require('./ecpubkey')
19089 var ECSignature = require('./ecsignature')
19090 var Script = require('./script')
19091 var Transaction = require('./transaction')
19093 function extractInput (txIn) {
19095 var scriptSig = txIn.script
19097 var prevOutType = scripts.classifyInput(scriptSig, true)
19100 // Re-classify if scriptHash
19101 if (prevOutType === 'scripthash') {
19102 redeemScript = Script.fromBuffer(scriptSig.chunks.slice(-
1)[
0])
19103 prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
19105 scriptSig = Script.fromChunks(scriptSig.chunks.slice(
0, -
1))
19106 scriptType = scripts.classifyInput(scriptSig, true)
19108 scriptType = prevOutType
19111 // Extract hashType, pubKeys and signatures
19112 var hashType, parsed, pubKeys, signatures
19114 switch (scriptType) {
19115 case 'pubkeyhash': {
19116 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
19117 hashType = parsed.hashType
19118 pubKeys = [ECPubKey.fromBuffer(scriptSig.chunks[
1])]
19119 signatures = [parsed.signature]
19120 prevOutScript = pubKeys[
0].getAddress().toOutputScript()
19126 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
19127 hashType = parsed.hashType
19128 signatures = [parsed.signature]
19130 if (redeemScript) {
19131 pubKeys = [ECPubKey.fromBuffer(redeemScript.chunks[
0])]
19138 signatures = scriptSig.chunks.slice(
1).map(function (chunk) {
19139 if (chunk === ops.OP_0) return chunk
19141 var parsed = ECSignature.parseScriptSignature(chunk)
19142 hashType = parsed.hashType
19144 return parsed.signature
19147 if (redeemScript) {
19148 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19156 hashType: hashType,
19157 prevOutScript: prevOutScript,
19158 prevOutType: prevOutType,
19160 redeemScript: redeemScript,
19161 scriptType: scriptType,
19162 signatures: signatures
19166 function TransactionBuilder () {
19167 this.prevTxMap = {}
19168 this.prevOutScripts = {}
19169 this.prevOutTypes = {}
19172 this.tx = new Transaction()
19175 TransactionBuilder.fromTransaction = function (transaction) {
19176 var txb = new TransactionBuilder()
19178 // Copy other transaction fields
19179 txb.tx.version = transaction.version
19180 txb.tx.locktime = transaction.locktime
19182 // Extract/add inputs
19183 transaction.ins.forEach(function (txIn) {
19184 txb.addInput(txIn.hash, txIn.index, txIn.sequence)
19187 // Extract/add outputs
19188 transaction.outs.forEach(function (txOut) {
19189 txb.addOutput(txOut.script, txOut.value)
19192 // Extract/add signatures
19193 txb.inputs = transaction.ins.map(function (txIn) {
19194 // TODO: remove me after testcase added
19195 assert(!Transaction.isCoinbaseHash(txIn.hash), 'coinbase inputs not supported')
19197 // Ignore empty scripts
19198 if (txIn.script.buffer.length ===
0) return {}
19200 return extractInput(txIn)
19206 TransactionBuilder.prototype.addInput = function (prevTx, index, sequence, prevOutScript) {
19210 if (typeof prevTx === 'string') {
19211 prevOutHash = new Buffer(prevTx, 'hex')
19213 // TxId hex is big-endian, we want little-endian hash
19214 Array.prototype.reverse.call(prevOutHash)
19217 } else if (prevTx instanceof Transaction) {
19218 prevOutHash = prevTx.getHash()
19219 prevOutScript = prevTx.outs[index].script
19223 prevOutHash = prevTx
19227 if (prevOutScript) {
19228 var prevOutType = scripts.classifyOutput(prevOutScript)
19230 // if we can, extract pubKey information
19231 switch (prevOutType) {
19233 input.pubKeys = prevOutScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19238 input.pubKeys = prevOutScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
19243 if (prevOutType !== 'scripthash') {
19244 input.scriptType = prevOutType
19247 input.prevOutScript = prevOutScript
19248 input.prevOutType = prevOutType
19251 assert(this.inputs.every(function (input2) {
19252 if (input2.hashType === undefined) return true
19254 return input2.hashType & Transaction.SIGHASH_ANYONECANPAY
19255 }), 'No, this would invalidate signatures')
19257 var prevOut = prevOutHash.toString('hex') + ':' + index
19258 assert(!(prevOut in this.prevTxMap), 'Transaction is already an input')
19260 var vin = this.tx.addInput(prevOutHash, index, sequence)
19261 this.inputs[vin] = input
19262 this.prevTxMap[prevOut] = vin
19267 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19268 assert(this.inputs.every(function (input) {
19269 if (input.hashType === undefined) return true
19271 return (input.hashType &
0x1f) === Transaction.SIGHASH_SINGLE
19272 }), 'No, this would invalidate signatures')
19274 return this.tx.addOutput(scriptPubKey, value)
19277 TransactionBuilder.prototype.build = function () {
19278 return this.__build(false)
19280 TransactionBuilder.prototype.buildIncomplete = function () {
19281 return this.__build(true)
19284 var canSignTypes = {
19285 'pubkeyhash': true,
19290 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19291 if (!allowIncomplete) {
19292 assert(this.tx.ins.length
> 0, 'Transaction has no inputs')
19293 assert(this.tx.outs.length
> 0, 'Transaction has no outputs')
19296 var tx = this.tx.clone()
19298 // Create script signatures from signature meta-data
19299 this.inputs.forEach(function (input, index) {
19300 var scriptType = input.scriptType
19303 if (!allowIncomplete) {
19304 assert(!!scriptType, 'Transaction is not complete')
19305 assert(scriptType in canSignTypes, scriptType + ' not supported')
19306 assert(input.signatures, 'Transaction is missing signatures')
19309 if (input.signatures) {
19310 switch (scriptType) {
19311 case 'pubkeyhash': {
19312 var pkhSignature = input.signatures[
0].toScriptSignature(input.hashType)
19313 scriptSig = scripts.pubKeyHashInput(pkhSignature, input.pubKeys[
0])
19318 // Array.prototype.map is sparse-compatible
19319 var msSignatures = input.signatures.map(function (signature) {
19320 return signature && signature.toScriptSignature(input.hashType)
19323 // fill in blanks with OP_0
19324 if (allowIncomplete) {
19325 for (var i =
0; i < msSignatures.length; ++i) {
19326 if (msSignatures[i]) continue
19328 msSignatures[i] = ops.OP_0
19331 // Array.prototype.filter returns non-sparse array
19332 msSignatures = msSignatures.filter(function (x) { return x })
19335 var redeemScript = allowIncomplete ? undefined : input.redeemScript
19336 scriptSig = scripts.multisigInput(msSignatures, redeemScript)
19341 var pkSignature = input.signatures[
0].toScriptSignature(input.hashType)
19342 scriptSig = scripts.pubKeyInput(pkSignature)
19348 // did we build a scriptSig?
19350 // wrap as scriptHash if necessary
19351 if (input.prevOutType === 'scripthash') {
19352 scriptSig = scripts.scriptHashInput(scriptSig, input.redeemScript)
19355 tx.setInputScript(index, scriptSig)
19362 TransactionBuilder.prototype.sign = function (index, privKey, redeemScript, hashType) {
19363 assert(index in this.inputs, 'No input at index: ' + index)
19364 hashType = hashType || Transaction.SIGHASH_ALL
19366 var input = this.inputs[index]
19367 var canSign = input.hashType &&
19368 input.prevOutScript &&
19369 input.prevOutType &&
19371 input.scriptType &&
19374 // are we almost ready to sign?
19376 // if redeemScript was provided, enforce consistency
19377 if (redeemScript) {
19378 assert.deepEqual(input.redeemScript, redeemScript, 'Inconsistent redeemScript')
19381 assert.equal(input.hashType, hashType, 'Inconsistent hashType')
19385 // must be pay-to-scriptHash?
19386 if (redeemScript) {
19387 // if we have a prevOutScript, enforce scriptHash equality to the redeemScript
19388 if (input.prevOutScript) {
19389 assert.equal(input.prevOutType, 'scripthash', 'PrevOutScript must be P2SH')
19391 var scriptHash = input.prevOutScript.chunks[
1]
19392 assert.deepEqual(scriptHash, redeemScript.getHash(), 'RedeemScript does not match ' + scriptHash.toString('hex'))
19395 var scriptType = scripts.classifyOutput(redeemScript)
19396 assert(scriptType in canSignTypes, 'RedeemScript not supported (' + scriptType + ')')
19399 switch (scriptType) {
19401 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19405 case 'pubkeyhash': {
19406 var pkh1 = redeemScript.chunks[
2]
19407 var pkh2 = privKey.pub.getAddress().hash
19409 assert.deepEqual(pkh1, pkh2, 'privateKey cannot sign for this input')
19410 pubKeys = [privKey.pub]
19415 pubKeys = redeemScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
19420 if (!input.prevOutScript) {
19421 input.prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
19422 input.prevOutType = 'scripthash'
19425 input.pubKeys = pubKeys
19426 input.redeemScript = redeemScript
19427 input.scriptType = scriptType
19429 // cannot be pay-to-scriptHash
19431 assert.notEqual(input.prevOutType, 'scripthash', 'PrevOutScript is P2SH, missing redeemScript')
19433 // can we otherwise sign this?
19434 if (input.scriptType) {
19435 assert(input.pubKeys, input.scriptType + ' not supported')
19437 // we know nothin' Jon Snow, assume pubKeyHash
19439 input.prevOutScript = privKey.pub.getAddress().toOutputScript()
19440 input.prevOutType = 'pubkeyhash'
19441 input.pubKeys = [privKey.pub]
19442 input.scriptType = input.prevOutType
19446 input.hashType = hashType
19447 input.signatures = input.signatures || []
19450 var signatureScript = input.redeemScript || input.prevOutScript
19451 var signatureHash = this.tx.hashForSignature(index, signatureScript, hashType)
19453 // enforce signature order matches public keys
19454 if (input.scriptType === 'multisig' && input.redeemScript && input.signatures.length !== input.pubKeys.length) {
19455 // maintain a local copy of unmatched signatures
19456 var unmatched = input.signatures.slice()
19458 input.signatures = input.pubKeys.map(function (pubKey) {
19461 // check for any matching signatures
19462 unmatched.some(function (signature, i) {
19463 if (!pubKey.verify(signatureHash, signature)) return false
19466 // remove matched signature from unmatched
19467 unmatched.splice(i,
1)
19472 return match || undefined
19476 // enforce in order signing of public keys
19477 assert(input.pubKeys.some(function (pubKey, i) {
19478 if (!privKey.pub.Q.equals(pubKey.Q)) return false
19480 assert(!input.signatures[i], 'Signature already exists')
19481 var signature = privKey.sign(signatureHash)
19482 input.signatures[i] = signature
19485 }, this), 'privateKey cannot sign for this input')
19488 module.exports = TransactionBuilder
19490 }).call(this,require(
"buffer").Buffer)
19491 },{
"./ecpubkey":
61,
"./ecsignature":
62,
"./opcodes":
67,
"./script":
68,
"./scripts":
69,
"./transaction":
70,
"assert":
5,
"buffer":
7}],
72:[function(require,module,exports){
19492 (function (Buffer){
19493 var assert = require('assert')
19494 var bufferutils = require('./bufferutils')
19495 var typeForce = require('typeforce')
19496 var networks = require('./networks')
19497 var randomBytes = require('randombytes')
19499 var Address = require('./address')
19500 var HDNode = require('./hdnode')
19501 var TransactionBuilder = require('./transaction_builder')
19502 var Script = require('./script')
19504 function Wallet (seed, network) {
19505 console.warn('Wallet is deprecated and will be removed in
2.0.0, see #
296')
19507 seed = seed || randomBytes(
32)
19508 network = network || networks.bitcoin
19510 // Stored in a closure to make accidental serialization less likely
19511 var masterKey = HDNode.fromSeedBuffer(seed, network)
19513 // HD first-level child derivation method should be hardened
19514 // See https://bitcointalk.org/index.php?topic=
405179.msg4415254#msg4415254
19515 var accountZero = masterKey.deriveHardened(
0)
19516 var externalAccount = accountZero.derive(
0)
19517 var internalAccount = accountZero.derive(
1)
19519 this.addresses = []
19520 this.changeAddresses = []
19521 this.network = network
19524 // FIXME: remove in
2.0.0
19525 this.unspentMap = {}
19527 // FIXME: remove in
2.0.0
19529 this.newMasterKey = function (seed) {
19530 console.warn('newMasterKey is deprecated, please make a new Wallet instance instead')
19532 seed = seed || randomBytes(
32)
19533 masterKey = HDNode.fromSeedBuffer(seed, network)
19535 accountZero = masterKey.deriveHardened(
0)
19536 externalAccount = accountZero.derive(
0)
19537 internalAccount = accountZero.derive(
1)
19540 me.changeAddresses = []
19546 this.getMasterKey = function () {
19549 this.getAccountZero = function () {
19552 this.getExternalAccount = function () {
19553 return externalAccount
19555 this.getInternalAccount = function () {
19556 return internalAccount
19560 Wallet.prototype.createTransaction = function (to, value, options) {
19561 // FIXME: remove in
2.0.0
19562 if (typeof options !== 'object') {
19563 if (options !== undefined) {
19564 console.warn('Non options object parameters are deprecated, use options object instead')
19567 fixedFee: arguments[
2],
19568 changeAddress: arguments[
3]
19573 options = options || {}
19575 assert(value
> this.network.dustThreshold, value + ' must be above dust threshold (' + this.network.dustThreshold + ' Satoshis)')
19577 var changeAddress = options.changeAddress
19578 var fixedFee = options.fixedFee
19579 var minConf = options.minConf === undefined ?
0 : options.minConf // FIXME: change minConf:
1 by default in
2.0.0
19581 // filter by minConf, then pending and sort by descending value
19582 var unspents = this.unspents.filter(function (unspent) {
19583 return unspent.confirmations
>= minConf
19584 }).filter(function (unspent) {
19585 return !unspent.pending
19586 }).sort(function (o1, o2) {
19587 return o2.value - o1.value
19592 var subTotal = value
19594 var txb = new TransactionBuilder()
19595 txb.addOutput(to, value)
19597 for (var i =
0; i < unspents.length; ++i) {
19598 var unspent = unspents[i]
19599 addresses.push(unspent.address)
19601 txb.addInput(unspent.txHash, unspent.index)
19603 var fee = fixedFee === undefined ? estimatePaddedFee(txb.buildIncomplete(), this.network) : fixedFee
19605 accum += unspent.value
19606 subTotal = value + fee
19608 if (accum
>= subTotal) {
19609 var change = accum - subTotal
19611 if (change
> this.network.dustThreshold) {
19612 txb.addOutput(changeAddress || this.getChangeAddress(), change)
19619 assert(accum
>= subTotal, 'Not enough funds (incl. fee): ' + accum + ' < ' + subTotal)
19621 return this.signWith(txb, addresses).build()
19624 // FIXME: remove in
2.0.0
19625 Wallet.prototype.processPendingTx = function (tx) {
19626 this.__processTx(tx, true)
19629 // FIXME: remove in
2.0.0
19630 Wallet.prototype.processConfirmedTx = function (tx) {
19631 this.__processTx(tx, false)
19634 // FIXME: remove in
2.0.0
19635 Wallet.prototype.__processTx = function (tx, isPending) {
19636 console.warn('processTransaction is considered harmful, see issue #
260 for more information')
19638 var txId = tx.getId()
19639 var txHash = tx.getHash()
19641 tx.outs.forEach(function (txOut, i) {
19645 address = Address.fromOutputScript(txOut.script, this.network).toString()
19647 if (!(e.message.match(/has no matching Address/)))
19651 var myAddresses = this.addresses.concat(this.changeAddresses)
19652 if (myAddresses.indexOf(address)
> -
1) {
19653 var lookup = txId + ':' + i
19654 if (lookup in this.unspentMap) return
19656 // its unique, add it
19659 confirmations:
0, // no way to determine this without more information
19663 value: txOut.value,
19667 this.unspentMap[lookup] = unspent
19668 this.unspents.push(unspent)
19672 tx.ins.forEach(function (txIn) {
19673 // copy and convert to big-endian hex
19674 var txInId = bufferutils.reverse(txIn.hash).toString('hex')
19676 var lookup = txInId + ':' + txIn.index
19677 if (!(lookup in this.unspentMap)) return
19679 var unspent = this.unspentMap[lookup]
19682 unspent.pending = true
19683 unspent.spent = true
19685 delete this.unspentMap[lookup]
19687 this.unspents = this.unspents.filter(function (unspent2) {
19688 return unspent !== unspent2
19694 Wallet.prototype.generateAddress = function () {
19695 var k = this.addresses.length
19696 var address = this.getExternalAccount().derive(k).getAddress()
19698 this.addresses.push(address.toString())
19700 return this.getReceiveAddress()
19703 Wallet.prototype.generateChangeAddress = function () {
19704 var k = this.changeAddresses.length
19705 var address = this.getInternalAccount().derive(k).getAddress()
19707 this.changeAddresses.push(address.toString())
19709 return this.getChangeAddress()
19712 Wallet.prototype.getAddress = function () {
19713 if (this.addresses.length ===
0) {
19714 this.generateAddress()
19717 return this.addresses[this.addresses.length -
1]
19720 Wallet.prototype.getBalance = function (minConf) {
19721 minConf = minConf ||
0
19723 return this.unspents.filter(function (unspent) {
19724 return unspent.confirmations
>= minConf
19726 // FIXME: remove spent filter in
2.0.0
19727 }).filter(function (unspent) {
19728 return !unspent.spent
19729 }).reduce(function (accum, unspent) {
19730 return accum + unspent.value
19734 Wallet.prototype.getChangeAddress = function () {
19735 if (this.changeAddresses.length ===
0) {
19736 this.generateChangeAddress()
19739 return this.changeAddresses[this.changeAddresses.length -
1]
19742 Wallet.prototype.getInternalPrivateKey = function (index) {
19743 return this.getInternalAccount().derive(index).privKey
19746 Wallet.prototype.getPrivateKey = function (index) {
19747 return this.getExternalAccount().derive(index).privKey
19750 Wallet.prototype.getPrivateKeyForAddress = function (address) {
19753 if ((index = this.addresses.indexOf(address))
> -
1) {
19754 return this.getPrivateKey(index)
19757 if ((index = this.changeAddresses.indexOf(address))
> -
1) {
19758 return this.getInternalPrivateKey(index)
19761 assert(false, 'Unknown address. Make sure the address is from the keychain and has been generated')
19764 Wallet.prototype.getUnspentOutputs = function (minConf) {
19765 minConf = minConf ||
0
19767 return this.unspents.filter(function (unspent) {
19768 return unspent.confirmations
>= minConf
19770 // FIXME: remove spent filter in
2.0.0
19771 }).filter(function (unspent) {
19772 return !unspent.spent
19773 }).map(function (unspent) {
19775 address: unspent.address,
19776 confirmations: unspent.confirmations,
19777 index: unspent.index,
19778 txId: unspent.txId,
19779 value: unspent.value,
19781 // FIXME: remove in
2.0.0
19782 hash: unspent.txId,
19783 pending: unspent.pending
19788 Wallet.prototype.setUnspentOutputs = function (unspents) {
19789 this.unspentMap = {}
19790 this.unspents = unspents.map(function (unspent) {
19791 // FIXME: remove unspent.hash in
2.0.0
19792 var txId = unspent.txId || unspent.hash
19793 var index = unspent.index
19795 // FIXME: remove in
2.0.0
19796 if (unspent.hash !== undefined) {
19797 console.warn('unspent.hash is deprecated, use unspent.txId instead')
19800 // FIXME: remove in
2.0.0
19801 if (index === undefined) {
19802 console.warn('unspent.outputIndex is deprecated, use unspent.index instead')
19803 index = unspent.outputIndex
19806 typeForce('String', txId)
19807 typeForce('Number', index)
19808 typeForce('Number', unspent.value)
19810 assert.equal(txId.length,
64, 'Expected valid txId, got ' + txId)
19811 assert.doesNotThrow(function () {
19812 Address.fromBase58Check(unspent.address)
19813 }, 'Expected Base58 Address, got ' + unspent.address)
19814 assert(isFinite(index), 'Expected finite index, got ' + index)
19816 // FIXME: remove branch in
2.0.0
19817 if (unspent.confirmations !== undefined) {
19818 typeForce('Number', unspent.confirmations)
19821 var txHash = bufferutils.reverse(new Buffer(txId, 'hex'))
19824 address: unspent.address,
19825 confirmations: unspent.confirmations ||
0,
19829 value: unspent.value,
19831 // FIXME: remove in
2.0.0
19832 pending: unspent.pending || false
19835 // FIXME: remove in
2.0.0
19836 this.unspentMap[txId + ':' + index] = unspent
19842 Wallet.prototype.signWith = function (tx, addresses) {
19843 addresses.forEach(function (address, i) {
19844 var privKey = this.getPrivateKeyForAddress(address)
19846 tx.sign(i, privKey)
19852 function estimatePaddedFee (tx, network) {
19853 var tmpTx = tx.clone()
19854 tmpTx.addOutput(Script.EMPTY, network.dustSoftThreshold ||
0)
19856 return network.estimateFee(tmpTx)
19859 // FIXME:
1.0.0 shims, remove in
2.0.0
19860 Wallet.prototype.getReceiveAddress = Wallet.prototype.getAddress
19861 Wallet.prototype.createTx = Wallet.prototype.createTransaction
19863 module.exports = Wallet
19865 }).call(this,require("buffer").Buffer)
19866 },{"./address":
54,"./bufferutils":
57,"./hdnode":
63,"./networks":
66,"./script":
68,"./transaction_builder":
71,"assert":
5,"buffer":
7,"randombytes":
52,"typeforce":
53}]},{},[
64])(
64)
19868 <script>bitcoin.networks.shadow = {
19869 magicPrefix: '\x19ShadowCash Signed Message:\n',
19871 public:
0xEE80286A,
19872 private:
0xEE8031E8
19879 estimateFee: function() { return "unused in this app" },
19882 bitcoin.networks.shadowtn = {
19883 magicPrefix: '\x19ShadowCash Signed Message:\n',
19885 public:
0x76C0FDFB,
19886 private:
0x76C1077A
19893 estimateFee: function() { return "unused in this app" },
19896 bitcoin.networks.clam = {
19898 public:
0xa8c26d64,
19899 private:
0xa8c17826
19905 bitcoin.networks.dash = {
19907 public:
0x0488b21e,
19908 private:
0x0488ade4
19915 bitcoin.networks.dashtn = {
19917 public:
0x043587cf,
19918 private:
0x04358394
19925 bitcoin.networks.game = {
19927 public:
0x0488b21e,
19928 private:
0x0488ade4
19935 bitcoin.networks.namecoin = {
19937 public:
0x0488b21e,
19938 private:
0x0488ade4
19941 //scriptHash:
0x10,
19945 bitcoin.networks.peercoin = {
19947 public:
0x0488b21e,
19948 private:
0x0488ade4
19951 //scriptHash:
0x10,
19955 bitcoin.networks.slimcoin = {
19957 public:
0xef6adf10,
19958 private:
0xef69ea80
19965 bitcoin.networks.slimcointn = {
19967 public:
0x043587CF,
19968 private:
0x04358394
19976 <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){
19977 (function (global){
19980 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
19981 // original notice:
19984 * The buffer module from node.js, for the browser.
19986 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
19989 function compare(a, b) {
19997 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
19998 if (a[i] !== b[i]) {
20013 function isBuffer(b) {
20014 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
20015 return global.Buffer.isBuffer(b);
20017 return !!(b != null && b._isBuffer);
20020 // based on node assert, original notice:
20022 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
20024 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
20026 // Originally from narwhal.js (http://narwhaljs.org)
20027 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
20029 // Permission is hereby granted, free of charge, to any person obtaining a copy
20030 // of this software and associated documentation files (the 'Software'), to
20031 // deal in the Software without restriction, including without limitation the
20032 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
20033 // sell copies of the Software, and to permit persons to whom the Software is
20034 // furnished to do so, subject to the following conditions:
20036 // The above copyright notice and this permission notice shall be included in
20037 // all copies or substantial portions of the Software.
20039 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20040 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20041 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20042 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20043 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20044 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20046 var util = require('util/');
20047 var hasOwn = Object.prototype.hasOwnProperty;
20048 var pSlice = Array.prototype.slice;
20049 var functionsHaveNames = (function () {
20050 return function foo() {}.name === 'foo';
20052 function pToString (obj) {
20053 return Object.prototype.toString.call(obj);
20055 function isView(arrbuf) {
20056 if (isBuffer(arrbuf)) {
20059 if (typeof global.ArrayBuffer !== 'function') {
20062 if (typeof ArrayBuffer.isView === 'function') {
20063 return ArrayBuffer.isView(arrbuf);
20068 if (arrbuf instanceof DataView) {
20071 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
20076 //
1. The assert module provides functions that throw
20077 // AssertionError's when particular conditions are not met. The
20078 // assert module must conform to the following interface.
20080 var assert = module.exports = ok;
20082 //
2. The AssertionError is defined in assert.
20083 // new assert.AssertionError({ message: message,
20085 // expected: expected })
20087 var regex = /\s*function\s+([^\(\s]*)\s*/;
20088 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
20089 function getName(func) {
20090 if (!util.isFunction(func)) {
20093 if (functionsHaveNames) {
20096 var str = func.toString();
20097 var match = str.match(regex);
20098 return match && match[
1];
20100 assert.AssertionError = function AssertionError(options) {
20101 this.name = 'AssertionError';
20102 this.actual = options.actual;
20103 this.expected = options.expected;
20104 this.operator = options.operator;
20105 if (options.message) {
20106 this.message = options.message;
20107 this.generatedMessage = false;
20109 this.message = getMessage(this);
20110 this.generatedMessage = true;
20112 var stackStartFunction = options.stackStartFunction || fail;
20113 if (Error.captureStackTrace) {
20114 Error.captureStackTrace(this, stackStartFunction);
20116 // non v8 browsers so we can have a stacktrace
20117 var err = new Error();
20119 var out = err.stack;
20121 // try to strip useless frames
20122 var fn_name = getName(stackStartFunction);
20123 var idx = out.indexOf('\n' + fn_name);
20125 // once we have located the function frame
20126 // we need to strip out everything before it (and its line)
20127 var next_line = out.indexOf('\n', idx +
1);
20128 out = out.substring(next_line +
1);
20136 // assert.AssertionError instanceof Error
20137 util.inherits(assert.AssertionError, Error);
20139 function truncate(s, n) {
20140 if (typeof s === 'string') {
20141 return s.length < n ? s : s.slice(
0, n);
20146 function inspect(something) {
20147 if (functionsHaveNames || !util.isFunction(something)) {
20148 return util.inspect(something);
20150 var rawname = getName(something);
20151 var name = rawname ? ': ' + rawname : '';
20152 return '[Function' + name + ']';
20154 function getMessage(self) {
20155 return truncate(inspect(self.actual),
128) + ' ' +
20156 self.operator + ' ' +
20157 truncate(inspect(self.expected),
128);
20160 // At present only the three keys mentioned above are used and
20161 // understood by the spec. Implementations or sub modules can pass
20162 // other keys to the AssertionError's constructor - they will be
20165 //
3. All of the following functions must throw an AssertionError
20166 // when a corresponding condition is not met, with a message that
20167 // may be undefined if not provided. All assertion methods provide
20168 // both the actual and expected values to the assertion error for
20169 // display purposes.
20171 function fail(actual, expected, message, operator, stackStartFunction) {
20172 throw new assert.AssertionError({
20175 expected: expected,
20176 operator: operator,
20177 stackStartFunction: stackStartFunction
20181 // EXTENSION! allows for well behaved errors defined elsewhere.
20182 assert.fail = fail;
20184 //
4. Pure assertion tests whether a value is truthy, as determined
20186 // assert.ok(guard, message_opt);
20187 // This statement is equivalent to assert.equal(true, !!guard,
20188 // message_opt);. To test strictly for the value true, use
20189 // assert.strictEqual(true, guard, message_opt);.
20191 function ok(value, message) {
20192 if (!value) fail(value, true, message, '==', assert.ok);
20196 //
5. The equality assertion tests shallow, coercive equality with
20198 // assert.equal(actual, expected, message_opt);
20200 assert.equal = function equal(actual, expected, message) {
20201 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
20204 //
6. The non-equality assertion tests for whether two objects are not equal
20205 // with != assert.notEqual(actual, expected, message_opt);
20207 assert.notEqual = function notEqual(actual, expected, message) {
20208 if (actual == expected) {
20209 fail(actual, expected, message, '!=', assert.notEqual);
20213 //
7. The equivalence assertion tests a deep equality relation.
20214 // assert.deepEqual(actual, expected, message_opt);
20216 assert.deepEqual = function deepEqual(actual, expected, message) {
20217 if (!_deepEqual(actual, expected, false)) {
20218 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
20222 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
20223 if (!_deepEqual(actual, expected, true)) {
20224 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
20228 function _deepEqual(actual, expected, strict, memos) {
20229 //
7.1. All identical values are equivalent, as determined by ===.
20230 if (actual === expected) {
20232 } else if (isBuffer(actual) && isBuffer(expected)) {
20233 return compare(actual, expected) ===
0;
20235 //
7.2. If the expected value is a Date object, the actual value is
20236 // equivalent if it is also a Date object that refers to the same time.
20237 } else if (util.isDate(actual) && util.isDate(expected)) {
20238 return actual.getTime() === expected.getTime();
20240 //
7.3 If the expected value is a RegExp object, the actual value is
20241 // equivalent if it is also a RegExp object with the same source and
20242 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
20243 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
20244 return actual.source === expected.source &&
20245 actual.global === expected.global &&
20246 actual.multiline === expected.multiline &&
20247 actual.lastIndex === expected.lastIndex &&
20248 actual.ignoreCase === expected.ignoreCase;
20250 //
7.4. Other pairs that do not both pass typeof value == 'object',
20251 // equivalence is determined by ==.
20252 } else if ((actual === null || typeof actual !== 'object') &&
20253 (expected === null || typeof expected !== 'object')) {
20254 return strict ? actual === expected : actual == expected;
20256 // If both values are instances of typed arrays, wrap their underlying
20257 // ArrayBuffers in a Buffer each to increase performance
20258 // This optimization requires the arrays to have the same type as checked by
20259 // Object.prototype.toString (aka pToString). Never perform binary
20260 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
20261 // bit patterns are not identical.
20262 } else if (isView(actual) && isView(expected) &&
20263 pToString(actual) === pToString(expected) &&
20264 !(actual instanceof Float32Array ||
20265 actual instanceof Float64Array)) {
20266 return compare(new Uint8Array(actual.buffer),
20267 new Uint8Array(expected.buffer)) ===
0;
20269 //
7.5 For all other Object pairs, including Array objects, equivalence is
20270 // determined by having the same number of owned properties (as verified
20271 // with Object.prototype.hasOwnProperty.call), the same set of keys
20272 // (although not necessarily the same order), equivalent values for every
20273 // corresponding key, and an identical 'prototype' property. Note: this
20274 // accounts for both named and indexed properties on Arrays.
20275 } else if (isBuffer(actual) !== isBuffer(expected)) {
20278 memos = memos || {actual: [], expected: []};
20280 var actualIndex = memos.actual.indexOf(actual);
20281 if (actualIndex !== -
1) {
20282 if (actualIndex === memos.expected.indexOf(expected)) {
20287 memos.actual.push(actual);
20288 memos.expected.push(expected);
20290 return objEquiv(actual, expected, strict, memos);
20294 function isArguments(object) {
20295 return Object.prototype.toString.call(object) == '[object Arguments]';
20298 function objEquiv(a, b, strict, actualVisitedObjects) {
20299 if (a === null || a === undefined || b === null || b === undefined)
20301 // if one is a primitive, the other must be same
20302 if (util.isPrimitive(a) || util.isPrimitive(b))
20304 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
20306 var aIsArgs = isArguments(a);
20307 var bIsArgs = isArguments(b);
20308 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
20311 a = pSlice.call(a);
20312 b = pSlice.call(b);
20313 return _deepEqual(a, b, strict);
20315 var ka = objectKeys(a);
20316 var kb = objectKeys(b);
20318 // having the same number of owned properties (keys incorporates
20320 if (ka.length !== kb.length)
20322 //the same set of keys (although not necessarily the same order),
20325 //~~~cheap key test
20326 for (i = ka.length -
1; i
>=
0; i--) {
20327 if (ka[i] !== kb[i])
20330 //equivalent values for every corresponding key, and
20331 //~~~possibly expensive deep test
20332 for (i = ka.length -
1; i
>=
0; i--) {
20334 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
20340 //
8. The non-equivalence assertion tests for any deep inequality.
20341 // assert.notDeepEqual(actual, expected, message_opt);
20343 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
20344 if (_deepEqual(actual, expected, false)) {
20345 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
20349 assert.notDeepStrictEqual = notDeepStrictEqual;
20350 function notDeepStrictEqual(actual, expected, message) {
20351 if (_deepEqual(actual, expected, true)) {
20352 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
20357 //
9. The strict equality assertion tests strict equality, as determined by ===.
20358 // assert.strictEqual(actual, expected, message_opt);
20360 assert.strictEqual = function strictEqual(actual, expected, message) {
20361 if (actual !== expected) {
20362 fail(actual, expected, message, '===', assert.strictEqual);
20366 //
10. The strict non-equality assertion tests for strict inequality, as
20367 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
20369 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
20370 if (actual === expected) {
20371 fail(actual, expected, message, '!==', assert.notStrictEqual);
20375 function expectedException(actual, expected) {
20376 if (!actual || !expected) {
20380 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
20381 return expected.test(actual);
20385 if (actual instanceof expected) {
20389 // Ignore. The instanceof check doesn't work for arrow functions.
20392 if (Error.isPrototypeOf(expected)) {
20396 return expected.call({}, actual) === true;
20399 function _tryBlock(block) {
20409 function _throws(shouldThrow, block, expected, message) {
20412 if (typeof block !== 'function') {
20413 throw new TypeError('"block" argument must be a function');
20416 if (typeof expected === 'string') {
20417 message = expected;
20421 actual = _tryBlock(block);
20423 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
20424 (message ? ' ' + message : '.');
20426 if (shouldThrow && !actual) {
20427 fail(actual, expected, 'Missing expected exception' + message);
20430 var userProvidedMessage = typeof message === 'string';
20431 var isUnwantedException = !shouldThrow && util.isError(actual);
20432 var isUnexpectedException = !shouldThrow && actual && !expected;
20434 if ((isUnwantedException &&
20435 userProvidedMessage &&
20436 expectedException(actual, expected)) ||
20437 isUnexpectedException) {
20438 fail(actual, expected, 'Got unwanted exception' + message);
20441 if ((shouldThrow && actual && expected &&
20442 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
20447 //
11. Expected to throw an error:
20448 // assert.throws(block, Error_opt, message_opt);
20450 assert.throws = function(block, /*optional*/error, /*optional*/message) {
20451 _throws(true, block, error, message);
20454 // EXTENSION! This is annoying to write outside this module.
20455 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
20456 _throws(false, block, error, message);
20459 assert.ifError = function(err) { if (err) throw err; };
20461 var objectKeys = Object.keys || function (obj) {
20463 for (var key in obj) {
20464 if (hasOwn.call(obj, key)) keys.push(key);
20469 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
20470 },{"util/":
30}],
2:[function(require,module,exports){
20473 exports.byteLength = byteLength
20474 exports.toByteArray = toByteArray
20475 exports.fromByteArray = fromByteArray
20479 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
20481 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
20482 for (var i =
0, len = code.length; i < len; ++i) {
20483 lookup[i] = code[i]
20484 revLookup[code.charCodeAt(i)] = i
20487 revLookup['-'.charCodeAt(
0)] =
62
20488 revLookup['_'.charCodeAt(
0)] =
63
20490 function placeHoldersCount (b64) {
20491 var len = b64.length
20493 throw new Error('Invalid string. Length must be a multiple of
4')
20496 // the number of equal signs (place holders)
20497 // if there are two placeholders, than the two characters before it
20498 // represent one byte
20499 // if there is only one, then the three characters before it represent
2 bytes
20500 // this is just a cheap hack to not do indexOf twice
20501 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
20504 function byteLength (b64) {
20505 // base64 is
4/
3 + up to two characters of the original data
20506 return b64.length *
3 /
4 - placeHoldersCount(b64)
20509 function toByteArray (b64) {
20510 var i, j, l, tmp, placeHolders, arr
20511 var len = b64.length
20512 placeHolders = placeHoldersCount(b64)
20514 arr = new Arr(len *
3 /
4 - placeHolders)
20516 // if there are placeholders, only get up to the last complete
4 chars
20517 l = placeHolders
> 0 ? len -
4 : len
20521 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
20522 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
20523 arr[L++] = (tmp
>> 16) &
0xFF
20524 arr[L++] = (tmp
>> 8) &
0xFF
20525 arr[L++] = tmp &
0xFF
20528 if (placeHolders ===
2) {
20529 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
20530 arr[L++] = tmp &
0xFF
20531 } else if (placeHolders ===
1) {
20532 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
20533 arr[L++] = (tmp
>> 8) &
0xFF
20534 arr[L++] = tmp &
0xFF
20540 function tripletToBase64 (num) {
20541 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
20544 function encodeChunk (uint8, start, end) {
20547 for (var i = start; i < end; i +=
3) {
20548 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
20549 output.push(tripletToBase64(tmp))
20551 return output.join('')
20554 function fromByteArray (uint8) {
20556 var len = uint8.length
20557 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
20560 var maxChunkLength =
16383 // must be multiple of
3
20562 // go through the array every three bytes, we'll deal with trailing stuff later
20563 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
20564 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
20567 // pad the end with zeros, but make sure to not forget the extra bytes
20568 if (extraBytes ===
1) {
20569 tmp = uint8[len -
1]
20570 output += lookup[tmp
>> 2]
20571 output += lookup[(tmp <<
4) &
0x3F]
20573 } else if (extraBytes ===
2) {
20574 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
20575 output += lookup[tmp
>> 10]
20576 output += lookup[(tmp
>> 4) &
0x3F]
20577 output += lookup[(tmp <<
2) &
0x3F]
20583 return parts.join('')
20586 },{}],
3:[function(require,module,exports){
20588 },{}],
4:[function(require,module,exports){
20589 (function (global){
20592 var buffer = require('buffer');
20593 var Buffer = buffer.Buffer;
20594 var SlowBuffer = buffer.SlowBuffer;
20595 var MAX_LEN = buffer.kMaxLength ||
2147483647;
20596 exports.alloc = function alloc(size, fill, encoding) {
20597 if (typeof Buffer.alloc === 'function') {
20598 return Buffer.alloc(size, fill, encoding);
20600 if (typeof encoding === 'number') {
20601 throw new TypeError('encoding must not be number');
20603 if (typeof size !== 'number') {
20604 throw new TypeError('size must be a number');
20606 if (size
> MAX_LEN) {
20607 throw new RangeError('size is too large');
20609 var enc = encoding;
20611 if (_fill === undefined) {
20615 var buf = new Buffer(size);
20616 if (typeof _fill === 'string') {
20617 var fillBuf = new Buffer(_fill, enc);
20618 var flen = fillBuf.length;
20620 while (++i < size) {
20621 buf[i] = fillBuf[i % flen];
20628 exports.allocUnsafe = function allocUnsafe(size) {
20629 if (typeof Buffer.allocUnsafe === 'function') {
20630 return Buffer.allocUnsafe(size);
20632 if (typeof size !== 'number') {
20633 throw new TypeError('size must be a number');
20635 if (size
> MAX_LEN) {
20636 throw new RangeError('size is too large');
20638 return new Buffer(size);
20640 exports.from = function from(value, encodingOrOffset, length) {
20641 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
20642 return Buffer.from(value, encodingOrOffset, length);
20644 if (typeof value === 'number') {
20645 throw new TypeError('"value" argument must not be a number');
20647 if (typeof value === 'string') {
20648 return new Buffer(value, encodingOrOffset);
20650 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
20651 var offset = encodingOrOffset;
20652 if (arguments.length ===
1) {
20653 return new Buffer(value);
20655 if (typeof offset === 'undefined') {
20659 if (typeof len === 'undefined') {
20660 len = value.byteLength - offset;
20662 if (offset
>= value.byteLength) {
20663 throw new RangeError('\'offset\' is out of bounds');
20665 if (len
> value.byteLength - offset) {
20666 throw new RangeError('\'length\' is out of bounds');
20668 return new Buffer(value.slice(offset, offset + len));
20670 if (Buffer.isBuffer(value)) {
20671 var out = new Buffer(value.length);
20672 value.copy(out,
0,
0, value.length);
20676 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
20677 return new Buffer(value);
20679 if (value.type === 'Buffer' && Array.isArray(value.data)) {
20680 return new Buffer(value.data);
20684 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
20686 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
20687 if (typeof Buffer.allocUnsafeSlow === 'function') {
20688 return Buffer.allocUnsafeSlow(size);
20690 if (typeof size !== 'number') {
20691 throw new TypeError('size must be a number');
20693 if (size
>= MAX_LEN) {
20694 throw new RangeError('size is too large');
20696 return new SlowBuffer(size);
20699 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
20700 },{"buffer":
5}],
5:[function(require,module,exports){
20702 * The buffer module from node.js, for the browser.
20704 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
20707 /* eslint-disable no-proto */
20711 var base64 = require('base64-js')
20712 var ieee754 = require('ieee754')
20714 exports.Buffer = Buffer
20715 exports.SlowBuffer = SlowBuffer
20716 exports.INSPECT_MAX_BYTES =
50
20718 var K_MAX_LENGTH =
0x7fffffff
20719 exports.kMaxLength = K_MAX_LENGTH
20722 * If `Buffer.TYPED_ARRAY_SUPPORT`:
20723 * === true Use Uint8Array implementation (fastest)
20724 * === false Print warning and recommend using `buffer` v4.x which has an Object
20725 * implementation (most compatible, even IE6)
20727 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
20728 * Opera
11.6+, iOS
4.2+.
20730 * We report that the browser does not support typed arrays if the are not subclassable
20731 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
20732 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
20733 * for __proto__ and has a buggy typed array implementation.
20735 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
20737 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
20738 typeof console.error === 'function') {
20740 'This browser lacks typed array (Uint8Array) support which is required by ' +
20741 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
20745 function typedArraySupport () {
20746 // Can typed array instances can be augmented?
20748 var arr = new Uint8Array(
1)
20749 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
20750 return arr.foo() ===
42
20756 function createBuffer (length) {
20757 if (length
> K_MAX_LENGTH) {
20758 throw new RangeError('Invalid typed array length')
20760 // Return an augmented `Uint8Array` instance
20761 var buf = new Uint8Array(length)
20762 buf.__proto__ = Buffer.prototype
20767 * The Buffer constructor returns instances of `Uint8Array` that have their
20768 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
20769 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
20770 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
20771 * returns a single octet.
20773 * The `Uint8Array` prototype remains unmodified.
20776 function Buffer (arg, encodingOrOffset, length) {
20778 if (typeof arg === 'number') {
20779 if (typeof encodingOrOffset === 'string') {
20781 'If encoding is specified then the first argument must be a string'
20784 return allocUnsafe(arg)
20786 return from(arg, encodingOrOffset, length)
20789 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
20790 if (typeof Symbol !== 'undefined' && Symbol.species &&
20791 Buffer[Symbol.species] === Buffer) {
20792 Object.defineProperty(Buffer, Symbol.species, {
20794 configurable: true,
20800 Buffer.poolSize =
8192 // not used by this implementation
20802 function from (value, encodingOrOffset, length) {
20803 if (typeof value === 'number') {
20804 throw new TypeError('"value" argument must not be a number')
20807 if (value instanceof ArrayBuffer) {
20808 return fromArrayBuffer(value, encodingOrOffset, length)
20811 if (typeof value === 'string') {
20812 return fromString(value, encodingOrOffset)
20815 return fromObject(value)
20819 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
20820 * if value is a number.
20821 * Buffer.from(str[, encoding])
20822 * Buffer.from(array)
20823 * Buffer.from(buffer)
20824 * Buffer.from(arrayBuffer[, byteOffset[, length]])
20826 Buffer.from = function (value, encodingOrOffset, length) {
20827 return from(value, encodingOrOffset, length)
20830 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
20831 // https://github.com/feross/buffer/pull/
148
20832 Buffer.prototype.__proto__ = Uint8Array.prototype
20833 Buffer.__proto__ = Uint8Array
20835 function assertSize (size) {
20836 if (typeof size !== 'number') {
20837 throw new TypeError('"size" argument must be a number')
20838 } else if (size <
0) {
20839 throw new RangeError('"size" argument must not be negative')
20843 function alloc (size, fill, encoding) {
20846 return createBuffer(size)
20848 if (fill !== undefined) {
20849 // Only pay attention to encoding if it's a string. This
20850 // prevents accidentally sending in a number that would
20851 // be interpretted as a start offset.
20852 return typeof encoding === 'string'
20853 ? createBuffer(size).fill(fill, encoding)
20854 : createBuffer(size).fill(fill)
20856 return createBuffer(size)
20860 * Creates a new filled Buffer instance.
20861 * alloc(size[, fill[, encoding]])
20863 Buffer.alloc = function (size, fill, encoding) {
20864 return alloc(size, fill, encoding)
20867 function allocUnsafe (size) {
20869 return createBuffer(size <
0 ?
0 : checked(size) |
0)
20873 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
20875 Buffer.allocUnsafe = function (size) {
20876 return allocUnsafe(size)
20879 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
20881 Buffer.allocUnsafeSlow = function (size) {
20882 return allocUnsafe(size)
20885 function fromString (string, encoding) {
20886 if (typeof encoding !== 'string' || encoding === '') {
20890 if (!Buffer.isEncoding(encoding)) {
20891 throw new TypeError('"encoding" must be a valid string encoding')
20894 var length = byteLength(string, encoding) |
0
20895 var buf = createBuffer(length)
20897 var actual = buf.write(string, encoding)
20899 if (actual !== length) {
20900 // Writing a hex string, for example, that contains invalid characters will
20901 // cause everything after the first invalid character to be ignored. (e.g.
20902 // 'abxxcd' will be treated as 'ab')
20903 buf = buf.slice(
0, actual)
20909 function fromArrayLike (array) {
20910 var length = array.length <
0 ?
0 : checked(array.length) |
0
20911 var buf = createBuffer(length)
20912 for (var i =
0; i < length; i +=
1) {
20913 buf[i] = array[i] &
255
20918 function fromArrayBuffer (array, byteOffset, length) {
20919 if (byteOffset <
0 || array.byteLength < byteOffset) {
20920 throw new RangeError('\'offset\' is out of bounds')
20923 if (array.byteLength < byteOffset + (length ||
0)) {
20924 throw new RangeError('\'length\' is out of bounds')
20928 if (byteOffset === undefined && length === undefined) {
20929 buf = new Uint8Array(array)
20930 } else if (length === undefined) {
20931 buf = new Uint8Array(array, byteOffset)
20933 buf = new Uint8Array(array, byteOffset, length)
20936 // Return an augmented `Uint8Array` instance
20937 buf.__proto__ = Buffer.prototype
20941 function fromObject (obj) {
20942 if (Buffer.isBuffer(obj)) {
20943 var len = checked(obj.length) |
0
20944 var buf = createBuffer(len)
20946 if (buf.length ===
0) {
20950 obj.copy(buf,
0,
0, len)
20955 if (ArrayBuffer.isView(obj) || 'length' in obj) {
20956 if (typeof obj.length !== 'number' || isnan(obj.length)) {
20957 return createBuffer(
0)
20959 return fromArrayLike(obj)
20962 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
20963 return fromArrayLike(obj.data)
20967 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
20970 function checked (length) {
20971 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
20972 // length is NaN (which is otherwise coerced to zero.)
20973 if (length
>= K_MAX_LENGTH) {
20974 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
20975 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
20980 function SlowBuffer (length) {
20981 if (+length != length) { // eslint-disable-line eqeqeq
20984 return Buffer.alloc(+length)
20987 Buffer.isBuffer = function isBuffer (b) {
20988 return b != null && b._isBuffer === true
20991 Buffer.compare = function compare (a, b) {
20992 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
20993 throw new TypeError('Arguments must be Buffers')
20996 if (a === b) return
0
21001 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
21002 if (a[i] !== b[i]) {
21009 if (x < y) return -
1
21010 if (y < x) return
1
21014 Buffer.isEncoding = function isEncoding (encoding) {
21015 switch (String(encoding).toLowerCase()) {
21033 Buffer.concat = function concat (list, length) {
21034 if (!Array.isArray(list)) {
21035 throw new TypeError('"list" argument must be an Array of Buffers')
21038 if (list.length ===
0) {
21039 return Buffer.alloc(
0)
21043 if (length === undefined) {
21045 for (i =
0; i < list.length; ++i) {
21046 length += list[i].length
21050 var buffer = Buffer.allocUnsafe(length)
21052 for (i =
0; i < list.length; ++i) {
21054 if (!Buffer.isBuffer(buf)) {
21055 throw new TypeError('"list" argument must be an Array of Buffers')
21057 buf.copy(buffer, pos)
21063 function byteLength (string, encoding) {
21064 if (Buffer.isBuffer(string)) {
21065 return string.length
21067 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
21068 return string.byteLength
21070 if (typeof string !== 'string') {
21071 string = '' + string
21074 var len = string.length
21075 if (len ===
0) return
0
21077 // Use a for loop to avoid recursion
21078 var loweredCase = false
21080 switch (encoding) {
21088 return utf8ToBytes(string).length
21097 return base64ToBytes(string).length
21099 if (loweredCase) return utf8ToBytes(string).length // assume utf8
21100 encoding = ('' + encoding).toLowerCase()
21105 Buffer.byteLength = byteLength
21107 function slowToString (encoding, start, end) {
21108 var loweredCase = false
21110 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
21111 // property of a typed array.
21113 // This behaves neither like String nor Uint8Array in that we set start/end
21114 // to their upper/lower bounds if the value passed is out of range.
21115 // undefined is handled specially as per ECMA-
262 6th Edition,
21116 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
21117 if (start === undefined || start <
0) {
21120 // Return early if start
> this.length. Done here to prevent potential uint32
21121 // coercion fail below.
21122 if (start
> this.length) {
21126 if (end === undefined || end
> this.length) {
21134 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
21138 if (end <= start) {
21142 if (!encoding) encoding = 'utf8'
21145 switch (encoding) {
21147 return hexSlice(this, start, end)
21151 return utf8Slice(this, start, end)
21154 return asciiSlice(this, start, end)
21158 return latin1Slice(this, start, end)
21161 return base64Slice(this, start, end)
21167 return utf16leSlice(this, start, end)
21170 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
21171 encoding = (encoding + '').toLowerCase()
21177 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
21178 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
21179 // reliably in a browserify context because there could be multiple different
21180 // copies of the 'buffer' package in use. This method works even for Buffer
21181 // instances that were created from another copy of the `buffer` package.
21182 // See: https://github.com/feross/buffer/issues/
154
21183 Buffer.prototype._isBuffer = true
21185 function swap (b, n, m) {
21191 Buffer.prototype.swap16 = function swap16 () {
21192 var len = this.length
21193 if (len %
2 !==
0) {
21194 throw new RangeError('Buffer size must be a multiple of
16-bits')
21196 for (var i =
0; i < len; i +=
2) {
21197 swap(this, i, i +
1)
21202 Buffer.prototype.swap32 = function swap32 () {
21203 var len = this.length
21204 if (len %
4 !==
0) {
21205 throw new RangeError('Buffer size must be a multiple of
32-bits')
21207 for (var i =
0; i < len; i +=
4) {
21208 swap(this, i, i +
3)
21209 swap(this, i +
1, i +
2)
21214 Buffer.prototype.swap64 = function swap64 () {
21215 var len = this.length
21216 if (len %
8 !==
0) {
21217 throw new RangeError('Buffer size must be a multiple of
64-bits')
21219 for (var i =
0; i < len; i +=
8) {
21220 swap(this, i, i +
7)
21221 swap(this, i +
1, i +
6)
21222 swap(this, i +
2, i +
5)
21223 swap(this, i +
3, i +
4)
21228 Buffer.prototype.toString = function toString () {
21229 var length = this.length
21230 if (length ===
0) return ''
21231 if (arguments.length ===
0) return utf8Slice(this,
0, length)
21232 return slowToString.apply(this, arguments)
21235 Buffer.prototype.equals = function equals (b) {
21236 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
21237 if (this === b) return true
21238 return Buffer.compare(this, b) ===
0
21241 Buffer.prototype.inspect = function inspect () {
21243 var max = exports.INSPECT_MAX_BYTES
21244 if (this.length
> 0) {
21245 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
21246 if (this.length
> max) str += ' ... '
21248 return '
<Buffer ' + str + '
>'
21251 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
21252 if (!Buffer.isBuffer(target)) {
21253 throw new TypeError('Argument must be a Buffer')
21256 if (start === undefined) {
21259 if (end === undefined) {
21260 end = target ? target.length :
0
21262 if (thisStart === undefined) {
21265 if (thisEnd === undefined) {
21266 thisEnd = this.length
21269 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
21270 throw new RangeError('out of range index')
21273 if (thisStart
>= thisEnd && start
>= end) {
21276 if (thisStart
>= thisEnd) {
21279 if (start
>= end) {
21288 if (this === target) return
0
21290 var x = thisEnd - thisStart
21291 var y = end - start
21292 var len = Math.min(x, y)
21294 var thisCopy = this.slice(thisStart, thisEnd)
21295 var targetCopy = target.slice(start, end)
21297 for (var i =
0; i < len; ++i) {
21298 if (thisCopy[i] !== targetCopy[i]) {
21305 if (x < y) return -
1
21306 if (y < x) return
1
21310 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
21311 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
21314 // - buffer - a Buffer to search
21315 // - val - a string, Buffer, or number
21316 // - byteOffset - an index into `buffer`; will be clamped to an int32
21317 // - encoding - an optional encoding, relevant is val is a string
21318 // - dir - true for indexOf, false for lastIndexOf
21319 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
21320 // Empty buffer means no match
21321 if (buffer.length ===
0) return -
1
21323 // Normalize byteOffset
21324 if (typeof byteOffset === 'string') {
21325 encoding = byteOffset
21327 } else if (byteOffset
> 0x7fffffff) {
21328 byteOffset =
0x7fffffff
21329 } else if (byteOffset < -
0x80000000) {
21330 byteOffset = -
0x80000000
21332 byteOffset = +byteOffset // Coerce to Number.
21333 if (isNaN(byteOffset)) {
21334 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
21335 byteOffset = dir ?
0 : (buffer.length -
1)
21338 // Normalize byteOffset: negative offsets start from the end of the buffer
21339 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
21340 if (byteOffset
>= buffer.length) {
21342 else byteOffset = buffer.length -
1
21343 } else if (byteOffset <
0) {
21344 if (dir) byteOffset =
0
21349 if (typeof val === 'string') {
21350 val = Buffer.from(val, encoding)
21353 // Finally, search either indexOf (if dir is true) or lastIndexOf
21354 if (Buffer.isBuffer(val)) {
21355 // Special case: looking for empty string/buffer always fails
21356 if (val.length ===
0) {
21359 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
21360 } else if (typeof val === 'number') {
21361 val = val &
0xFF // Search for a byte value [
0-
255]
21362 if (typeof Uint8Array.prototype.indexOf === 'function') {
21364 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
21366 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
21369 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
21372 throw new TypeError('val must be string, number or Buffer')
21375 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
21377 var arrLength = arr.length
21378 var valLength = val.length
21380 if (encoding !== undefined) {
21381 encoding = String(encoding).toLowerCase()
21382 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
21383 encoding === 'utf16le' || encoding === 'utf-
16le') {
21384 if (arr.length <
2 || val.length <
2) {
21394 function read (buf, i) {
21395 if (indexSize ===
1) {
21398 return buf.readUInt16BE(i * indexSize)
21404 var foundIndex = -
1
21405 for (i = byteOffset; i < arrLength; i++) {
21406 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
21407 if (foundIndex === -
1) foundIndex = i
21408 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
21410 if (foundIndex !== -
1) i -= i - foundIndex
21415 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
21416 for (i = byteOffset; i
>=
0; i--) {
21418 for (var j =
0; j < valLength; j++) {
21419 if (read(arr, i + j) !== read(val, j)) {
21424 if (found) return i
21431 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
21432 return this.indexOf(val, byteOffset, encoding) !== -
1
21435 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
21436 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
21439 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
21440 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
21443 function hexWrite (buf, string, offset, length) {
21444 offset = Number(offset) ||
0
21445 var remaining = buf.length - offset
21449 length = Number(length)
21450 if (length
> remaining) {
21455 // must be an even number of digits
21456 var strLen = string.length
21457 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
21459 if (length
> strLen /
2) {
21460 length = strLen /
2
21462 for (var i =
0; i < length; ++i) {
21463 var parsed = parseInt(string.substr(i *
2,
2),
16)
21464 if (isNaN(parsed)) return i
21465 buf[offset + i] = parsed
21470 function utf8Write (buf, string, offset, length) {
21471 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
21474 function asciiWrite (buf, string, offset, length) {
21475 return blitBuffer(asciiToBytes(string), buf, offset, length)
21478 function latin1Write (buf, string, offset, length) {
21479 return asciiWrite(buf, string, offset, length)
21482 function base64Write (buf, string, offset, length) {
21483 return blitBuffer(base64ToBytes(string), buf, offset, length)
21486 function ucs2Write (buf, string, offset, length) {
21487 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
21490 Buffer.prototype.write = function write (string, offset, length, encoding) {
21491 // Buffer#write(string)
21492 if (offset === undefined) {
21494 length = this.length
21496 // Buffer#write(string, encoding)
21497 } else if (length === undefined && typeof offset === 'string') {
21499 length = this.length
21501 // Buffer#write(string, offset[, length][, encoding])
21502 } else if (isFinite(offset)) {
21503 offset = offset
>>> 0
21504 if (isFinite(length)) {
21505 length = length
>>> 0
21506 if (encoding === undefined) encoding = 'utf8'
21513 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
21517 var remaining = this.length - offset
21518 if (length === undefined || length
> remaining) length = remaining
21520 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
21521 throw new RangeError('Attempt to write outside buffer bounds')
21524 if (!encoding) encoding = 'utf8'
21526 var loweredCase = false
21528 switch (encoding) {
21530 return hexWrite(this, string, offset, length)
21534 return utf8Write(this, string, offset, length)
21537 return asciiWrite(this, string, offset, length)
21541 return latin1Write(this, string, offset, length)
21544 // Warning: maxLength not taken into account in base64Write
21545 return base64Write(this, string, offset, length)
21551 return ucs2Write(this, string, offset, length)
21554 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
21555 encoding = ('' + encoding).toLowerCase()
21561 Buffer.prototype.toJSON = function toJSON () {
21564 data: Array.prototype.slice.call(this._arr || this,
0)
21568 function base64Slice (buf, start, end) {
21569 if (start ===
0 && end === buf.length) {
21570 return base64.fromByteArray(buf)
21572 return base64.fromByteArray(buf.slice(start, end))
21576 function utf8Slice (buf, start, end) {
21577 end = Math.min(buf.length, end)
21582 var firstByte = buf[i]
21583 var codePoint = null
21584 var bytesPerSequence = (firstByte
> 0xEF) ?
4
21585 : (firstByte
> 0xDF) ?
3
21586 : (firstByte
> 0xBF) ?
2
21589 if (i + bytesPerSequence <= end) {
21590 var secondByte, thirdByte, fourthByte, tempCodePoint
21592 switch (bytesPerSequence) {
21594 if (firstByte <
0x80) {
21595 codePoint = firstByte
21599 secondByte = buf[i +
1]
21600 if ((secondByte &
0xC0) ===
0x80) {
21601 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
21602 if (tempCodePoint
> 0x7F) {
21603 codePoint = tempCodePoint
21608 secondByte = buf[i +
1]
21609 thirdByte = buf[i +
2]
21610 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
21611 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
21612 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
21613 codePoint = tempCodePoint
21618 secondByte = buf[i +
1]
21619 thirdByte = buf[i +
2]
21620 fourthByte = buf[i +
3]
21621 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
21622 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
21623 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
21624 codePoint = tempCodePoint
21630 if (codePoint === null) {
21631 // we did not generate a valid codePoint so insert a
21632 // replacement char (U+FFFD) and advance only
1 byte
21634 bytesPerSequence =
1
21635 } else if (codePoint
> 0xFFFF) {
21636 // encode to utf16 (surrogate pair dance)
21637 codePoint -=
0x10000
21638 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
21639 codePoint =
0xDC00 | codePoint &
0x3FF
21642 res.push(codePoint)
21643 i += bytesPerSequence
21646 return decodeCodePointsArray(res)
21649 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
21650 // the lowest limit is Chrome, with
0x10000 args.
21651 // We go
1 magnitude less, for safety
21652 var MAX_ARGUMENTS_LENGTH =
0x1000
21654 function decodeCodePointsArray (codePoints) {
21655 var len = codePoints.length
21656 if (len <= MAX_ARGUMENTS_LENGTH) {
21657 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
21660 // Decode in chunks to avoid
"call stack size exceeded".
21664 res += String.fromCharCode.apply(
21666 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
21672 function asciiSlice (buf, start, end) {
21674 end = Math.min(buf.length, end)
21676 for (var i = start; i < end; ++i) {
21677 ret += String.fromCharCode(buf[i] &
0x7F)
21682 function latin1Slice (buf, start, end) {
21684 end = Math.min(buf.length, end)
21686 for (var i = start; i < end; ++i) {
21687 ret += String.fromCharCode(buf[i])
21692 function hexSlice (buf, start, end) {
21693 var len = buf.length
21695 if (!start || start <
0) start =
0
21696 if (!end || end <
0 || end
> len) end = len
21699 for (var i = start; i < end; ++i) {
21700 out += toHex(buf[i])
21705 function utf16leSlice (buf, start, end) {
21706 var bytes = buf.slice(start, end)
21708 for (var i =
0; i < bytes.length; i +=
2) {
21709 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
21714 Buffer.prototype.slice = function slice (start, end) {
21715 var len = this.length
21717 end = end === undefined ? len : ~~end
21721 if (start <
0) start =
0
21722 } else if (start
> len) {
21728 if (end <
0) end =
0
21729 } else if (end
> len) {
21733 if (end < start) end = start
21735 var newBuf = this.subarray(start, end)
21736 // Return an augmented `Uint8Array` instance
21737 newBuf.__proto__ = Buffer.prototype
21742 * Need to make sure that buffer isn't trying to write out of bounds.
21744 function checkOffset (offset, ext, length) {
21745 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
21746 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
21749 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
21750 offset = offset
>>> 0
21751 byteLength = byteLength
>>> 0
21752 if (!noAssert) checkOffset(offset, byteLength, this.length)
21754 var val = this[offset]
21757 while (++i < byteLength && (mul *=
0x100)) {
21758 val += this[offset + i] * mul
21764 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
21765 offset = offset
>>> 0
21766 byteLength = byteLength
>>> 0
21768 checkOffset(offset, byteLength, this.length)
21771 var val = this[offset + --byteLength]
21773 while (byteLength
> 0 && (mul *=
0x100)) {
21774 val += this[offset + --byteLength] * mul
21780 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
21781 offset = offset
>>> 0
21782 if (!noAssert) checkOffset(offset,
1, this.length)
21783 return this[offset]
21786 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
21787 offset = offset
>>> 0
21788 if (!noAssert) checkOffset(offset,
2, this.length)
21789 return this[offset] | (this[offset +
1] <<
8)
21792 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
21793 offset = offset
>>> 0
21794 if (!noAssert) checkOffset(offset,
2, this.length)
21795 return (this[offset] <<
8) | this[offset +
1]
21798 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
21799 offset = offset
>>> 0
21800 if (!noAssert) checkOffset(offset,
4, this.length)
21802 return ((this[offset]) |
21803 (this[offset +
1] <<
8) |
21804 (this[offset +
2] <<
16)) +
21805 (this[offset +
3] *
0x1000000)
21808 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
21809 offset = offset
>>> 0
21810 if (!noAssert) checkOffset(offset,
4, this.length)
21812 return (this[offset] *
0x1000000) +
21813 ((this[offset +
1] <<
16) |
21814 (this[offset +
2] <<
8) |
21818 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
21819 offset = offset
>>> 0
21820 byteLength = byteLength
>>> 0
21821 if (!noAssert) checkOffset(offset, byteLength, this.length)
21823 var val = this[offset]
21826 while (++i < byteLength && (mul *=
0x100)) {
21827 val += this[offset + i] * mul
21831 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
21836 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
21837 offset = offset
>>> 0
21838 byteLength = byteLength
>>> 0
21839 if (!noAssert) checkOffset(offset, byteLength, this.length)
21843 var val = this[offset + --i]
21844 while (i
> 0 && (mul *=
0x100)) {
21845 val += this[offset + --i] * mul
21849 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
21854 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
21855 offset = offset
>>> 0
21856 if (!noAssert) checkOffset(offset,
1, this.length)
21857 if (!(this[offset] &
0x80)) return (this[offset])
21858 return ((
0xff - this[offset] +
1) * -
1)
21861 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
21862 offset = offset
>>> 0
21863 if (!noAssert) checkOffset(offset,
2, this.length)
21864 var val = this[offset] | (this[offset +
1] <<
8)
21865 return (val &
0x8000) ? val |
0xFFFF0000 : val
21868 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
21869 offset = offset
>>> 0
21870 if (!noAssert) checkOffset(offset,
2, this.length)
21871 var val = this[offset +
1] | (this[offset] <<
8)
21872 return (val &
0x8000) ? val |
0xFFFF0000 : val
21875 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
21876 offset = offset
>>> 0
21877 if (!noAssert) checkOffset(offset,
4, this.length)
21879 return (this[offset]) |
21880 (this[offset +
1] <<
8) |
21881 (this[offset +
2] <<
16) |
21882 (this[offset +
3] <<
24)
21885 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
21886 offset = offset
>>> 0
21887 if (!noAssert) checkOffset(offset,
4, this.length)
21889 return (this[offset] <<
24) |
21890 (this[offset +
1] <<
16) |
21891 (this[offset +
2] <<
8) |
21895 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
21896 offset = offset
>>> 0
21897 if (!noAssert) checkOffset(offset,
4, this.length)
21898 return ieee754.read(this, offset, true,
23,
4)
21901 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
21902 offset = offset
>>> 0
21903 if (!noAssert) checkOffset(offset,
4, this.length)
21904 return ieee754.read(this, offset, false,
23,
4)
21907 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
21908 offset = offset
>>> 0
21909 if (!noAssert) checkOffset(offset,
8, this.length)
21910 return ieee754.read(this, offset, true,
52,
8)
21913 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
21914 offset = offset
>>> 0
21915 if (!noAssert) checkOffset(offset,
8, this.length)
21916 return ieee754.read(this, offset, false,
52,
8)
21919 function checkInt (buf, value, offset, ext, max, min) {
21920 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
21921 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
21922 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
21925 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
21927 offset = offset
>>> 0
21928 byteLength = byteLength
>>> 0
21930 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
21931 checkInt(this, value, offset, byteLength, maxBytes,
0)
21936 this[offset] = value &
0xFF
21937 while (++i < byteLength && (mul *=
0x100)) {
21938 this[offset + i] = (value / mul) &
0xFF
21941 return offset + byteLength
21944 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
21946 offset = offset
>>> 0
21947 byteLength = byteLength
>>> 0
21949 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
21950 checkInt(this, value, offset, byteLength, maxBytes,
0)
21953 var i = byteLength -
1
21955 this[offset + i] = value &
0xFF
21956 while (--i
>=
0 && (mul *=
0x100)) {
21957 this[offset + i] = (value / mul) &
0xFF
21960 return offset + byteLength
21963 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
21965 offset = offset
>>> 0
21966 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
21967 this[offset] = (value &
0xff)
21971 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
21973 offset = offset
>>> 0
21974 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
21975 this[offset] = (value &
0xff)
21976 this[offset +
1] = (value
>>> 8)
21980 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
21982 offset = offset
>>> 0
21983 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
21984 this[offset] = (value
>>> 8)
21985 this[offset +
1] = (value &
0xff)
21989 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
21991 offset = offset
>>> 0
21992 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
21993 this[offset +
3] = (value
>>> 24)
21994 this[offset +
2] = (value
>>> 16)
21995 this[offset +
1] = (value
>>> 8)
21996 this[offset] = (value &
0xff)
22000 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
22002 offset = offset
>>> 0
22003 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
22004 this[offset] = (value
>>> 24)
22005 this[offset +
1] = (value
>>> 16)
22006 this[offset +
2] = (value
>>> 8)
22007 this[offset +
3] = (value &
0xff)
22011 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
22013 offset = offset
>>> 0
22015 var limit = Math.pow(
2, (
8 * byteLength) -
1)
22017 checkInt(this, value, offset, byteLength, limit -
1, -limit)
22023 this[offset] = value &
0xFF
22024 while (++i < byteLength && (mul *=
0x100)) {
22025 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
22028 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
22031 return offset + byteLength
22034 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
22036 offset = offset
>>> 0
22038 var limit = Math.pow(
2, (
8 * byteLength) -
1)
22040 checkInt(this, value, offset, byteLength, limit -
1, -limit)
22043 var i = byteLength -
1
22046 this[offset + i] = value &
0xFF
22047 while (--i
>=
0 && (mul *=
0x100)) {
22048 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
22051 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
22054 return offset + byteLength
22057 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
22059 offset = offset
>>> 0
22060 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
22061 if (value <
0) value =
0xff + value +
1
22062 this[offset] = (value &
0xff)
22066 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
22068 offset = offset
>>> 0
22069 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
22070 this[offset] = (value &
0xff)
22071 this[offset +
1] = (value
>>> 8)
22075 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
22077 offset = offset
>>> 0
22078 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
22079 this[offset] = (value
>>> 8)
22080 this[offset +
1] = (value &
0xff)
22084 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
22086 offset = offset
>>> 0
22087 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
22088 this[offset] = (value &
0xff)
22089 this[offset +
1] = (value
>>> 8)
22090 this[offset +
2] = (value
>>> 16)
22091 this[offset +
3] = (value
>>> 24)
22095 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
22097 offset = offset
>>> 0
22098 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
22099 if (value <
0) value =
0xffffffff + value +
1
22100 this[offset] = (value
>>> 24)
22101 this[offset +
1] = (value
>>> 16)
22102 this[offset +
2] = (value
>>> 8)
22103 this[offset +
3] = (value &
0xff)
22107 function checkIEEE754 (buf, value, offset, ext, max, min) {
22108 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
22109 if (offset <
0) throw new RangeError('Index out of range')
22112 function writeFloat (buf, value, offset, littleEndian, noAssert) {
22114 offset = offset
>>> 0
22116 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
22118 ieee754.write(buf, value, offset, littleEndian,
23,
4)
22122 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
22123 return writeFloat(this, value, offset, true, noAssert)
22126 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
22127 return writeFloat(this, value, offset, false, noAssert)
22130 function writeDouble (buf, value, offset, littleEndian, noAssert) {
22132 offset = offset
>>> 0
22134 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
22136 ieee754.write(buf, value, offset, littleEndian,
52,
8)
22140 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
22141 return writeDouble(this, value, offset, true, noAssert)
22144 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
22145 return writeDouble(this, value, offset, false, noAssert)
22148 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
22149 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
22150 if (!start) start =
0
22151 if (!end && end !==
0) end = this.length
22152 if (targetStart
>= target.length) targetStart = target.length
22153 if (!targetStart) targetStart =
0
22154 if (end
> 0 && end < start) end = start
22156 // Copy
0 bytes; we're done
22157 if (end === start) return
0
22158 if (target.length ===
0 || this.length ===
0) return
0
22160 // Fatal error conditions
22161 if (targetStart <
0) {
22162 throw new RangeError('targetStart out of bounds')
22164 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
22165 if (end <
0) throw new RangeError('sourceEnd out of bounds')
22168 if (end
> this.length) end = this.length
22169 if (target.length - targetStart < end - start) {
22170 end = target.length - targetStart + start
22173 var len = end - start
22176 if (this === target && start < targetStart && targetStart < end) {
22177 // descending copy from end
22178 for (i = len -
1; i
>=
0; --i) {
22179 target[i + targetStart] = this[i + start]
22181 } else if (len <
1000) {
22182 // ascending copy from start
22183 for (i =
0; i < len; ++i) {
22184 target[i + targetStart] = this[i + start]
22187 Uint8Array.prototype.set.call(
22189 this.subarray(start, start + len),
22198 // buffer.fill(number[, offset[, end]])
22199 // buffer.fill(buffer[, offset[, end]])
22200 // buffer.fill(string[, offset[, end]][, encoding])
22201 Buffer.prototype.fill = function fill (val, start, end, encoding) {
22202 // Handle string cases:
22203 if (typeof val === 'string') {
22204 if (typeof start === 'string') {
22208 } else if (typeof end === 'string') {
22212 if (val.length ===
1) {
22213 var code = val.charCodeAt(
0)
22218 if (encoding !== undefined && typeof encoding !== 'string') {
22219 throw new TypeError('encoding must be a string')
22221 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
22222 throw new TypeError('Unknown encoding: ' + encoding)
22224 } else if (typeof val === 'number') {
22228 // Invalid ranges are not set to a default, so can range check early.
22229 if (start <
0 || this.length < start || this.length < end) {
22230 throw new RangeError('Out of range index')
22233 if (end <= start) {
22237 start = start
>>> 0
22238 end = end === undefined ? this.length : end
>>> 0
22243 if (typeof val === 'number') {
22244 for (i = start; i < end; ++i) {
22248 var bytes = Buffer.isBuffer(val)
22250 : new Buffer(val, encoding)
22251 var len = bytes.length
22252 for (i =
0; i < end - start; ++i) {
22253 this[i + start] = bytes[i % len]
22260 // HELPER FUNCTIONS
22261 // ================
22263 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
22265 function base64clean (str) {
22266 // Node strips out invalid characters like \n and \t from the string, base64-js does not
22267 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
22268 // Node converts strings with length <
2 to ''
22269 if (str.length <
2) return ''
22270 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
22271 while (str.length %
4 !==
0) {
22277 function stringtrim (str) {
22278 if (str.trim) return str.trim()
22279 return str.replace(/^\s+|\s+$/g, '')
22282 function toHex (n) {
22283 if (n <
16) return '
0' + n.toString(
16)
22284 return n.toString(
16)
22287 function utf8ToBytes (string, units) {
22288 units = units || Infinity
22290 var length = string.length
22291 var leadSurrogate = null
22294 for (var i =
0; i < length; ++i) {
22295 codePoint = string.charCodeAt(i)
22297 // is surrogate component
22298 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
22299 // last char was a lead
22300 if (!leadSurrogate) {
22302 if (codePoint
> 0xDBFF) {
22303 // unexpected trail
22304 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22306 } else if (i +
1 === length) {
22308 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22313 leadSurrogate = codePoint
22318 //
2 leads in a row
22319 if (codePoint <
0xDC00) {
22320 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22321 leadSurrogate = codePoint
22325 // valid surrogate pair
22326 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
22327 } else if (leadSurrogate) {
22328 // valid bmp char, but last char was a lead
22329 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22332 leadSurrogate = null
22335 if (codePoint <
0x80) {
22336 if ((units -=
1) <
0) break
22337 bytes.push(codePoint)
22338 } else if (codePoint <
0x800) {
22339 if ((units -=
2) <
0) break
22341 codePoint
>> 0x6 |
0xC0,
22342 codePoint &
0x3F |
0x80
22344 } else if (codePoint <
0x10000) {
22345 if ((units -=
3) <
0) break
22347 codePoint
>> 0xC |
0xE0,
22348 codePoint
>> 0x6 &
0x3F |
0x80,
22349 codePoint &
0x3F |
0x80
22351 } else if (codePoint <
0x110000) {
22352 if ((units -=
4) <
0) break
22354 codePoint
>> 0x12 |
0xF0,
22355 codePoint
>> 0xC &
0x3F |
0x80,
22356 codePoint
>> 0x6 &
0x3F |
0x80,
22357 codePoint &
0x3F |
0x80
22360 throw new Error('Invalid code point')
22367 function asciiToBytes (str) {
22369 for (var i =
0; i < str.length; ++i) {
22370 // Node's code seems to be doing this and not &
0x7F..
22371 byteArray.push(str.charCodeAt(i) &
0xFF)
22376 function utf16leToBytes (str, units) {
22379 for (var i =
0; i < str.length; ++i) {
22380 if ((units -=
2) <
0) break
22382 c = str.charCodeAt(i)
22392 function base64ToBytes (str) {
22393 return base64.toByteArray(base64clean(str))
22396 function blitBuffer (src, dst, offset, length) {
22397 for (var i =
0; i < length; ++i) {
22398 if ((i + offset
>= dst.length) || (i
>= src.length)) break
22399 dst[i + offset] = src[i]
22404 function isnan (val) {
22405 return val !== val // eslint-disable-line no-self-compare
22408 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
22409 (function (Buffer){
22410 // Copyright Joyent, Inc. and other Node contributors.
22412 // Permission is hereby granted, free of charge, to any person obtaining a
22413 // copy of this software and associated documentation files (the
22414 // "Software"), to deal in the Software without restriction, including
22415 // without limitation the rights to use, copy, modify, merge, publish,
22416 // distribute, sublicense, and/or sell copies of the Software, and to permit
22417 // persons to whom the Software is furnished to do so, subject to the
22418 // following conditions:
22420 // The above copyright notice and this permission notice shall be included
22421 // in all copies or substantial portions of the Software.
22423 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22424 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22425 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22426 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22427 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22428 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22429 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22431 // NOTE: These type checking functions intentionally don't use `instanceof`
22432 // because it is fragile and can be easily faked with `Object.create()`.
22434 function isArray(arg) {
22435 if (Array.isArray) {
22436 return Array.isArray(arg);
22438 return objectToString(arg) === '[object Array]';
22440 exports.isArray = isArray;
22442 function isBoolean(arg) {
22443 return typeof arg === 'boolean';
22445 exports.isBoolean = isBoolean;
22447 function isNull(arg) {
22448 return arg === null;
22450 exports.isNull = isNull;
22452 function isNullOrUndefined(arg) {
22453 return arg == null;
22455 exports.isNullOrUndefined = isNullOrUndefined;
22457 function isNumber(arg) {
22458 return typeof arg === 'number';
22460 exports.isNumber = isNumber;
22462 function isString(arg) {
22463 return typeof arg === 'string';
22465 exports.isString = isString;
22467 function isSymbol(arg) {
22468 return typeof arg === 'symbol';
22470 exports.isSymbol = isSymbol;
22472 function isUndefined(arg) {
22473 return arg === void
0;
22475 exports.isUndefined = isUndefined;
22477 function isRegExp(re) {
22478 return objectToString(re) === '[object RegExp]';
22480 exports.isRegExp = isRegExp;
22482 function isObject(arg) {
22483 return typeof arg === 'object' && arg !== null;
22485 exports.isObject = isObject;
22487 function isDate(d) {
22488 return objectToString(d) === '[object Date]';
22490 exports.isDate = isDate;
22492 function isError(e) {
22493 return (objectToString(e) === '[object Error]' || e instanceof Error);
22495 exports.isError = isError;
22497 function isFunction(arg) {
22498 return typeof arg === 'function';
22500 exports.isFunction = isFunction;
22502 function isPrimitive(arg) {
22503 return arg === null ||
22504 typeof arg === 'boolean' ||
22505 typeof arg === 'number' ||
22506 typeof arg === 'string' ||
22507 typeof arg === 'symbol' || // ES6 symbol
22508 typeof arg === 'undefined';
22510 exports.isPrimitive = isPrimitive;
22512 exports.isBuffer = Buffer.isBuffer;
22514 function objectToString(o) {
22515 return Object.prototype.toString.call(o);
22518 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
22519 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
22520 // Copyright Joyent, Inc. and other Node contributors.
22522 // Permission is hereby granted, free of charge, to any person obtaining a
22523 // copy of this software and associated documentation files (the
22524 // "Software"), to deal in the Software without restriction, including
22525 // without limitation the rights to use, copy, modify, merge, publish,
22526 // distribute, sublicense, and/or sell copies of the Software, and to permit
22527 // persons to whom the Software is furnished to do so, subject to the
22528 // following conditions:
22530 // The above copyright notice and this permission notice shall be included
22531 // in all copies or substantial portions of the Software.
22533 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22534 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22535 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22536 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22537 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22538 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22539 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22541 function EventEmitter() {
22542 this._events = this._events || {};
22543 this._maxListeners = this._maxListeners || undefined;
22545 module.exports = EventEmitter;
22547 // Backwards-compat with node
0.10.x
22548 EventEmitter.EventEmitter = EventEmitter;
22550 EventEmitter.prototype._events = undefined;
22551 EventEmitter.prototype._maxListeners = undefined;
22553 // By default EventEmitters will print a warning if more than
10 listeners are
22554 // added to it. This is a useful default which helps finding memory leaks.
22555 EventEmitter.defaultMaxListeners =
10;
22557 // Obviously not all Emitters should be limited to
10. This function allows
22558 // that to be increased. Set to zero for unlimited.
22559 EventEmitter.prototype.setMaxListeners = function(n) {
22560 if (!isNumber(n) || n <
0 || isNaN(n))
22561 throw TypeError('n must be a positive number');
22562 this._maxListeners = n;
22566 EventEmitter.prototype.emit = function(type) {
22567 var er, handler, len, args, i, listeners;
22572 // If there is no 'error' event listener then throw.
22573 if (type === 'error') {
22574 if (!this._events.error ||
22575 (isObject(this._events.error) && !this._events.error.length)) {
22577 if (er instanceof Error) {
22578 throw er; // Unhandled 'error' event
22580 // At least give some kind of context to the user
22581 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
22588 handler = this._events[type];
22590 if (isUndefined(handler))
22593 if (isFunction(handler)) {
22594 switch (arguments.length) {
22597 handler.call(this);
22600 handler.call(this, arguments[
1]);
22603 handler.call(this, arguments[
1], arguments[
2]);
22607 args = Array.prototype.slice.call(arguments,
1);
22608 handler.apply(this, args);
22610 } else if (isObject(handler)) {
22611 args = Array.prototype.slice.call(arguments,
1);
22612 listeners = handler.slice();
22613 len = listeners.length;
22614 for (i =
0; i < len; i++)
22615 listeners[i].apply(this, args);
22621 EventEmitter.prototype.addListener = function(type, listener) {
22624 if (!isFunction(listener))
22625 throw TypeError('listener must be a function');
22630 // To avoid recursion in the case that type === "newListener"! Before
22631 // adding it to the listeners, first emit "newListener".
22632 if (this._events.newListener)
22633 this.emit('newListener', type,
22634 isFunction(listener.listener) ?
22635 listener.listener : listener);
22637 if (!this._events[type])
22638 // Optimize the case of one listener. Don't need the extra array object.
22639 this._events[type] = listener;
22640 else if (isObject(this._events[type]))
22641 // If we've already got an array, just append.
22642 this._events[type].push(listener);
22644 // Adding the second element, need to change to array.
22645 this._events[type] = [this._events[type], listener];
22647 // Check for listener leak
22648 if (isObject(this._events[type]) && !this._events[type].warned) {
22649 if (!isUndefined(this._maxListeners)) {
22650 m = this._maxListeners;
22652 m = EventEmitter.defaultMaxListeners;
22655 if (m && m
> 0 && this._events[type].length
> m) {
22656 this._events[type].warned = true;
22657 console.error('(node) warning: possible EventEmitter memory ' +
22658 'leak detected. %d listeners added. ' +
22659 'Use emitter.setMaxListeners() to increase limit.',
22660 this._events[type].length);
22661 if (typeof console.trace === 'function') {
22662 // not supported in IE
10
22671 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
22673 EventEmitter.prototype.once = function(type, listener) {
22674 if (!isFunction(listener))
22675 throw TypeError('listener must be a function');
22680 this.removeListener(type, g);
22684 listener.apply(this, arguments);
22688 g.listener = listener;
22694 // emits a 'removeListener' event iff the listener was removed
22695 EventEmitter.prototype.removeListener = function(type, listener) {
22696 var list, position, length, i;
22698 if (!isFunction(listener))
22699 throw TypeError('listener must be a function');
22701 if (!this._events || !this._events[type])
22704 list = this._events[type];
22705 length = list.length;
22708 if (list === listener ||
22709 (isFunction(list.listener) && list.listener === listener)) {
22710 delete this._events[type];
22711 if (this._events.removeListener)
22712 this.emit('removeListener', type, listener);
22714 } else if (isObject(list)) {
22715 for (i = length; i--
> 0;) {
22716 if (list[i] === listener ||
22717 (list[i].listener && list[i].listener === listener)) {
22726 if (list.length ===
1) {
22728 delete this._events[type];
22730 list.splice(position,
1);
22733 if (this._events.removeListener)
22734 this.emit('removeListener', type, listener);
22740 EventEmitter.prototype.removeAllListeners = function(type) {
22741 var key, listeners;
22746 // not listening for removeListener, no need to emit
22747 if (!this._events.removeListener) {
22748 if (arguments.length ===
0)
22750 else if (this._events[type])
22751 delete this._events[type];
22755 // emit removeListener for all listeners on all events
22756 if (arguments.length ===
0) {
22757 for (key in this._events) {
22758 if (key === 'removeListener') continue;
22759 this.removeAllListeners(key);
22761 this.removeAllListeners('removeListener');
22766 listeners = this._events[type];
22768 if (isFunction(listeners)) {
22769 this.removeListener(type, listeners);
22770 } else if (listeners) {
22772 while (listeners.length)
22773 this.removeListener(type, listeners[listeners.length -
1]);
22775 delete this._events[type];
22780 EventEmitter.prototype.listeners = function(type) {
22782 if (!this._events || !this._events[type])
22784 else if (isFunction(this._events[type]))
22785 ret = [this._events[type]];
22787 ret = this._events[type].slice();
22791 EventEmitter.prototype.listenerCount = function(type) {
22792 if (this._events) {
22793 var evlistener = this._events[type];
22795 if (isFunction(evlistener))
22797 else if (evlistener)
22798 return evlistener.length;
22803 EventEmitter.listenerCount = function(emitter, type) {
22804 return emitter.listenerCount(type);
22807 function isFunction(arg) {
22808 return typeof arg === 'function';
22811 function isNumber(arg) {
22812 return typeof arg === 'number';
22815 function isObject(arg) {
22816 return typeof arg === 'object' && arg !== null;
22819 function isUndefined(arg) {
22820 return arg === void
0;
22823 },{}],
8:[function(require,module,exports){
22824 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
22826 var eLen = nBytes *
8 - mLen -
1
22827 var eMax = (
1 << eLen) -
1
22828 var eBias = eMax
>> 1
22830 var i = isLE ? (nBytes -
1) :
0
22831 var d = isLE ? -
1 :
1
22832 var s = buffer[offset + i]
22836 e = s & ((
1 << (-nBits)) -
1)
22839 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
22841 m = e & ((
1 << (-nBits)) -
1)
22844 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
22848 } else if (e === eMax) {
22849 return m ? NaN : ((s ? -
1 :
1) * Infinity)
22851 m = m + Math.pow(
2, mLen)
22854 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
22857 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
22859 var eLen = nBytes *
8 - mLen -
1
22860 var eMax = (
1 << eLen) -
1
22861 var eBias = eMax
>> 1
22862 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
22863 var i = isLE ?
0 : (nBytes -
1)
22864 var d = isLE ?
1 : -
1
22865 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
22867 value = Math.abs(value)
22869 if (isNaN(value) || value === Infinity) {
22870 m = isNaN(value) ?
1 :
0
22873 e = Math.floor(Math.log(value) / Math.LN2)
22874 if (value * (c = Math.pow(
2, -e)) <
1) {
22878 if (e + eBias
>=
1) {
22881 value += rt * Math.pow(
2,
1 - eBias)
22883 if (value * c
>=
2) {
22888 if (e + eBias
>= eMax) {
22891 } else if (e + eBias
>=
1) {
22892 m = (value * c -
1) * Math.pow(
2, mLen)
22895 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
22900 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
22902 e = (e << mLen) | m
22904 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
22906 buffer[offset + i - d] |= s *
128
22909 },{}],
9:[function(require,module,exports){
22910 if (typeof Object.create === 'function') {
22911 // implementation from standard node.js 'util' module
22912 module.exports = function inherits(ctor, superCtor) {
22913 ctor.super_ = superCtor
22914 ctor.prototype = Object.create(superCtor.prototype, {
22924 // old school shim for old browsers
22925 module.exports = function inherits(ctor, superCtor) {
22926 ctor.super_ = superCtor
22927 var TempCtor = function () {}
22928 TempCtor.prototype = superCtor.prototype
22929 ctor.prototype = new TempCtor()
22930 ctor.prototype.constructor = ctor
22934 },{}],
10:[function(require,module,exports){
22936 * Determine if an object is a Buffer
22938 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22942 // The _isBuffer check is for Safari
5-
7 support, because it's missing
22943 // Object.prototype.constructor. Remove this eventually
22944 module.exports = function (obj) {
22945 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
22948 function isBuffer (obj) {
22949 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
22952 // For Node v0.10 support. Remove this eventually.
22953 function isSlowBuffer (obj) {
22954 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
22957 },{}],
11:[function(require,module,exports){
22958 var toString = {}.toString;
22960 module.exports = Array.isArray || function (arr) {
22961 return toString.call(arr) == '[object Array]';
22964 },{}],
12:[function(require,module,exports){
22965 (function (process){
22968 if (!process.version ||
22969 process.version.indexOf('v0.') ===
0 ||
22970 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
22971 module.exports = nextTick;
22973 module.exports = process.nextTick;
22976 function nextTick(fn, arg1, arg2, arg3) {
22977 if (typeof fn !== 'function') {
22978 throw new TypeError('"callback" argument must be a function');
22980 var len = arguments.length;
22985 return process.nextTick(fn);
22987 return process.nextTick(function afterTickOne() {
22988 fn.call(null, arg1);
22991 return process.nextTick(function afterTickTwo() {
22992 fn.call(null, arg1, arg2);
22995 return process.nextTick(function afterTickThree() {
22996 fn.call(null, arg1, arg2, arg3);
22999 args = new Array(len -
1);
23001 while (i < args.length) {
23002 args[i++] = arguments[i];
23004 return process.nextTick(function afterTick() {
23005 fn.apply(null, args);
23010 }).call(this,require('_process'))
23011 },{"_process":
13}],
13:[function(require,module,exports){
23012 // shim for using process in browser
23013 var process = module.exports = {};
23015 // cached from whatever global is present so that test runners that stub it
23016 // don't break things. But we need to wrap it in a try catch in case it is
23017 // wrapped in strict mode code which doesn't define any globals. It's inside a
23018 // function because try/catches deoptimize in certain engines.
23020 var cachedSetTimeout;
23021 var cachedClearTimeout;
23023 function defaultSetTimout() {
23024 throw new Error('setTimeout has not been defined');
23026 function defaultClearTimeout () {
23027 throw new Error('clearTimeout has not been defined');
23031 if (typeof setTimeout === 'function') {
23032 cachedSetTimeout = setTimeout;
23034 cachedSetTimeout = defaultSetTimout;
23037 cachedSetTimeout = defaultSetTimout;
23040 if (typeof clearTimeout === 'function') {
23041 cachedClearTimeout = clearTimeout;
23043 cachedClearTimeout = defaultClearTimeout;
23046 cachedClearTimeout = defaultClearTimeout;
23049 function runTimeout(fun) {
23050 if (cachedSetTimeout === setTimeout) {
23051 //normal enviroments in sane situations
23052 return setTimeout(fun,
0);
23054 // if setTimeout wasn't available but was latter defined
23055 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
23056 cachedSetTimeout = setTimeout;
23057 return setTimeout(fun,
0);
23060 // when when somebody has screwed with setTimeout but no I.E. maddness
23061 return cachedSetTimeout(fun,
0);
23064 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
23065 return cachedSetTimeout.call(null, fun,
0);
23067 // 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
23068 return cachedSetTimeout.call(this, fun,
0);
23074 function runClearTimeout(marker) {
23075 if (cachedClearTimeout === clearTimeout) {
23076 //normal enviroments in sane situations
23077 return clearTimeout(marker);
23079 // if clearTimeout wasn't available but was latter defined
23080 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
23081 cachedClearTimeout = clearTimeout;
23082 return clearTimeout(marker);
23085 // when when somebody has screwed with setTimeout but no I.E. maddness
23086 return cachedClearTimeout(marker);
23089 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
23090 return cachedClearTimeout.call(null, marker);
23092 // 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.
23093 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
23094 return cachedClearTimeout.call(this, marker);
23102 var draining = false;
23104 var queueIndex = -
1;
23106 function cleanUpNextTick() {
23107 if (!draining || !currentQueue) {
23111 if (currentQueue.length) {
23112 queue = currentQueue.concat(queue);
23116 if (queue.length) {
23121 function drainQueue() {
23125 var timeout = runTimeout(cleanUpNextTick);
23128 var len = queue.length;
23130 currentQueue = queue;
23132 while (++queueIndex < len) {
23133 if (currentQueue) {
23134 currentQueue[queueIndex].run();
23138 len = queue.length;
23140 currentQueue = null;
23142 runClearTimeout(timeout);
23145 process.nextTick = function (fun) {
23146 var args = new Array(arguments.length -
1);
23147 if (arguments.length
> 1) {
23148 for (var i =
1; i < arguments.length; i++) {
23149 args[i -
1] = arguments[i];
23152 queue.push(new Item(fun, args));
23153 if (queue.length ===
1 && !draining) {
23154 runTimeout(drainQueue);
23158 // v8 likes predictible objects
23159 function Item(fun, array) {
23161 this.array = array;
23163 Item.prototype.run = function () {
23164 this.fun.apply(null, this.array);
23166 process.title = 'browser';
23167 process.browser = true;
23170 process.version = ''; // empty string to avoid regexp issues
23171 process.versions = {};
23176 process.addListener = noop;
23177 process.once = noop;
23178 process.off = noop;
23179 process.removeListener = noop;
23180 process.removeAllListeners = noop;
23181 process.emit = noop;
23183 process.binding = function (name) {
23184 throw new Error('process.binding is not supported');
23187 process.cwd = function () { return '/' };
23188 process.chdir = function (dir) {
23189 throw new Error('process.chdir is not supported');
23191 process.umask = function() { return
0; };
23193 },{}],
14:[function(require,module,exports){
23194 module.exports = require(
"./lib/_stream_duplex.js")
23196 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
23197 // a duplex stream is just a stream that is both readable and writable.
23198 // Since JS doesn't have multiple prototypal inheritance, this class
23199 // prototypally inherits from Readable, and then parasitically from
23206 var objectKeys = Object.keys || function (obj) {
23208 for (var key in obj) {
23214 module.exports = Duplex;
23217 var processNextTick = require('process-nextick-args');
23221 var util = require('core-util-is');
23222 util.inherits = require('inherits');
23225 var Readable = require('./_stream_readable');
23226 var Writable = require('./_stream_writable');
23228 util.inherits(Duplex, Readable);
23230 var keys = objectKeys(Writable.prototype);
23231 for (var v =
0; v < keys.length; v++) {
23232 var method = keys[v];
23233 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
23236 function Duplex(options) {
23237 if (!(this instanceof Duplex)) return new Duplex(options);
23239 Readable.call(this, options);
23240 Writable.call(this, options);
23242 if (options && options.readable === false) this.readable = false;
23244 if (options && options.writable === false) this.writable = false;
23246 this.allowHalfOpen = true;
23247 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
23249 this.once('end', onend);
23252 // the no-half-open enforcer
23254 // if we allow half-open state, or if the writable side ended,
23256 if (this.allowHalfOpen || this._writableState.ended) return;
23258 // no more data can be written.
23259 // But allow more writes to happen in this tick.
23260 processNextTick(onEndNT, this);
23263 function onEndNT(self) {
23267 function forEach(xs, f) {
23268 for (var i =
0, l = xs.length; i < l; i++) {
23272 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
23273 // a passthrough stream.
23274 // basically just the most minimal sort of Transform stream.
23275 // Every written chunk gets output as-is.
23279 module.exports = PassThrough;
23281 var Transform = require('./_stream_transform');
23284 var util = require('core-util-is');
23285 util.inherits = require('inherits');
23288 util.inherits(PassThrough, Transform);
23290 function PassThrough(options) {
23291 if (!(this instanceof PassThrough)) return new PassThrough(options);
23293 Transform.call(this, options);
23296 PassThrough.prototype._transform = function (chunk, encoding, cb) {
23299 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
23300 (function (process){
23303 module.exports = Readable;
23306 var processNextTick = require('process-nextick-args');
23310 var isArray = require('isarray');
23317 Readable.ReadableState = ReadableState;
23320 var EE = require('events').EventEmitter;
23322 var EElistenerCount = function (emitter, type) {
23323 return emitter.listeners(type).length;
23331 Stream = require('st' + 'ream');
23332 } catch (_) {} finally {
23333 if (!Stream) Stream = require('events').EventEmitter;
23338 var Buffer = require('buffer').Buffer;
23340 var bufferShim = require('buffer-shims');
23344 var util = require('core-util-is');
23345 util.inherits = require('inherits');
23349 var debugUtil = require('util');
23350 var debug = void
0;
23351 if (debugUtil && debugUtil.debuglog) {
23352 debug = debugUtil.debuglog('stream');
23354 debug = function () {};
23358 var BufferList = require('./internal/streams/BufferList');
23361 util.inherits(Readable, Stream);
23363 function prependListener(emitter, event, fn) {
23364 // Sadly this is not cacheable as some libraries bundle their own
23365 // event emitter implementation with them.
23366 if (typeof emitter.prependListener === 'function') {
23367 return emitter.prependListener(event, fn);
23369 // This is a hack to make sure that our error handler is attached before any
23370 // userland ones. NEVER DO THIS. This is here only because this code needs
23371 // to continue to work with older versions of Node.js that do not include
23372 // the prependListener() method. The goal is to eventually remove this hack.
23373 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]];
23377 function ReadableState(options, stream) {
23378 Duplex = Duplex || require('./_stream_duplex');
23380 options = options || {};
23382 // object stream flag. Used to make read(n) ignore n and to
23383 // make all the buffer merging and length checks go away
23384 this.objectMode = !!options.objectMode;
23386 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
23388 // the point at which it stops calling _read() to fill the buffer
23389 // Note:
0 is a valid value, means "don't call _read preemptively ever"
23390 var hwm = options.highWaterMark;
23391 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
23392 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
23395 this.highWaterMark = ~ ~this.highWaterMark;
23397 // A linked list is used to store data chunks instead of an array because the
23398 // linked list can remove elements from the beginning faster than
23400 this.buffer = new BufferList();
23403 this.pipesCount =
0;
23404 this.flowing = null;
23405 this.ended = false;
23406 this.endEmitted = false;
23407 this.reading = false;
23409 // a flag to be able to tell if the onwrite cb is called immediately,
23410 // or on a later tick. We set this to true at first, because any
23411 // actions that shouldn't happen until "later" should generally also
23412 // not happen before the first write call.
23415 // whenever we return null, then we set a flag to say
23416 // that we're awaiting a 'readable' event emission.
23417 this.needReadable = false;
23418 this.emittedReadable = false;
23419 this.readableListening = false;
23420 this.resumeScheduled = false;
23422 // Crypto is kind of old and crusty. Historically, its default string
23423 // encoding is 'binary' so we have to make this configurable.
23424 // Everything else in the universe uses 'utf8', though.
23425 this.defaultEncoding = options.defaultEncoding || 'utf8';
23427 // when piping, we only care about 'readable' events that happen
23428 // after read()ing all the bytes and not getting any pushback.
23429 this.ranOut = false;
23431 // the number of writers that are awaiting a drain event in .pipe()s
23432 this.awaitDrain =
0;
23434 // if true, a maybeReadMore has been scheduled
23435 this.readingMore = false;
23437 this.decoder = null;
23438 this.encoding = null;
23439 if (options.encoding) {
23440 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
23441 this.decoder = new StringDecoder(options.encoding);
23442 this.encoding = options.encoding;
23446 function Readable(options) {
23447 Duplex = Duplex || require('./_stream_duplex');
23449 if (!(this instanceof Readable)) return new Readable(options);
23451 this._readableState = new ReadableState(options, this);
23454 this.readable = true;
23456 if (options && typeof options.read === 'function') this._read = options.read;
23461 // Manually shove something into the read() buffer.
23462 // This returns true if the highWaterMark has not been hit yet,
23463 // similar to how Writable.write() returns true if you should
23464 // write() some more.
23465 Readable.prototype.push = function (chunk, encoding) {
23466 var state = this._readableState;
23468 if (!state.objectMode && typeof chunk === 'string') {
23469 encoding = encoding || state.defaultEncoding;
23470 if (encoding !== state.encoding) {
23471 chunk = bufferShim.from(chunk, encoding);
23476 return readableAddChunk(this, state, chunk, encoding, false);
23479 // Unshift should *always* be something directly out of read()
23480 Readable.prototype.unshift = function (chunk) {
23481 var state = this._readableState;
23482 return readableAddChunk(this, state, chunk, '', true);
23485 Readable.prototype.isPaused = function () {
23486 return this._readableState.flowing === false;
23489 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
23490 var er = chunkInvalid(state, chunk);
23492 stream.emit('error', er);
23493 } else if (chunk === null) {
23494 state.reading = false;
23495 onEofChunk(stream, state);
23496 } else if (state.objectMode || chunk && chunk.length
> 0) {
23497 if (state.ended && !addToFront) {
23498 var e = new Error('stream.push() after EOF');
23499 stream.emit('error', e);
23500 } else if (state.endEmitted && addToFront) {
23501 var _e = new Error('stream.unshift() after end event');
23502 stream.emit('error', _e);
23505 if (state.decoder && !addToFront && !encoding) {
23506 chunk = state.decoder.write(chunk);
23507 skipAdd = !state.objectMode && chunk.length ===
0;
23510 if (!addToFront) state.reading = false;
23512 // Don't add to the buffer if we've decoded to an empty string chunk and
23513 // we're not in object mode
23515 // if we want the data now, just emit it.
23516 if (state.flowing && state.length ===
0 && !state.sync) {
23517 stream.emit('data', chunk);
23520 // update the buffer info.
23521 state.length += state.objectMode ?
1 : chunk.length;
23522 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
23524 if (state.needReadable) emitReadable(stream);
23528 maybeReadMore(stream, state);
23530 } else if (!addToFront) {
23531 state.reading = false;
23534 return needMoreData(state);
23537 // if it's past the high water mark, we can push in some more.
23538 // Also, if we have no data yet, we can stand some
23539 // more bytes. This is to work around cases where hwm=
0,
23540 // such as the repl. Also, if the push() triggered a
23541 // readable event, and the user called read(largeNumber) such that
23542 // needReadable was set, then we ought to push more, so that another
23543 // 'readable' event will be triggered.
23544 function needMoreData(state) {
23545 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
23548 // backwards compatibility.
23549 Readable.prototype.setEncoding = function (enc) {
23550 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
23551 this._readableState.decoder = new StringDecoder(enc);
23552 this._readableState.encoding = enc;
23556 // Don't raise the hwm
> 8MB
23557 var MAX_HWM =
0x800000;
23558 function computeNewHighWaterMark(n) {
23559 if (n
>= MAX_HWM) {
23562 // Get the next highest power of
2 to prevent increasing hwm excessively in
23575 // This function is designed to be inlinable, so please take care when making
23576 // changes to the function body.
23577 function howMuchToRead(n, state) {
23578 if (n <=
0 || state.length ===
0 && state.ended) return
0;
23579 if (state.objectMode) return
1;
23581 // Only flow one buffer at a time
23582 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
23584 // If we're asking for more than the current hwm, then raise the hwm.
23585 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
23586 if (n <= state.length) return n;
23587 // Don't have enough
23588 if (!state.ended) {
23589 state.needReadable = true;
23592 return state.length;
23595 // you can override either this method, or the async _read(n) below.
23596 Readable.prototype.read = function (n) {
23598 n = parseInt(n,
10);
23599 var state = this._readableState;
23602 if (n !==
0) state.emittedReadable = false;
23604 // if we're doing read(
0) to trigger a readable event, but we
23605 // already have a bunch of data in the buffer, then just trigger
23606 // the 'readable' event and move on.
23607 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
23608 debug('read: emitReadable', state.length, state.ended);
23609 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
23613 n = howMuchToRead(n, state);
23615 // if we've ended, and we're now clear, then finish it up.
23616 if (n ===
0 && state.ended) {
23617 if (state.length ===
0) endReadable(this);
23621 // All the actual chunk generation logic needs to be
23622 // *below* the call to _read. The reason is that in certain
23623 // synthetic stream cases, such as passthrough streams, _read
23624 // may be a completely synchronous operation which may change
23625 // the state of the read buffer, providing enough data when
23626 // before there was *not* enough.
23628 // So, the steps are:
23629 //
1. Figure out what the state of things will be after we do
23630 // a read from the buffer.
23632 //
2. If that resulting state will trigger a _read, then call _read.
23633 // Note that this may be asynchronous, or synchronous. Yes, it is
23634 // deeply ugly to write APIs this way, but that still doesn't mean
23635 // that the Readable class should behave improperly, as streams are
23636 // designed to be sync/async agnostic.
23637 // Take note if the _read call is sync or async (ie, if the read call
23638 // has returned yet), so that we know whether or not it's safe to emit
23641 //
3. Actually pull the requested chunks out of the buffer and return.
23643 // if we need a readable event, then we need to do some reading.
23644 var doRead = state.needReadable;
23645 debug('need readable', doRead);
23647 // if we currently have less than the highWaterMark, then also read some
23648 if (state.length ===
0 || state.length - n < state.highWaterMark) {
23650 debug('length less than watermark', doRead);
23653 // however, if we've ended, then there's no point, and if we're already
23654 // reading, then it's unnecessary.
23655 if (state.ended || state.reading) {
23657 debug('reading or ended', doRead);
23658 } else if (doRead) {
23660 state.reading = true;
23662 // if the length is currently zero, then we *need* a readable event.
23663 if (state.length ===
0) state.needReadable = true;
23664 // call internal read method
23665 this._read(state.highWaterMark);
23666 state.sync = false;
23667 // If _read pushed data synchronously, then `reading` will be false,
23668 // and we need to re-evaluate how much data we can return to the user.
23669 if (!state.reading) n = howMuchToRead(nOrig, state);
23673 if (n
> 0) ret = fromList(n, state);else ret = null;
23675 if (ret === null) {
23676 state.needReadable = true;
23682 if (state.length ===
0) {
23683 // If we have nothing in the buffer, then we want to know
23684 // as soon as we *do* get something into the buffer.
23685 if (!state.ended) state.needReadable = true;
23687 // If we tried to read() past the EOF, then emit end on the next tick.
23688 if (nOrig !== n && state.ended) endReadable(this);
23691 if (ret !== null) this.emit('data', ret);
23696 function chunkInvalid(state, chunk) {
23698 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
23699 er = new TypeError('Invalid non-string/buffer chunk');
23704 function onEofChunk(stream, state) {
23705 if (state.ended) return;
23706 if (state.decoder) {
23707 var chunk = state.decoder.end();
23708 if (chunk && chunk.length) {
23709 state.buffer.push(chunk);
23710 state.length += state.objectMode ?
1 : chunk.length;
23713 state.ended = true;
23715 // emit 'readable' now to make sure it gets picked up.
23716 emitReadable(stream);
23719 // Don't emit readable right away in sync mode, because this can trigger
23720 // another read() call =
> stack overflow. This way, it might trigger
23721 // a nextTick recursion warning, but that's not so bad.
23722 function emitReadable(stream) {
23723 var state = stream._readableState;
23724 state.needReadable = false;
23725 if (!state.emittedReadable) {
23726 debug('emitReadable', state.flowing);
23727 state.emittedReadable = true;
23728 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
23732 function emitReadable_(stream) {
23733 debug('emit readable');
23734 stream.emit('readable');
23738 // at this point, the user has presumably seen the 'readable' event,
23739 // and called read() to consume some data. that may have triggered
23740 // in turn another _read(n) call, in which case reading = true if
23741 // it's in progress.
23742 // However, if we're not ended, or reading, and the length < hwm,
23743 // then go ahead and try to read some more preemptively.
23744 function maybeReadMore(stream, state) {
23745 if (!state.readingMore) {
23746 state.readingMore = true;
23747 processNextTick(maybeReadMore_, stream, state);
23751 function maybeReadMore_(stream, state) {
23752 var len = state.length;
23753 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
23754 debug('maybeReadMore read
0');
23756 if (len === state.length)
23757 // didn't get any data, stop spinning.
23758 break;else len = state.length;
23760 state.readingMore = false;
23763 // abstract method. to be overridden in specific implementation classes.
23764 // call cb(er, data) where data is <= n in length.
23765 // for virtual (non-string, non-buffer) streams, "length" is somewhat
23766 // arbitrary, and perhaps not very meaningful.
23767 Readable.prototype._read = function (n) {
23768 this.emit('error', new Error('_read() is not implemented'));
23771 Readable.prototype.pipe = function (dest, pipeOpts) {
23773 var state = this._readableState;
23775 switch (state.pipesCount) {
23777 state.pipes = dest;
23780 state.pipes = [state.pipes, dest];
23783 state.pipes.push(dest);
23786 state.pipesCount +=
1;
23787 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
23789 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
23791 var endFn = doEnd ? onend : cleanup;
23792 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
23794 dest.on('unpipe', onunpipe);
23795 function onunpipe(readable) {
23797 if (readable === src) {
23807 // when the dest drains, it reduces the awaitDrain counter
23808 // on the source. This would be more elegant with a .once()
23809 // handler in flow(), but adding and removing repeatedly is
23811 var ondrain = pipeOnDrain(src);
23812 dest.on('drain', ondrain);
23814 var cleanedUp = false;
23815 function cleanup() {
23817 // cleanup event handlers once the pipe is broken
23818 dest.removeListener('close', onclose);
23819 dest.removeListener('finish', onfinish);
23820 dest.removeListener('drain', ondrain);
23821 dest.removeListener('error', onerror);
23822 dest.removeListener('unpipe', onunpipe);
23823 src.removeListener('end', onend);
23824 src.removeListener('end', cleanup);
23825 src.removeListener('data', ondata);
23829 // if the reader is waiting for a drain event from this
23830 // specific writer, then it would cause it to never start
23832 // So, if this is awaiting a drain, then we just call it now.
23833 // If we don't know, then assume that we are waiting for one.
23834 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
23837 // If the user pushes more data while we're writing to dest then we'll end up
23838 // in ondata again. However, we only want to increase awaitDrain once because
23839 // dest will only emit one 'drain' event for the multiple writes.
23840 // =
> Introduce a guard on increasing awaitDrain.
23841 var increasedAwaitDrain = false;
23842 src.on('data', ondata);
23843 function ondata(chunk) {
23845 increasedAwaitDrain = false;
23846 var ret = dest.write(chunk);
23847 if (false === ret && !increasedAwaitDrain) {
23848 // If the user unpiped during `dest.write()`, it is possible
23849 // to get stuck in a permanently paused state if that write
23850 // also returned false.
23851 // =
> Check whether `dest` is still a piping destination.
23852 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
23853 debug('false write response, pause', src._readableState.awaitDrain);
23854 src._readableState.awaitDrain++;
23855 increasedAwaitDrain = true;
23861 // if the dest has an error, then stop piping into it.
23862 // however, don't suppress the throwing behavior for this.
23863 function onerror(er) {
23864 debug('onerror', er);
23866 dest.removeListener('error', onerror);
23867 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
23870 // Make sure our error handler is attached before userland ones.
23871 prependListener(dest, 'error', onerror);
23873 // Both close and finish should trigger unpipe, but only once.
23874 function onclose() {
23875 dest.removeListener('finish', onfinish);
23878 dest.once('close', onclose);
23879 function onfinish() {
23881 dest.removeListener('close', onclose);
23884 dest.once('finish', onfinish);
23886 function unpipe() {
23891 // tell the dest that it's being piped to
23892 dest.emit('pipe', src);
23894 // start the flow if it hasn't been started already.
23895 if (!state.flowing) {
23896 debug('pipe resume');
23903 function pipeOnDrain(src) {
23904 return function () {
23905 var state = src._readableState;
23906 debug('pipeOnDrain', state.awaitDrain);
23907 if (state.awaitDrain) state.awaitDrain--;
23908 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
23909 state.flowing = true;
23915 Readable.prototype.unpipe = function (dest) {
23916 var state = this._readableState;
23918 // if we're not piping anywhere, then do nothing.
23919 if (state.pipesCount ===
0) return this;
23921 // just one destination. most common case.
23922 if (state.pipesCount ===
1) {
23923 // passed in one, but it's not the right one.
23924 if (dest && dest !== state.pipes) return this;
23926 if (!dest) dest = state.pipes;
23929 state.pipes = null;
23930 state.pipesCount =
0;
23931 state.flowing = false;
23932 if (dest) dest.emit('unpipe', this);
23936 // slow case. multiple pipe destinations.
23940 var dests = state.pipes;
23941 var len = state.pipesCount;
23942 state.pipes = null;
23943 state.pipesCount =
0;
23944 state.flowing = false;
23946 for (var i =
0; i < len; i++) {
23947 dests[i].emit('unpipe', this);
23951 // try to find the right one.
23952 var index = indexOf(state.pipes, dest);
23953 if (index === -
1) return this;
23955 state.pipes.splice(index,
1);
23956 state.pipesCount -=
1;
23957 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
23959 dest.emit('unpipe', this);
23964 // set up data events if they are asked for
23965 // Ensure readable listeners eventually get something
23966 Readable.prototype.on = function (ev, fn) {
23967 var res = Stream.prototype.on.call(this, ev, fn);
23969 if (ev === 'data') {
23970 // Start flowing on next tick if stream isn't explicitly paused
23971 if (this._readableState.flowing !== false) this.resume();
23972 } else if (ev === 'readable') {
23973 var state = this._readableState;
23974 if (!state.endEmitted && !state.readableListening) {
23975 state.readableListening = state.needReadable = true;
23976 state.emittedReadable = false;
23977 if (!state.reading) {
23978 processNextTick(nReadingNextTick, this);
23979 } else if (state.length) {
23980 emitReadable(this, state);
23987 Readable.prototype.addListener = Readable.prototype.on;
23989 function nReadingNextTick(self) {
23990 debug('readable nexttick read
0');
23994 // pause() and resume() are remnants of the legacy readable stream API
23995 // If the user uses them, then switch into old mode.
23996 Readable.prototype.resume = function () {
23997 var state = this._readableState;
23998 if (!state.flowing) {
24000 state.flowing = true;
24001 resume(this, state);
24006 function resume(stream, state) {
24007 if (!state.resumeScheduled) {
24008 state.resumeScheduled = true;
24009 processNextTick(resume_, stream, state);
24013 function resume_(stream, state) {
24014 if (!state.reading) {
24015 debug('resume read
0');
24019 state.resumeScheduled = false;
24020 state.awaitDrain =
0;
24021 stream.emit('resume');
24023 if (state.flowing && !state.reading) stream.read(
0);
24026 Readable.prototype.pause = function () {
24027 debug('call pause flowing=%j', this._readableState.flowing);
24028 if (false !== this._readableState.flowing) {
24030 this._readableState.flowing = false;
24031 this.emit('pause');
24036 function flow(stream) {
24037 var state = stream._readableState;
24038 debug('flow', state.flowing);
24039 while (state.flowing && stream.read() !== null) {}
24042 // wrap an old-style stream as the async data source.
24043 // This is *not* part of the readable stream interface.
24044 // It is an ugly unfortunate mess of history.
24045 Readable.prototype.wrap = function (stream) {
24046 var state = this._readableState;
24047 var paused = false;
24050 stream.on('end', function () {
24051 debug('wrapped end');
24052 if (state.decoder && !state.ended) {
24053 var chunk = state.decoder.end();
24054 if (chunk && chunk.length) self.push(chunk);
24060 stream.on('data', function (chunk) {
24061 debug('wrapped data');
24062 if (state.decoder) chunk = state.decoder.write(chunk);
24064 // don't skip over falsy values in objectMode
24065 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
24067 var ret = self.push(chunk);
24074 // proxy all the other methods.
24075 // important when wrapping filters and duplexes.
24076 for (var i in stream) {
24077 if (this[i] === undefined && typeof stream[i] === 'function') {
24078 this[i] = function (method) {
24079 return function () {
24080 return stream[method].apply(stream, arguments);
24086 // proxy certain important events.
24087 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
24088 forEach(events, function (ev) {
24089 stream.on(ev, self.emit.bind(self, ev));
24092 // when we try to consume some more bytes, simply unpause the
24093 // underlying stream.
24094 self._read = function (n) {
24095 debug('wrapped _read', n);
24105 // exposed for testing purposes only.
24106 Readable._fromList = fromList;
24108 // Pluck off n bytes from an array of buffers.
24109 // Length is the combined lengths of all the buffers in the list.
24110 // This function is designed to be inlinable, so please take care when making
24111 // changes to the function body.
24112 function fromList(n, state) {
24113 // nothing buffered
24114 if (state.length ===
0) return null;
24117 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
24118 // read it all, truncate the list
24119 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);
24120 state.buffer.clear();
24122 // read part of list
24123 ret = fromListPartial(n, state.buffer, state.decoder);
24129 // Extracts only enough buffered data to satisfy the amount requested.
24130 // This function is designed to be inlinable, so please take care when making
24131 // changes to the function body.
24132 function fromListPartial(n, list, hasStrings) {
24134 if (n < list.head.data.length) {
24135 // slice is the same for buffers and strings
24136 ret = list.head.data.slice(
0, n);
24137 list.head.data = list.head.data.slice(n);
24138 } else if (n === list.head.data.length) {
24139 // first chunk is a perfect match
24140 ret = list.shift();
24142 // result spans more than one buffer
24143 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
24148 // Copies a specified amount of characters from the list of buffered data
24150 // This function is designed to be inlinable, so please take care when making
24151 // changes to the function body.
24152 function copyFromBufferString(n, list) {
24157 while (p = p.next) {
24159 var nb = n
> str.length ? str.length : n;
24160 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
24163 if (nb === str.length) {
24165 if (p.next) list.head = p.next;else list.head = list.tail = null;
24168 p.data = str.slice(nb);
24178 // Copies a specified amount of bytes from the list of buffered data chunks.
24179 // This function is designed to be inlinable, so please take care when making
24180 // changes to the function body.
24181 function copyFromBuffer(n, list) {
24182 var ret = bufferShim.allocUnsafe(n);
24186 n -= p.data.length;
24187 while (p = p.next) {
24189 var nb = n
> buf.length ? buf.length : n;
24190 buf.copy(ret, ret.length - n,
0, nb);
24193 if (nb === buf.length) {
24195 if (p.next) list.head = p.next;else list.head = list.tail = null;
24198 p.data = buf.slice(nb);
24208 function endReadable(stream) {
24209 var state = stream._readableState;
24211 // If we get here before consuming all the bytes, then that is a
24212 // bug in node. Should never happen.
24213 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
24215 if (!state.endEmitted) {
24216 state.ended = true;
24217 processNextTick(endReadableNT, state, stream);
24221 function endReadableNT(state, stream) {
24222 // Check that we didn't get one last unshift.
24223 if (!state.endEmitted && state.length ===
0) {
24224 state.endEmitted = true;
24225 stream.readable = false;
24226 stream.emit('end');
24230 function forEach(xs, f) {
24231 for (var i =
0, l = xs.length; i < l; i++) {
24236 function indexOf(xs, x) {
24237 for (var i =
0, l = xs.length; i < l; i++) {
24238 if (xs[i] === x) return i;
24242 }).call(this,require('_process'))
24243 },{
"./_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){
24244 // a transform stream is a readable/writable stream where you do
24245 // something with the data. Sometimes it's called a
"filter",
24246 // but that's not a great name for it, since that implies a thing where
24247 // some bits pass through, and others are simply ignored. (That would
24248 // be a valid example of a transform, of course.)
24250 // While the output is causally related to the input, it's not a
24251 // necessarily symmetric or synchronous transformation. For example,
24252 // a zlib stream might take multiple plain-text writes(), and then
24253 // emit a single compressed chunk some time in the future.
24255 // Here's how this works:
24257 // The Transform stream has all the aspects of the readable and writable
24258 // stream classes. When you write(chunk), that calls _write(chunk,cb)
24259 // internally, and returns false if there's a lot of pending writes
24260 // buffered up. When you call read(), that calls _read(n) until
24261 // there's enough pending readable data buffered up.
24263 // In a transform stream, the written data is placed in a buffer. When
24264 // _read(n) is called, it transforms the queued up data, calling the
24265 // buffered _write cb's as it consumes chunks. If consuming a single
24266 // written chunk would result in multiple output chunks, then the first
24267 // outputted bit calls the readcb, and subsequent chunks just go into
24268 // the read buffer, and will cause it to emit 'readable' if necessary.
24270 // This way, back-pressure is actually determined by the reading side,
24271 // since _read has to be called to start processing a new chunk. However,
24272 // a pathological inflate type of transform can cause excessive buffering
24273 // here. For example, imagine a stream where every byte of input is
24274 // interpreted as an integer from
0-
255, and then results in that many
24275 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
24276 //
1kb of data being output. In this case, you could write a very small
24277 // amount of input, and end up with a very large amount of output. In
24278 // such a pathological inflating mechanism, there'd be no way to tell
24279 // the system to stop doing the transform. A single
4MB write could
24280 // cause the system to run out of memory.
24282 // However, even in such a pathological case, only a single written chunk
24283 // would be consumed, and then the rest would wait (un-transformed) until
24284 // the results of the previous transformed chunk were consumed.
24288 module.exports = Transform;
24290 var Duplex = require('./_stream_duplex');
24293 var util = require('core-util-is');
24294 util.inherits = require('inherits');
24297 util.inherits(Transform, Duplex);
24299 function TransformState(stream) {
24300 this.afterTransform = function (er, data) {
24301 return afterTransform(stream, er, data);
24304 this.needTransform = false;
24305 this.transforming = false;
24306 this.writecb = null;
24307 this.writechunk = null;
24308 this.writeencoding = null;
24311 function afterTransform(stream, er, data) {
24312 var ts = stream._transformState;
24313 ts.transforming = false;
24315 var cb = ts.writecb;
24317 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
24319 ts.writechunk = null;
24322 if (data !== null && data !== undefined) stream.push(data);
24326 var rs = stream._readableState;
24327 rs.reading = false;
24328 if (rs.needReadable || rs.length < rs.highWaterMark) {
24329 stream._read(rs.highWaterMark);
24333 function Transform(options) {
24334 if (!(this instanceof Transform)) return new Transform(options);
24336 Duplex.call(this, options);
24338 this._transformState = new TransformState(this);
24342 // start out asking for a readable event once data is transformed.
24343 this._readableState.needReadable = true;
24345 // we have implemented the _read method, and done the other things
24346 // that Readable wants before the first _read call, so unset the
24347 // sync guard flag.
24348 this._readableState.sync = false;
24351 if (typeof options.transform === 'function') this._transform = options.transform;
24353 if (typeof options.flush === 'function') this._flush = options.flush;
24356 // When the writable side finishes, then flush out anything remaining.
24357 this.once('prefinish', function () {
24358 if (typeof this._flush === 'function') this._flush(function (er, data) {
24359 done(stream, er, data);
24360 });else done(stream);
24364 Transform.prototype.push = function (chunk, encoding) {
24365 this._transformState.needTransform = false;
24366 return Duplex.prototype.push.call(this, chunk, encoding);
24369 // This is the part where you do stuff!
24370 // override this function in implementation classes.
24371 // 'chunk' is an input chunk.
24373 // Call `push(newChunk)` to pass along transformed output
24374 // to the readable side. You may call 'push' zero or more times.
24376 // Call `cb(err)` when you are done with this chunk. If you pass
24377 // an error, then that'll put the hurt on the whole operation. If you
24378 // never call cb(), then you'll never get another chunk.
24379 Transform.prototype._transform = function (chunk, encoding, cb) {
24380 throw new Error('_transform() is not implemented');
24383 Transform.prototype._write = function (chunk, encoding, cb) {
24384 var ts = this._transformState;
24386 ts.writechunk = chunk;
24387 ts.writeencoding = encoding;
24388 if (!ts.transforming) {
24389 var rs = this._readableState;
24390 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
24394 // Doesn't matter what the args are here.
24395 // _transform does all the work.
24396 // That we got here means that the readable side wants more data.
24397 Transform.prototype._read = function (n) {
24398 var ts = this._transformState;
24400 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
24401 ts.transforming = true;
24402 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
24404 // mark that we need a transform, so that any data that comes in
24405 // will get processed, now that we've asked for it.
24406 ts.needTransform = true;
24410 function done(stream, er, data) {
24411 if (er) return stream.emit('error', er);
24413 if (data !== null && data !== undefined) stream.push(data);
24415 // if there's nothing in the write buffer, then that means
24416 // that nothing more will ever be provided
24417 var ws = stream._writableState;
24418 var ts = stream._transformState;
24420 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
24422 if (ts.transforming) throw new Error('Calling transform done when still transforming');
24424 return stream.push(null);
24426 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
24427 (function (process){
24428 // A bit simpler than readable streams.
24429 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
24430 // the drain event emission and buffering.
24434 module.exports = Writable;
24437 var processNextTick = require('process-nextick-args');
24441 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
24448 Writable.WritableState = WritableState;
24451 var util = require('core-util-is');
24452 util.inherits = require('inherits');
24456 var internalUtil = {
24457 deprecate: require('util-deprecate')
24465 Stream = require('st' + 'ream');
24466 } catch (_) {} finally {
24467 if (!Stream) Stream = require('events').EventEmitter;
24472 var Buffer = require('buffer').Buffer;
24474 var bufferShim = require('buffer-shims');
24477 util.inherits(Writable, Stream);
24481 function WriteReq(chunk, encoding, cb) {
24482 this.chunk = chunk;
24483 this.encoding = encoding;
24484 this.callback = cb;
24488 function WritableState(options, stream) {
24489 Duplex = Duplex || require('./_stream_duplex');
24491 options = options || {};
24493 // object stream flag to indicate whether or not this stream
24494 // contains buffers or objects.
24495 this.objectMode = !!options.objectMode;
24497 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
24499 // the point at which write() starts returning false
24500 // Note:
0 is a valid value, means that we always return false if
24501 // the entire buffer is not flushed immediately on write()
24502 var hwm = options.highWaterMark;
24503 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
24504 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
24507 this.highWaterMark = ~ ~this.highWaterMark;
24509 // drain event flag.
24510 this.needDrain = false;
24511 // at the start of calling end()
24512 this.ending = false;
24513 // when end() has been called, and returned
24514 this.ended = false;
24515 // when 'finish' is emitted
24516 this.finished = false;
24518 // should we decode strings into buffers before passing to _write?
24519 // this is here so that some node-core streams can optimize string
24520 // handling at a lower level.
24521 var noDecode = options.decodeStrings === false;
24522 this.decodeStrings = !noDecode;
24524 // Crypto is kind of old and crusty. Historically, its default string
24525 // encoding is 'binary' so we have to make this configurable.
24526 // Everything else in the universe uses 'utf8', though.
24527 this.defaultEncoding = options.defaultEncoding || 'utf8';
24529 // not an actual buffer we keep track of, but a measurement
24530 // of how much we're waiting to get pushed to some underlying
24534 // a flag to see when we're in the middle of a write.
24535 this.writing = false;
24537 // when true all writes will be buffered until .uncork() call
24540 // a flag to be able to tell if the onwrite cb is called immediately,
24541 // or on a later tick. We set this to true at first, because any
24542 // actions that shouldn't happen until "later" should generally also
24543 // not happen before the first write call.
24546 // a flag to know if we're processing previously buffered items, which
24547 // may call the _write() callback in the same tick, so that we don't
24548 // end up in an overlapped onwrite situation.
24549 this.bufferProcessing = false;
24551 // the callback that's passed to _write(chunk,cb)
24552 this.onwrite = function (er) {
24553 onwrite(stream, er);
24556 // the callback that the user supplies to write(chunk,encoding,cb)
24557 this.writecb = null;
24559 // the amount that is being written when _write is called.
24562 this.bufferedRequest = null;
24563 this.lastBufferedRequest = null;
24565 // number of pending user-supplied write callbacks
24566 // this must be
0 before 'finish' can be emitted
24567 this.pendingcb =
0;
24569 // emit prefinish if the only thing we're waiting for is _write cbs
24570 // This is relevant for synchronous Transform streams
24571 this.prefinished = false;
24573 // True if the error was already emitted and should not be thrown again
24574 this.errorEmitted = false;
24576 // count buffered requests
24577 this.bufferedRequestCount =
0;
24579 // allocate the first CorkedRequest, there is always
24580 // one allocated and free to use, and we maintain at most two
24581 this.corkedRequestsFree = new CorkedRequest(this);
24584 WritableState.prototype.getBuffer = function getBuffer() {
24585 var current = this.bufferedRequest;
24589 current = current.next;
24596 Object.defineProperty(WritableState.prototype, 'buffer', {
24597 get: internalUtil.deprecate(function () {
24598 return this.getBuffer();
24599 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
24604 // Test _writableState for inheritance to account for Duplex streams,
24605 // whose prototype chain only points to Readable.
24606 var realHasInstance;
24607 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
24608 realHasInstance = Function.prototype[Symbol.hasInstance];
24609 Object.defineProperty(Writable, Symbol.hasInstance, {
24610 value: function (object) {
24611 if (realHasInstance.call(this, object)) return true;
24613 return object && object._writableState instanceof WritableState;
24617 realHasInstance = function (object) {
24618 return object instanceof this;
24622 function Writable(options) {
24623 Duplex = Duplex || require('./_stream_duplex');
24625 // Writable ctor is applied to Duplexes, too.
24626 // `realHasInstance` is necessary because using plain `instanceof`
24627 // would return false, as no `_writableState` property is attached.
24629 // Trying to use the custom `instanceof` for Writable here will also break the
24630 // Node.js LazyTransform implementation, which has a non-trivial getter for
24631 // `_writableState` that would lead to infinite recursion.
24632 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
24633 return new Writable(options);
24636 this._writableState = new WritableState(options, this);
24639 this.writable = true;
24642 if (typeof options.write === 'function') this._write = options.write;
24644 if (typeof options.writev === 'function') this._writev = options.writev;
24650 // Otherwise people can pipe Writable streams, which is just wrong.
24651 Writable.prototype.pipe = function () {
24652 this.emit('error', new Error('Cannot pipe, not readable'));
24655 function writeAfterEnd(stream, cb) {
24656 var er = new Error('write after end');
24657 // TODO: defer error events consistently everywhere, not just the cb
24658 stream.emit('error', er);
24659 processNextTick(cb, er);
24662 // If we get something that is not a buffer, string, null, or undefined,
24663 // and we're not in objectMode, then that's an error.
24664 // Otherwise stream chunks are all considered to be of length=
1, and the
24665 // watermarks determine how many objects to keep in the buffer, rather than
24666 // how many bytes or characters.
24667 function validChunk(stream, state, chunk, cb) {
24670 // Always throw error if a null is written
24671 // if we are not in object mode then throw
24672 // if it is not a buffer, string, or undefined.
24673 if (chunk === null) {
24674 er = new TypeError('May not write null values to stream');
24675 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
24676 er = new TypeError('Invalid non-string/buffer chunk');
24679 stream.emit('error', er);
24680 processNextTick(cb, er);
24686 Writable.prototype.write = function (chunk, encoding, cb) {
24687 var state = this._writableState;
24690 if (typeof encoding === 'function') {
24695 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
24697 if (typeof cb !== 'function') cb = nop;
24699 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
24701 ret = writeOrBuffer(this, state, chunk, encoding, cb);
24707 Writable.prototype.cork = function () {
24708 var state = this._writableState;
24713 Writable.prototype.uncork = function () {
24714 var state = this._writableState;
24716 if (state.corked) {
24719 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
24723 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
24724 // node::ParseEncoding() requires lower case.
24725 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
24726 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);
24727 this._writableState.defaultEncoding = encoding;
24731 function decodeChunk(state, chunk, encoding) {
24732 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
24733 chunk = bufferShim.from(chunk, encoding);
24738 // if we're already writing something, then just put this
24739 // in the queue, and wait our turn. Otherwise, call _write
24740 // If we return false, then we need a drain event, so set that flag.
24741 function writeOrBuffer(stream, state, chunk, encoding, cb) {
24742 chunk = decodeChunk(state, chunk, encoding);
24744 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
24745 var len = state.objectMode ?
1 : chunk.length;
24747 state.length += len;
24749 var ret = state.length < state.highWaterMark;
24750 // we must ensure that previous needDrain will not be reset to false.
24751 if (!ret) state.needDrain = true;
24753 if (state.writing || state.corked) {
24754 var last = state.lastBufferedRequest;
24755 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
24757 last.next = state.lastBufferedRequest;
24759 state.bufferedRequest = state.lastBufferedRequest;
24761 state.bufferedRequestCount +=
1;
24763 doWrite(stream, state, false, len, chunk, encoding, cb);
24769 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
24770 state.writelen = len;
24771 state.writecb = cb;
24772 state.writing = true;
24774 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
24775 state.sync = false;
24778 function onwriteError(stream, state, sync, er, cb) {
24780 if (sync) processNextTick(cb, er);else cb(er);
24782 stream._writableState.errorEmitted = true;
24783 stream.emit('error', er);
24786 function onwriteStateUpdate(state) {
24787 state.writing = false;
24788 state.writecb = null;
24789 state.length -= state.writelen;
24790 state.writelen =
0;
24793 function onwrite(stream, er) {
24794 var state = stream._writableState;
24795 var sync = state.sync;
24796 var cb = state.writecb;
24798 onwriteStateUpdate(state);
24800 if (er) onwriteError(stream, state, sync, er, cb);else {
24801 // Check if we're actually ready to finish, but don't emit yet
24802 var finished = needFinish(state);
24804 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
24805 clearBuffer(stream, state);
24810 asyncWrite(afterWrite, stream, state, finished, cb);
24813 afterWrite(stream, state, finished, cb);
24818 function afterWrite(stream, state, finished, cb) {
24819 if (!finished) onwriteDrain(stream, state);
24822 finishMaybe(stream, state);
24825 // Must force callback to be called on nextTick, so that we don't
24826 // emit 'drain' before the write() consumer gets the 'false' return
24827 // value, and has a chance to attach a 'drain' listener.
24828 function onwriteDrain(stream, state) {
24829 if (state.length ===
0 && state.needDrain) {
24830 state.needDrain = false;
24831 stream.emit('drain');
24835 // if there's something in the buffer waiting, then process it
24836 function clearBuffer(stream, state) {
24837 state.bufferProcessing = true;
24838 var entry = state.bufferedRequest;
24840 if (stream._writev && entry && entry.next) {
24841 // Fast case, write everything using _writev()
24842 var l = state.bufferedRequestCount;
24843 var buffer = new Array(l);
24844 var holder = state.corkedRequestsFree;
24845 holder.entry = entry;
24849 buffer[count] = entry;
24850 entry = entry.next;
24854 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
24856 // doWrite is almost always async, defer these to save a bit of time
24857 // as the hot path ends with doWrite
24859 state.lastBufferedRequest = null;
24861 state.corkedRequestsFree = holder.next;
24862 holder.next = null;
24864 state.corkedRequestsFree = new CorkedRequest(state);
24867 // Slow case, write chunks one-by-one
24869 var chunk = entry.chunk;
24870 var encoding = entry.encoding;
24871 var cb = entry.callback;
24872 var len = state.objectMode ?
1 : chunk.length;
24874 doWrite(stream, state, false, len, chunk, encoding, cb);
24875 entry = entry.next;
24876 // if we didn't call the onwrite immediately, then
24877 // it means that we need to wait until it does.
24878 // also, that means that the chunk and cb are currently
24879 // being processed, so move the buffer counter past them.
24880 if (state.writing) {
24885 if (entry === null) state.lastBufferedRequest = null;
24888 state.bufferedRequestCount =
0;
24889 state.bufferedRequest = entry;
24890 state.bufferProcessing = false;
24893 Writable.prototype._write = function (chunk, encoding, cb) {
24894 cb(new Error('_write() is not implemented'));
24897 Writable.prototype._writev = null;
24899 Writable.prototype.end = function (chunk, encoding, cb) {
24900 var state = this._writableState;
24902 if (typeof chunk === 'function') {
24906 } else if (typeof encoding === 'function') {
24911 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
24913 // .end() fully uncorks
24914 if (state.corked) {
24919 // ignore unnecessary end() calls.
24920 if (!state.ending && !state.finished) endWritable(this, state, cb);
24923 function needFinish(state) {
24924 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
24927 function prefinish(stream, state) {
24928 if (!state.prefinished) {
24929 state.prefinished = true;
24930 stream.emit('prefinish');
24934 function finishMaybe(stream, state) {
24935 var need = needFinish(state);
24937 if (state.pendingcb ===
0) {
24938 prefinish(stream, state);
24939 state.finished = true;
24940 stream.emit('finish');
24942 prefinish(stream, state);
24948 function endWritable(stream, state, cb) {
24949 state.ending = true;
24950 finishMaybe(stream, state);
24952 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
24954 state.ended = true;
24955 stream.writable = false;
24958 // It seems a linked list but it is not
24959 // there will be only
2 of these for each stream
24960 function CorkedRequest(state) {
24966 this.finish = function (err) {
24967 var entry = _this.entry;
24968 _this.entry = null;
24970 var cb = entry.callback;
24973 entry = entry.next;
24975 if (state.corkedRequestsFree) {
24976 state.corkedRequestsFree.next = _this;
24978 state.corkedRequestsFree = _this;
24982 }).call(this,require('_process'))
24983 },{"./_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){
24986 var Buffer = require('buffer').Buffer;
24988 var bufferShim = require('buffer-shims');
24991 module.exports = BufferList;
24993 function BufferList() {
24999 BufferList.prototype.push = function (v) {
25000 var entry = { data: v, next: null };
25001 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
25006 BufferList.prototype.unshift = function (v) {
25007 var entry = { data: v, next: this.head };
25008 if (this.length ===
0) this.tail = entry;
25013 BufferList.prototype.shift = function () {
25014 if (this.length ===
0) return;
25015 var ret = this.head.data;
25016 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
25021 BufferList.prototype.clear = function () {
25022 this.head = this.tail = null;
25026 BufferList.prototype.join = function (s) {
25027 if (this.length ===
0) return '';
25029 var ret = '' + p.data;
25030 while (p = p.next) {
25035 BufferList.prototype.concat = function (n) {
25036 if (this.length ===
0) return bufferShim.alloc(
0);
25037 if (this.length ===
1) return this.head.data;
25038 var ret = bufferShim.allocUnsafe(n
>>> 0);
25042 p.data.copy(ret, i);
25043 i += p.data.length;
25048 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
25049 module.exports = require(
"./lib/_stream_passthrough.js")
25051 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
25052 (function (process){
25053 var Stream = (function (){
25055 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
25058 exports = module.exports = require('./lib/_stream_readable.js');
25059 exports.Stream = Stream || exports;
25060 exports.Readable = exports;
25061 exports.Writable = require('./lib/_stream_writable.js');
25062 exports.Duplex = require('./lib/_stream_duplex.js');
25063 exports.Transform = require('./lib/_stream_transform.js');
25064 exports.PassThrough = require('./lib/_stream_passthrough.js');
25066 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
25067 module.exports = Stream;
25070 }).call(this,require('_process'))
25071 },{
"./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){
25072 module.exports = require(
"./lib/_stream_transform.js")
25074 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
25075 module.exports = require(
"./lib/_stream_writable.js")
25077 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
25078 // Copyright Joyent, Inc. and other Node contributors.
25080 // Permission is hereby granted, free of charge, to any person obtaining a
25081 // copy of this software and associated documentation files (the
25082 //
"Software"), to deal in the Software without restriction, including
25083 // without limitation the rights to use, copy, modify, merge, publish,
25084 // distribute, sublicense, and/or sell copies of the Software, and to permit
25085 // persons to whom the Software is furnished to do so, subject to the
25086 // following conditions:
25088 // The above copyright notice and this permission notice shall be included
25089 // in all copies or substantial portions of the Software.
25091 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25092 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25093 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25094 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25095 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25096 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25097 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25099 module.exports = Stream;
25101 var EE = require('events').EventEmitter;
25102 var inherits = require('inherits');
25104 inherits(Stream, EE);
25105 Stream.Readable = require('readable-stream/readable.js');
25106 Stream.Writable = require('readable-stream/writable.js');
25107 Stream.Duplex = require('readable-stream/duplex.js');
25108 Stream.Transform = require('readable-stream/transform.js');
25109 Stream.PassThrough = require('readable-stream/passthrough.js');
25111 // Backwards-compat with node
0.4.x
25112 Stream.Stream = Stream;
25116 // old-style streams. Note that the pipe method (the only relevant
25117 // part of this class) is overridden in the Readable class.
25119 function Stream() {
25123 Stream.prototype.pipe = function(dest, options) {
25126 function ondata(chunk) {
25127 if (dest.writable) {
25128 if (false === dest.write(chunk) && source.pause) {
25134 source.on('data', ondata);
25136 function ondrain() {
25137 if (source.readable && source.resume) {
25142 dest.on('drain', ondrain);
25144 // If the 'end' option is not supplied, dest.end() will be called when
25145 // source gets the 'end' or 'close' events. Only dest.end() once.
25146 if (!dest._isStdio && (!options || options.end !== false)) {
25147 source.on('end', onend);
25148 source.on('close', onclose);
25151 var didOnEnd = false;
25153 if (didOnEnd) return;
25160 function onclose() {
25161 if (didOnEnd) return;
25164 if (typeof dest.destroy === 'function') dest.destroy();
25167 // don't leave dangling pipes when there are errors.
25168 function onerror(er) {
25170 if (EE.listenerCount(this, 'error') ===
0) {
25171 throw er; // Unhandled stream error in pipe.
25175 source.on('error', onerror);
25176 dest.on('error', onerror);
25178 // remove all the event listeners that were added.
25179 function cleanup() {
25180 source.removeListener('data', ondata);
25181 dest.removeListener('drain', ondrain);
25183 source.removeListener('end', onend);
25184 source.removeListener('close', onclose);
25186 source.removeListener('error', onerror);
25187 dest.removeListener('error', onerror);
25189 source.removeListener('end', cleanup);
25190 source.removeListener('close', cleanup);
25192 dest.removeListener('close', cleanup);
25195 source.on('end', cleanup);
25196 source.on('close', cleanup);
25198 dest.on('close', cleanup);
25200 dest.emit('pipe', source);
25202 // Allow for unix-like usage: A.pipe(B).pipe(C)
25206 },{
"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){
25207 // Copyright Joyent, Inc. and other Node contributors.
25209 // Permission is hereby granted, free of charge, to any person obtaining a
25210 // copy of this software and associated documentation files (the
25211 //
"Software"), to deal in the Software without restriction, including
25212 // without limitation the rights to use, copy, modify, merge, publish,
25213 // distribute, sublicense, and/or sell copies of the Software, and to permit
25214 // persons to whom the Software is furnished to do so, subject to the
25215 // following conditions:
25217 // The above copyright notice and this permission notice shall be included
25218 // in all copies or substantial portions of the Software.
25220 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25221 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25222 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25223 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25224 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25225 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25226 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25228 var Buffer = require('buffer').Buffer;
25230 var isBufferEncoding = Buffer.isEncoding
25231 || function(encoding) {
25232 switch (encoding && encoding.toLowerCase()) {
25233 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;
25234 default: return false;
25239 function assertEncoding(encoding) {
25240 if (encoding && !isBufferEncoding(encoding)) {
25241 throw new Error('Unknown encoding: ' + encoding);
25245 // StringDecoder provides an interface for efficiently splitting a series of
25246 // buffers into a series of JS strings without breaking apart multi-byte
25247 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
25249 // @TODO Handling all encodings inside a single object makes it very difficult
25250 // to reason about this code, so it should be split up in the future.
25251 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
25252 // points as used by CESU-
8.
25253 var StringDecoder = exports.StringDecoder = function(encoding) {
25254 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
25255 assertEncoding(encoding);
25256 switch (this.encoding) {
25258 // CESU-
8 represents each of Surrogate Pair by
3-bytes
25259 this.surrogateSize =
3;
25263 // UTF-
16 represents each of Surrogate Pair by
2-bytes
25264 this.surrogateSize =
2;
25265 this.detectIncompleteChar = utf16DetectIncompleteChar;
25268 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
25269 this.surrogateSize =
3;
25270 this.detectIncompleteChar = base64DetectIncompleteChar;
25273 this.write = passThroughWrite;
25277 // Enough space to store all bytes of a single character. UTF-
8 needs
4
25278 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
25279 this.charBuffer = new Buffer(
6);
25280 // Number of bytes received for the current incomplete multi-byte character.
25281 this.charReceived =
0;
25282 // Number of bytes expected for the current incomplete multi-byte character.
25283 this.charLength =
0;
25287 // write decodes the given buffer and returns it as JS string that is
25288 // guaranteed to not contain any partial multi-byte characters. Any partial
25289 // character found at the end of the buffer is buffered up, and will be
25290 // returned when calling write again with the remaining bytes.
25292 // Note: Converting a Buffer containing an orphan surrogate to a String
25293 // currently works, but converting a String to a Buffer (via `new Buffer`, or
25294 // Buffer#write) will replace incomplete surrogates with the unicode
25295 // replacement character. See https://codereview.chromium.org/
121173009/ .
25296 StringDecoder.prototype.write = function(buffer) {
25298 // if our last write ended with an incomplete multibyte character
25299 while (this.charLength) {
25300 // determine how many remaining bytes this buffer has to offer for this char
25301 var available = (buffer.length
>= this.charLength - this.charReceived) ?
25302 this.charLength - this.charReceived :
25305 // add the new bytes to the char buffer
25306 buffer.copy(this.charBuffer, this.charReceived,
0, available);
25307 this.charReceived += available;
25309 if (this.charReceived < this.charLength) {
25310 // still not enough chars in this buffer? wait for more ...
25314 // remove bytes belonging to the current character from the buffer
25315 buffer = buffer.slice(available, buffer.length);
25317 // get the character that was split
25318 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
25320 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
25321 var charCode = charStr.charCodeAt(charStr.length -
1);
25322 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
25323 this.charLength += this.surrogateSize;
25327 this.charReceived = this.charLength =
0;
25329 // if there are no more bytes in this buffer, just emit our char
25330 if (buffer.length ===
0) {
25336 // determine and set charLength / charReceived
25337 this.detectIncompleteChar(buffer);
25339 var end = buffer.length;
25340 if (this.charLength) {
25341 // buffer the incomplete character bytes we got
25342 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
25343 end -= this.charReceived;
25346 charStr += buffer.toString(this.encoding,
0, end);
25348 var end = charStr.length -
1;
25349 var charCode = charStr.charCodeAt(end);
25350 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
25351 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
25352 var size = this.surrogateSize;
25353 this.charLength += size;
25354 this.charReceived += size;
25355 this.charBuffer.copy(this.charBuffer, size,
0, size);
25356 buffer.copy(this.charBuffer,
0,
0, size);
25357 return charStr.substring(
0, end);
25360 // or just emit the charStr
25364 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
25365 // the end of the given buffer. If so, it sets this.charLength to the byte
25366 // length that character, and sets this.charReceived to the number of bytes
25367 // that are available for this character.
25368 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
25369 // determine how many bytes we have to check at the end of this buffer
25370 var i = (buffer.length
>=
3) ?
3 : buffer.length;
25372 // Figure out if one of the last i bytes of our buffer announces an
25373 // incomplete char.
25374 for (; i
> 0; i--) {
25375 var c = buffer[buffer.length - i];
25377 // See http://en.wikipedia.org/wiki/UTF-
8#Description
25380 if (i ==
1 && c
>> 5 ==
0x06) {
25381 this.charLength =
2;
25386 if (i <=
2 && c
>> 4 ==
0x0E) {
25387 this.charLength =
3;
25392 if (i <=
3 && c
>> 3 ==
0x1E) {
25393 this.charLength =
4;
25397 this.charReceived = i;
25400 StringDecoder.prototype.end = function(buffer) {
25402 if (buffer && buffer.length)
25403 res = this.write(buffer);
25405 if (this.charReceived) {
25406 var cr = this.charReceived;
25407 var buf = this.charBuffer;
25408 var enc = this.encoding;
25409 res += buf.slice(
0, cr).toString(enc);
25415 function passThroughWrite(buffer) {
25416 return buffer.toString(this.encoding);
25419 function utf16DetectIncompleteChar(buffer) {
25420 this.charReceived = buffer.length %
2;
25421 this.charLength = this.charReceived ?
2 :
0;
25424 function base64DetectIncompleteChar(buffer) {
25425 this.charReceived = buffer.length %
3;
25426 this.charLength = this.charReceived ?
3 :
0;
25429 },{
"buffer":
5}],
27:[function(require,module,exports){
25430 (function (global){
25436 module.exports = deprecate;
25439 * Mark that a method should not be used.
25440 * Returns a modified function which warns once by default.
25442 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
25444 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
25445 * will throw an Error when invoked.
25447 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
25448 * will invoke `console.trace()` instead of `console.error()`.
25450 * @param {Function} fn - the function to deprecate
25451 * @param {String} msg - the string to print to the console when `fn` is invoked
25452 * @returns {Function} a new
"deprecated" version of `fn`
25456 function deprecate (fn, msg) {
25457 if (config('noDeprecation')) {
25461 var warned = false;
25462 function deprecated() {
25464 if (config('throwDeprecation')) {
25465 throw new Error(msg);
25466 } else if (config('traceDeprecation')) {
25467 console.trace(msg);
25473 return fn.apply(this, arguments);
25480 * Checks `localStorage` for boolean values for the given `name`.
25482 * @param {String} name
25483 * @returns {Boolean}
25487 function config (name) {
25488 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
25490 if (!global.localStorage) return false;
25494 var val = global.localStorage[name];
25495 if (null == val) return false;
25496 return String(val).toLowerCase() === 'true';
25499 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
25500 },{}],
28:[function(require,module,exports){
25501 arguments[
4][
9][
0].apply(exports,arguments)
25502 },{
"dup":
9}],
29:[function(require,module,exports){
25503 module.exports = function isBuffer(arg) {
25504 return arg && typeof arg === 'object'
25505 && typeof arg.copy === 'function'
25506 && typeof arg.fill === 'function'
25507 && typeof arg.readUInt8 === 'function';
25509 },{}],
30:[function(require,module,exports){
25510 (function (process,global){
25511 // Copyright Joyent, Inc. and other Node contributors.
25513 // Permission is hereby granted, free of charge, to any person obtaining a
25514 // copy of this software and associated documentation files (the
25515 //
"Software"), to deal in the Software without restriction, including
25516 // without limitation the rights to use, copy, modify, merge, publish,
25517 // distribute, sublicense, and/or sell copies of the Software, and to permit
25518 // persons to whom the Software is furnished to do so, subject to the
25519 // following conditions:
25521 // The above copyright notice and this permission notice shall be included
25522 // in all copies or substantial portions of the Software.
25524 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25525 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25526 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25527 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25528 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25529 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25530 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25532 var formatRegExp = /%[sdj%]/g;
25533 exports.format = function(f) {
25534 if (!isString(f)) {
25536 for (var i =
0; i < arguments.length; i++) {
25537 objects.push(inspect(arguments[i]));
25539 return objects.join(' ');
25543 var args = arguments;
25544 var len = args.length;
25545 var str = String(f).replace(formatRegExp, function(x) {
25546 if (x === '%%') return '%';
25547 if (i
>= len) return x;
25549 case '%s': return String(args[i++]);
25550 case '%d': return Number(args[i++]);
25553 return JSON.stringify(args[i++]);
25555 return '[Circular]';
25561 for (var x = args[i]; i < len; x = args[++i]) {
25562 if (isNull(x) || !isObject(x)) {
25565 str += ' ' + inspect(x);
25572 // Mark that a method should not be used.
25573 // Returns a modified function which warns once by default.
25574 // If --no-deprecation is set, then it is a no-op.
25575 exports.deprecate = function(fn, msg) {
25576 // Allow for deprecating things in the process of starting up.
25577 if (isUndefined(global.process)) {
25578 return function() {
25579 return exports.deprecate(fn, msg).apply(this, arguments);
25583 if (process.noDeprecation === true) {
25587 var warned = false;
25588 function deprecated() {
25590 if (process.throwDeprecation) {
25591 throw new Error(msg);
25592 } else if (process.traceDeprecation) {
25593 console.trace(msg);
25595 console.error(msg);
25599 return fn.apply(this, arguments);
25608 exports.debuglog = function(set) {
25609 if (isUndefined(debugEnviron))
25610 debugEnviron = process.env.NODE_DEBUG || '';
25611 set = set.toUpperCase();
25612 if (!debugs[set]) {
25613 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
25614 var pid = process.pid;
25615 debugs[set] = function() {
25616 var msg = exports.format.apply(exports, arguments);
25617 console.error('%s %d: %s', set, pid, msg);
25620 debugs[set] = function() {};
25623 return debugs[set];
25628 * Echos the value of a value. Trys to print the value out
25629 * in the best way possible given the different types.
25631 * @param {Object} obj The object to print out.
25632 * @param {Object} opts Optional options object that alters the output.
25634 /* legacy: obj, showHidden, depth, colors*/
25635 function inspect(obj, opts) {
25639 stylize: stylizeNoColor
25642 if (arguments.length
>=
3) ctx.depth = arguments[
2];
25643 if (arguments.length
>=
4) ctx.colors = arguments[
3];
25644 if (isBoolean(opts)) {
25646 ctx.showHidden = opts;
25648 // got an "options" object
25649 exports._extend(ctx, opts);
25651 // set default options
25652 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
25653 if (isUndefined(ctx.depth)) ctx.depth =
2;
25654 if (isUndefined(ctx.colors)) ctx.colors = false;
25655 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
25656 if (ctx.colors) ctx.stylize = stylizeWithColor;
25657 return formatValue(ctx, obj, ctx.depth);
25659 exports.inspect = inspect;
25662 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
25665 'italic' : [
3,
23],
25666 'underline' : [
4,
24],
25667 'inverse' : [
7,
27],
25668 'white' : [
37,
39],
25670 'black' : [
30,
39],
25673 'green' : [
32,
39],
25674 'magenta' : [
35,
39],
25676 'yellow' : [
33,
39]
25679 // Don't use 'blue' not visible on cmd.exe
25682 'number': 'yellow',
25683 'boolean': 'yellow',
25684 'undefined': 'grey',
25688 // "name": intentionally not styling
25693 function stylizeWithColor(str, styleType) {
25694 var style = inspect.styles[styleType];
25697 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
25698 '\u001b[' + inspect.colors[style][
1] + 'm';
25705 function stylizeNoColor(str, styleType) {
25710 function arrayToHash(array) {
25713 array.forEach(function(val, idx) {
25721 function formatValue(ctx, value, recurseTimes) {
25722 // Provide a hook for user-specified inspect functions.
25723 // Check that value is an object with an inspect function on it
25724 if (ctx.customInspect &&
25726 isFunction(value.inspect) &&
25727 // Filter out the util module, it's inspect function is special
25728 value.inspect !== exports.inspect &&
25729 // Also filter out any prototype objects using the circular check.
25730 !(value.constructor && value.constructor.prototype === value)) {
25731 var ret = value.inspect(recurseTimes, ctx);
25732 if (!isString(ret)) {
25733 ret = formatValue(ctx, ret, recurseTimes);
25738 // Primitive types cannot have properties
25739 var primitive = formatPrimitive(ctx, value);
25744 // Look up the keys of the object.
25745 var keys = Object.keys(value);
25746 var visibleKeys = arrayToHash(keys);
25748 if (ctx.showHidden) {
25749 keys = Object.getOwnPropertyNames(value);
25752 // IE doesn't make error fields non-enumerable
25753 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
25755 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
25756 return formatError(value);
25759 // Some type of object without properties can be shortcutted.
25760 if (keys.length ===
0) {
25761 if (isFunction(value)) {
25762 var name = value.name ? ': ' + value.name : '';
25763 return ctx.stylize('[Function' + name + ']', 'special');
25765 if (isRegExp(value)) {
25766 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
25768 if (isDate(value)) {
25769 return ctx.stylize(Date.prototype.toString.call(value), 'date');
25771 if (isError(value)) {
25772 return formatError(value);
25776 var base = '', array = false, braces = ['{', '}'];
25778 // Make Array say that they are Array
25779 if (isArray(value)) {
25781 braces = ['[', ']'];
25784 // Make functions say that they are functions
25785 if (isFunction(value)) {
25786 var n = value.name ? ': ' + value.name : '';
25787 base = ' [Function' + n + ']';
25790 // Make RegExps say that they are RegExps
25791 if (isRegExp(value)) {
25792 base = ' ' + RegExp.prototype.toString.call(value);
25795 // Make dates with properties first say the date
25796 if (isDate(value)) {
25797 base = ' ' + Date.prototype.toUTCString.call(value);
25800 // Make error with message first say the error
25801 if (isError(value)) {
25802 base = ' ' + formatError(value);
25805 if (keys.length ===
0 && (!array || value.length ==
0)) {
25806 return braces[
0] + base + braces[
1];
25809 if (recurseTimes <
0) {
25810 if (isRegExp(value)) {
25811 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
25813 return ctx.stylize('[Object]', 'special');
25817 ctx.seen.push(value);
25821 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
25823 output = keys.map(function(key) {
25824 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
25830 return reduceToSingleString(output, base, braces);
25834 function formatPrimitive(ctx, value) {
25835 if (isUndefined(value))
25836 return ctx.stylize('undefined', 'undefined');
25837 if (isString(value)) {
25838 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
25839 .replace(/'/g, "\\'")
25840 .replace(/\\"/g, '"') + '\'';
25841 return ctx.stylize(simple, 'string');
25843 if (isNumber(value))
25844 return ctx.stylize('' + value, 'number');
25845 if (isBoolean(value))
25846 return ctx.stylize('' + value, 'boolean');
25847 // For some reason typeof null is "object", so special case here.
25849 return ctx.stylize('null', 'null');
25853 function formatError(value) {
25854 return '[' + Error.prototype.toString.call(value) + ']';
25858 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
25860 for (var i =
0, l = value.length; i < l; ++i) {
25861 if (hasOwnProperty(value, String(i))) {
25862 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
25868 keys.forEach(function(key) {
25869 if (!key.match(/^\d+$/)) {
25870 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
25878 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
25879 var name, str, desc;
25880 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
25883 str = ctx.stylize('[Getter/Setter]', 'special');
25885 str = ctx.stylize('[Getter]', 'special');
25889 str = ctx.stylize('[Setter]', 'special');
25892 if (!hasOwnProperty(visibleKeys, key)) {
25893 name = '[' + key + ']';
25896 if (ctx.seen.indexOf(desc.value) <
0) {
25897 if (isNull(recurseTimes)) {
25898 str = formatValue(ctx, desc.value, null);
25900 str = formatValue(ctx, desc.value, recurseTimes -
1);
25902 if (str.indexOf('\n')
> -
1) {
25904 str = str.split('\n').map(function(line) {
25906 }).join('\n').substr(
2);
25908 str = '\n' + str.split('\n').map(function(line) {
25914 str = ctx.stylize('[Circular]', 'special');
25917 if (isUndefined(name)) {
25918 if (array && key.match(/^\d+$/)) {
25921 name = JSON.stringify('' + key);
25922 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
25923 name = name.substr(
1, name.length -
2);
25924 name = ctx.stylize(name, 'name');
25926 name = name.replace(/'/g, "\\'")
25927 .replace(/\\"/g, '"')
25928 .replace(/(^"|"$)/g, "'");
25929 name = ctx.stylize(name, 'string');
25933 return name + ': ' + str;
25937 function reduceToSingleString(output, base, braces) {
25938 var numLinesEst =
0;
25939 var length = output.reduce(function(prev, cur) {
25941 if (cur.indexOf('\n')
>=
0) numLinesEst++;
25942 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
25947 (base === '' ? '' : base + '\n ') +
25949 output.join(',\n ') +
25954 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
25958 // NOTE: These type checking functions intentionally don't use `instanceof`
25959 // because it is fragile and can be easily faked with `Object.create()`.
25960 function isArray(ar) {
25961 return Array.isArray(ar);
25963 exports.isArray = isArray;
25965 function isBoolean(arg) {
25966 return typeof arg === 'boolean';
25968 exports.isBoolean = isBoolean;
25970 function isNull(arg) {
25971 return arg === null;
25973 exports.isNull = isNull;
25975 function isNullOrUndefined(arg) {
25976 return arg == null;
25978 exports.isNullOrUndefined = isNullOrUndefined;
25980 function isNumber(arg) {
25981 return typeof arg === 'number';
25983 exports.isNumber = isNumber;
25985 function isString(arg) {
25986 return typeof arg === 'string';
25988 exports.isString = isString;
25990 function isSymbol(arg) {
25991 return typeof arg === 'symbol';
25993 exports.isSymbol = isSymbol;
25995 function isUndefined(arg) {
25996 return arg === void
0;
25998 exports.isUndefined = isUndefined;
26000 function isRegExp(re) {
26001 return isObject(re) && objectToString(re) === '[object RegExp]';
26003 exports.isRegExp = isRegExp;
26005 function isObject(arg) {
26006 return typeof arg === 'object' && arg !== null;
26008 exports.isObject = isObject;
26010 function isDate(d) {
26011 return isObject(d) && objectToString(d) === '[object Date]';
26013 exports.isDate = isDate;
26015 function isError(e) {
26016 return isObject(e) &&
26017 (objectToString(e) === '[object Error]' || e instanceof Error);
26019 exports.isError = isError;
26021 function isFunction(arg) {
26022 return typeof arg === 'function';
26024 exports.isFunction = isFunction;
26026 function isPrimitive(arg) {
26027 return arg === null ||
26028 typeof arg === 'boolean' ||
26029 typeof arg === 'number' ||
26030 typeof arg === 'string' ||
26031 typeof arg === 'symbol' || // ES6 symbol
26032 typeof arg === 'undefined';
26034 exports.isPrimitive = isPrimitive;
26036 exports.isBuffer = require('./support/isBuffer');
26038 function objectToString(o) {
26039 return Object.prototype.toString.call(o);
26044 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
26048 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
26049 'Oct', 'Nov', 'Dec'];
26052 function timestamp() {
26053 var d = new Date();
26054 var time = [pad(d.getHours()),
26055 pad(d.getMinutes()),
26056 pad(d.getSeconds())].join(':');
26057 return [d.getDate(), months[d.getMonth()], time].join(' ');
26061 // log is just a thin wrapper to console.log that prepends a timestamp
26062 exports.log = function() {
26063 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
26068 * Inherit the prototype methods from one constructor into another.
26070 * The Function.prototype.inherits from lang.js rewritten as a standalone
26071 * function (not on Function.prototype). NOTE: If this file is to be loaded
26072 * during bootstrapping this function needs to be rewritten using some native
26073 * functions as prototype setup using normal JavaScript does not work as
26074 * expected during bootstrapping (see mirror.js in r114903).
26076 * @param {function} ctor Constructor function which needs to inherit the
26078 * @param {function} superCtor Constructor function to inherit prototype from.
26080 exports.inherits = require('inherits');
26082 exports._extend = function(origin, add) {
26083 // Don't do anything if add isn't an object
26084 if (!add || !isObject(add)) return origin;
26086 var keys = Object.keys(add);
26087 var i = keys.length;
26089 origin[keys[i]] = add[keys[i]];
26094 function hasOwnProperty(obj, prop) {
26095 return Object.prototype.hasOwnProperty.call(obj, prop);
26098 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
26099 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
26100 (function (Buffer){
26101 const createKeccakHash = require('keccak')
26102 const secp256k1 = require('secp256k1')
26103 const assert = require('assert')
26104 const rlp = require('rlp')
26105 const BN = require('bn.js')
26106 const createHash = require('create-hash')
26107 Object.assign(exports, require('ethjs-util'))
26110 * the max integer that this VM can handle (a ```BN```)
26111 * @var {BN} MAX_INTEGER
26113 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
26116 *
2^
256 (a ```BN```)
26117 * @var {BN} TWO_POW256
26119 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
26122 * SHA3-
256 hash of null (a ```String```)
26123 * @var {String} SHA3_NULL_S
26125 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
26128 * SHA3-
256 hash of null (a ```Buffer```)
26129 * @var {Buffer} SHA3_NULL
26131 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
26134 * SHA3-
256 of an RLP of an empty array (a ```String```)
26135 * @var {String} SHA3_RLP_ARRAY_S
26137 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
26140 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
26141 * @var {Buffer} SHA3_RLP_ARRAY
26143 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
26146 * SHA3-
256 hash of the RLP of null (a ```String```)
26147 * @var {String} SHA3_RLP_S
26149 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
26152 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
26153 * @var {Buffer} SHA3_RLP
26155 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
26158 * [`BN`](https://github.com/indutny/bn.js)
26164 * [`rlp`](https://github.com/ethereumjs/rlp)
26170 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
26173 exports.secp256k1 = secp256k1
26176 * Returns a buffer filled with
0s
26178 * @param {Number} bytes the number of bytes the buffer should be
26181 exports.zeros = function (bytes) {
26182 return Buffer.allocUnsafe(bytes).fill(
0)
26186 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
26187 * Or it truncates the beginning if it exceeds.
26188 * @method lsetLength
26189 * @param {Buffer|Array} msg the value to pad
26190 * @param {Number} length the number of bytes the output should be
26191 * @param {Boolean} [right=false] whether to start padding form the left or right
26192 * @return {Buffer|Array}
26194 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
26195 var buf = exports.zeros(length)
26196 msg = exports.toBuffer(msg)
26198 if (msg.length < length) {
26202 return msg.slice(
0, length)
26204 if (msg.length < length) {
26205 msg.copy(buf, length - msg.length)
26208 return msg.slice(-length)
26213 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
26214 * Or it truncates the beginning if it exceeds.
26215 * @param {Buffer|Array} msg the value to pad
26216 * @param {Number} length the number of bytes the output should be
26217 * @return {Buffer|Array}
26219 exports.setLengthRight = function (msg, length) {
26220 return exports.setLength(msg, length, true)
26224 * Trims leading zeros from a `Buffer` or an `Array`
26225 * @param {Buffer|Array|String} a
26226 * @return {Buffer|Array|String}
26228 exports.unpad = exports.stripZeros = function (a) {
26229 a = exports.stripHexPrefix(a)
26231 while (a.length
> 0 && first.toString() === '
0') {
26238 * 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.
26239 * @param {*} v the value
26241 exports.toBuffer = function (v) {
26242 if (!Buffer.isBuffer(v)) {
26243 if (Array.isArray(v)) {
26245 } else if (typeof v === 'string') {
26246 if (exports.isHexPrefixed(v)) {
26247 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
26251 } else if (typeof v === 'number') {
26252 v = exports.intToBuffer(v)
26253 } else if (v === null || v === undefined) {
26254 v = Buffer.allocUnsafe(
0)
26255 } else if (v.toArray) {
26256 // converts a BN to a Buffer
26257 v = Buffer.from(v.toArray())
26259 throw new Error('invalid type')
26266 * Converts a `Buffer` to a `Number`
26267 * @param {Buffer} buf
26269 * @throws If the input number exceeds
53 bits.
26271 exports.bufferToInt = function (buf) {
26272 return new BN(exports.toBuffer(buf)).toNumber()
26276 * Converts a `Buffer` into a hex `String`
26277 * @param {Buffer} buf
26280 exports.bufferToHex = function (buf) {
26281 buf = exports.toBuffer(buf)
26282 return '
0x' + buf.toString('hex')
26286 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
26287 * @param {Buffer} num
26290 exports.fromSigned = function (num) {
26291 return new BN(num).fromTwos(
256)
26295 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
26299 exports.toUnsigned = function (num) {
26300 return Buffer.from(num.toTwos(
256).toArray())
26304 * Creates SHA-
3 hash of the input
26305 * @param {Buffer|Array|String|Number} a the input data
26306 * @param {Number} [bits=
256] the SHA width
26309 exports.sha3 = function (a, bits) {
26310 a = exports.toBuffer(a)
26311 if (!bits) bits =
256
26313 return createKeccakHash('keccak' + bits).update(a).digest()
26317 * Creates SHA256 hash of the input
26318 * @param {Buffer|Array|String|Number} a the input data
26321 exports.sha256 = function (a) {
26322 a = exports.toBuffer(a)
26323 return createHash('sha256').update(a).digest()
26327 * Creates RIPEMD160 hash of the input
26328 * @param {Buffer|Array|String|Number} a the input data
26329 * @param {Boolean} padded whether it should be padded to
256 bits or not
26332 exports.ripemd160 = function (a, padded) {
26333 a = exports.toBuffer(a)
26334 var hash = createHash('rmd160').update(a).digest()
26335 if (padded === true) {
26336 return exports.setLength(hash,
32)
26343 * Creates SHA-
3 hash of the RLP encoded version of the input
26344 * @param {Buffer|Array|String|Number} a the input data
26347 exports.rlphash = function (a) {
26348 return exports.sha3(rlp.encode(a))
26352 * Checks if the private key satisfies the rules of the curve secp256k1.
26353 * @param {Buffer} privateKey
26354 * @return {Boolean}
26356 exports.isValidPrivate = function (privateKey) {
26357 return secp256k1.privateKeyVerify(privateKey)
26361 * Checks if the public key satisfies the rules of the curve secp256k1
26362 * and the requirements of Ethereum.
26363 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
26364 * @param {Boolean} [sanitize=false] Accept public keys in other formats
26365 * @return {Boolean}
26367 exports.isValidPublic = function (publicKey, sanitize) {
26368 if (publicKey.length ===
64) {
26369 // Convert to SEC1 for secp256k1
26370 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
26377 return secp256k1.publicKeyVerify(publicKey)
26381 * Returns the ethereum address of a given public key.
26382 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
26383 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
26384 * @param {Boolean} [sanitize=false] Accept public keys in other formats
26387 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
26388 pubKey = exports.toBuffer(pubKey)
26389 if (sanitize && (pubKey.length !==
64)) {
26390 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
26392 assert(pubKey.length ===
64)
26393 // Only take the lower
160bits of the hash
26394 return exports.sha3(pubKey).slice(-
20)
26398 * Returns the ethereum public key of a given private key
26399 * @param {Buffer} privateKey A private key must be
256 bits wide
26402 var privateToPublic = exports.privateToPublic = function (privateKey) {
26403 privateKey = exports.toBuffer(privateKey)
26404 // skip the type flag and use the X, Y points
26405 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
26409 * Converts a public key to the Ethereum format.
26410 * @param {Buffer} publicKey
26413 exports.importPublic = function (publicKey) {
26414 publicKey = exports.toBuffer(publicKey)
26415 if (publicKey.length !==
64) {
26416 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
26423 * @param {Buffer} msgHash
26424 * @param {Buffer} privateKey
26427 exports.ecsign = function (msgHash, privateKey) {
26428 var sig = secp256k1.sign(msgHash, privateKey)
26431 ret.r = sig.signature.slice(
0,
32)
26432 ret.s = sig.signature.slice(
32,
64)
26433 ret.v = sig.recovery +
27
26438 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
26439 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
26440 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
26441 * used to produce the signature.
26443 * @returns {Buffer} hash
26445 exports.hashPersonalMessage = function (message) {
26446 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
26447 return exports.sha3(Buffer.concat([prefix, message]))
26451 * ECDSA public key recovery from signature
26452 * @param {Buffer} msgHash
26453 * @param {Number} v
26454 * @param {Buffer} r
26455 * @param {Buffer} s
26456 * @return {Buffer} publicKey
26458 exports.ecrecover = function (msgHash, v, r, s) {
26459 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
26460 var recovery = v -
27
26461 if (recovery !==
0 && recovery !==
1) {
26462 throw new Error('Invalid signature v value')
26464 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
26465 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
26469 * Convert signature parameters into the format of `eth_sign` RPC method
26470 * @param {Number} v
26471 * @param {Buffer} r
26472 * @param {Buffer} s
26473 * @return {String} sig
26475 exports.toRpcSig = function (v, r, s) {
26476 // NOTE: with potential introduction of chainId this might need to be updated
26477 if (v !==
27 && v !==
28) {
26478 throw new Error('Invalid recovery id')
26481 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
26482 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
26483 return exports.bufferToHex(Buffer.concat([
26484 exports.setLengthLeft(r,
32),
26485 exports.setLengthLeft(s,
32),
26486 exports.toBuffer(v -
27)
26491 * Convert signature format of the `eth_sign` RPC method to signature parameters
26492 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
26493 * @param {String} sig
26496 exports.fromRpcSig = function (sig) {
26497 sig = exports.toBuffer(sig)
26499 // NOTE: with potential introduction of chainId this might need to be updated
26500 if (sig.length !==
65) {
26501 throw new Error('Invalid signature length')
26505 // support both versions of `eth_sign` responses
26512 r: sig.slice(
0,
32),
26513 s: sig.slice(
32,
64)
26518 * Returns the ethereum address of a given private key
26519 * @param {Buffer} privateKey A private key must be
256 bits wide
26522 exports.privateToAddress = function (privateKey) {
26523 return exports.publicToAddress(privateToPublic(privateKey))
26527 * Checks if the address is a valid. Accepts checksummed addresses too
26528 * @param {String} address
26529 * @return {Boolean}
26531 exports.isValidAddress = function (address) {
26532 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
26536 * Returns a checksummed address
26537 * @param {String} address
26540 exports.toChecksumAddress = function (address) {
26541 address = exports.stripHexPrefix(address).toLowerCase()
26542 var hash = exports.sha3(address).toString('hex')
26545 for (var i =
0; i < address.length; i++) {
26546 if (parseInt(hash[i],
16)
>=
8) {
26547 ret += address[i].toUpperCase()
26557 * Checks if the address is a valid checksummed address
26558 * @param {Buffer} address
26559 * @return {Boolean}
26561 exports.isValidChecksumAddress = function (address) {
26562 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
26566 * Generates an address of a newly created contract
26567 * @param {Buffer} from the address which is creating this new address
26568 * @param {Buffer} nonce the nonce of the from account
26571 exports.generateAddress = function (from, nonce) {
26572 from = exports.toBuffer(from)
26573 nonce = new BN(nonce)
26575 if (nonce.isZero()) {
26576 // in RLP we want to encode null in the case of zero nonce
26577 // read the RLP documentation for an answer if you dare
26580 nonce = Buffer.from(nonce.toArray())
26583 // Only take the lower
160bits of the hash
26584 return exports.rlphash([from, nonce]).slice(-
20)
26588 * Returns true if the supplied address belongs to a precompiled account
26589 * @param {Buffer|String} address
26590 * @return {Boolean}
26592 exports.isPrecompiled = function (address) {
26593 var a = exports.unpad(address)
26594 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
26598 * Adds
"0x" to a given `String` if it does not already start with
"0x"
26599 * @param {String} str
26602 exports.addHexPrefix = function (str) {
26603 if (typeof str !== 'string') {
26607 return exports.isHexPrefixed(str) ? str : '
0x' + str
26611 * Validate ECDSA signature
26612 * @method isValidSignature
26613 * @param {Buffer} v
26614 * @param {Buffer} r
26615 * @param {Buffer} s
26616 * @param {Boolean} [homestead=true]
26617 * @return {Boolean}
26620 exports.isValidSignature = function (v, r, s, homestead) {
26621 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
26622 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
26624 if (r.length !==
32 || s.length !==
32) {
26628 if (v !==
27 && v !==
28) {
26635 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
26639 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
26647 * Converts a `Buffer` or `Array` to JSON
26648 * @param {Buffer|Array} ba
26649 * @return {Array|String|null}
26651 exports.baToJSON = function (ba) {
26652 if (Buffer.isBuffer(ba)) {
26653 return '
0x' + ba.toString('hex')
26654 } else if (ba instanceof Array) {
26656 for (var i =
0; i < ba.length; i++) {
26657 array.push(exports.baToJSON(ba[i]))
26664 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
26665 * @param {Object} self the `Object` to define properties on
26666 * @param {Array} fields an array fields to define. Fields can contain:
26667 * * `name` - the name of the properties
26668 * * `length` - the number of bytes the field can have
26669 * * `allowLess` - if the field can be less than the length
26671 * @param {*} data data to be validated against the definitions
26673 exports.defineProperties = function (self, fields, data) {
26677 // attach the `toJSON`
26678 self.toJSON = function (label) {
26681 self._fields.forEach(function (field) {
26682 obj[field] = '
0x' + self[field].toString('hex')
26686 return exports.baToJSON(this.raw)
26689 self.serialize = function serialize () {
26690 return rlp.encode(self.raw)
26693 fields.forEach(function (field, i) {
26694 self._fields.push(field.name)
26695 function getter () {
26698 function setter (v) {
26699 v = exports.toBuffer(v)
26701 if (v.toString('hex') === '
00' && !field.allowZero) {
26702 v = Buffer.allocUnsafe(
0)
26705 if (field.allowLess && field.length) {
26706 v = exports.stripZeros(v)
26707 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
26708 } else if (!(field.allowZero && v.length ===
0) && field.length) {
26709 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
26715 Object.defineProperty(self, field.name, {
26717 configurable: true,
26722 if (field.default) {
26723 self[field.name] = field.default
26728 Object.defineProperty(self, field.alias, {
26730 configurable: true,
26737 // if the constuctor is passed data
26739 if (typeof data === 'string') {
26740 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
26743 if (Buffer.isBuffer(data)) {
26744 data = rlp.decode(data)
26747 if (Array.isArray(data)) {
26748 if (data.length
> self._fields.length) {
26749 throw (new Error('wrong number of fields in data'))
26752 // make sure all the items are buffers
26753 data.forEach(function (d, i) {
26754 self[self._fields[i]] = exports.toBuffer(d)
26756 } else if (typeof data === 'object') {
26757 const keys = Object.keys(data)
26758 fields.forEach(function (field) {
26759 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
26760 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
26763 throw new Error('invalid data')
26768 }).call(this,require("buffer").Buffer)
26769 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
26770 (function (Buffer){
26771 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
26772 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
26773 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
26775 function check (buffer) {
26776 if (buffer.length <
8) return false
26777 if (buffer.length
> 72) return false
26778 if (buffer[
0] !==
0x30) return false
26779 if (buffer[
1] !== buffer.length -
2) return false
26780 if (buffer[
2] !==
0x02) return false
26782 var lenR = buffer[
3]
26783 if (lenR ===
0) return false
26784 if (
5 + lenR
>= buffer.length) return false
26785 if (buffer[
4 + lenR] !==
0x02) return false
26787 var lenS = buffer[
5 + lenR]
26788 if (lenS ===
0) return false
26789 if ((
6 + lenR + lenS) !== buffer.length) return false
26791 if (buffer[
4] &
0x80) return false
26792 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
26794 if (buffer[lenR +
6] &
0x80) return false
26795 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
26799 function decode (buffer) {
26800 if (buffer.length <
8) throw new Error('DER sequence length is too short')
26801 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
26802 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
26803 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
26804 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
26806 var lenR = buffer[
3]
26807 if (lenR ===
0) throw new Error('R length is zero')
26808 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
26809 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
26811 var lenS = buffer[
5 + lenR]
26812 if (lenS ===
0) throw new Error('S length is zero')
26813 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
26815 if (buffer[
4] &
0x80) throw new Error('R value is negative')
26816 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
26818 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
26819 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
26821 // non-BIP66 - extract R, S values
26823 r: buffer.slice(
4,
4 + lenR),
26824 s: buffer.slice(
6 + lenR)
26829 * Expects r and s to be positive DER integers.
26831 * The DER format uses the most significant bit as a sign bit (&
0x80).
26832 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
26847 *
62300 =
> 0x00f35c
26848 * -
62300 =
> 0xff0ca4
26850 function encode (r, s) {
26851 var lenR = r.length
26852 var lenS = s.length
26853 if (lenR ===
0) throw new Error('R length is zero')
26854 if (lenS ===
0) throw new Error('S length is zero')
26855 if (lenR
> 33) throw new Error('R length is too long')
26856 if (lenS
> 33) throw new Error('S length is too long')
26857 if (r[
0] &
0x80) throw new Error('R value is negative')
26858 if (s[
0] &
0x80) throw new Error('S value is negative')
26859 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
26860 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
26862 var signature = new Buffer(
6 + lenR + lenS)
26864 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
26865 signature[
0] =
0x30
26866 signature[
1] = signature.length -
2
26867 signature[
2] =
0x02
26868 signature[
3] = r.length
26869 r.copy(signature,
4)
26870 signature[
4 + lenR] =
0x02
26871 signature[
5 + lenR] = s.length
26872 s.copy(signature,
6 + lenR)
26883 }).call(this,require(
"buffer").Buffer)
26884 },{
"buffer":
5}],
33:[function(require,module,exports){
26885 (function (module, exports) {
26889 function assert (val, msg) {
26890 if (!val) throw new Error(msg || 'Assertion failed');
26893 // Could use `inherits` module, but don't want to move from single file
26894 // architecture yet.
26895 function inherits (ctor, superCtor) {
26896 ctor.super_ = superCtor;
26897 var TempCtor = function () {};
26898 TempCtor.prototype = superCtor.prototype;
26899 ctor.prototype = new TempCtor();
26900 ctor.prototype.constructor = ctor;
26905 function BN (number, base, endian) {
26906 if (BN.isBN(number)) {
26914 // Reduction context
26917 if (number !== null) {
26918 if (base === 'le' || base === 'be') {
26923 this._init(number ||
0, base ||
10, endian || 'be');
26926 if (typeof module === 'object') {
26927 module.exports = BN;
26937 Buffer = require('buf' + 'fer').Buffer;
26941 BN.isBN = function isBN (num) {
26942 if (num instanceof BN) {
26946 return num !== null && typeof num === 'object' &&
26947 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
26950 BN.max = function max (left, right) {
26951 if (left.cmp(right)
> 0) return left;
26955 BN.min = function min (left, right) {
26956 if (left.cmp(right) <
0) return left;
26960 BN.prototype._init = function init (number, base, endian) {
26961 if (typeof number === 'number') {
26962 return this._initNumber(number, base, endian);
26965 if (typeof number === 'object') {
26966 return this._initArray(number, base, endian);
26969 if (base === 'hex') {
26972 assert(base === (base |
0) && base
>=
2 && base <=
36);
26974 number = number.toString().replace(/\s+/g, '');
26976 if (number[
0] === '-') {
26981 this._parseHex(number, start);
26983 this._parseBase(number, base, start);
26986 if (number[
0] === '-') {
26992 if (endian !== 'le') return;
26994 this._initArray(this.toArray(), base, endian);
26997 BN.prototype._initNumber = function _initNumber (number, base, endian) {
27002 if (number <
0x4000000) {
27003 this.words = [ number &
0x3ffffff ];
27005 } else if (number <
0x10000000000000) {
27007 number &
0x3ffffff,
27008 (number /
0x4000000) &
0x3ffffff
27012 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
27014 number &
0x3ffffff,
27015 (number /
0x4000000) &
0x3ffffff,
27021 if (endian !== 'le') return;
27023 // Reverse the bytes
27024 this._initArray(this.toArray(), base, endian);
27027 BN.prototype._initArray = function _initArray (number, base, endian) {
27028 // Perhaps a Uint8Array
27029 assert(typeof number.length === 'number');
27030 if (number.length <=
0) {
27031 this.words = [
0 ];
27036 this.length = Math.ceil(number.length /
3);
27037 this.words = new Array(this.length);
27038 for (var i =
0; i < this.length; i++) {
27044 if (endian === 'be') {
27045 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
27046 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
27047 this.words[j] |= (w << off) &
0x3ffffff;
27048 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
27055 } else if (endian === 'le') {
27056 for (i =
0, j =
0; i < number.length; i +=
3) {
27057 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
27058 this.words[j] |= (w << off) &
0x3ffffff;
27059 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
27067 return this.strip();
27070 function parseHex (str, start, end) {
27072 var len = Math.min(str.length, end);
27073 for (var i = start; i < len; i++) {
27074 var c = str.charCodeAt(i) -
48;
27079 if (c
>=
49 && c <=
54) {
27083 } else if (c
>=
17 && c <=
22) {
27094 BN.prototype._parseHex = function _parseHex (number, start) {
27095 // Create possibly bigger array to ensure that it fits the number
27096 this.length = Math.ceil((number.length - start) /
6);
27097 this.words = new Array(this.length);
27098 for (var i =
0; i < this.length; i++) {
27103 // Scan
24-bit chunks and add them to the number
27105 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
27106 w = parseHex(number, i, i +
6);
27107 this.words[j] |= (w << off) &
0x3ffffff;
27108 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
27109 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
27116 if (i +
6 !== start) {
27117 w = parseHex(number, start, i +
6);
27118 this.words[j] |= (w << off) &
0x3ffffff;
27119 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
27124 function parseBase (str, start, end, mul) {
27126 var len = Math.min(str.length, end);
27127 for (var i = start; i < len; i++) {
27128 var c = str.charCodeAt(i) -
48;
27137 } else if (c
>=
17) {
27148 BN.prototype._parseBase = function _parseBase (number, base, start) {
27149 // Initialize as zero
27150 this.words = [
0 ];
27153 // Find length of limb in base
27154 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
27158 limbPow = (limbPow / base) |
0;
27160 var total = number.length - start;
27161 var mod = total % limbLen;
27162 var end = Math.min(total, total - mod) + start;
27165 for (var i = start; i < end; i += limbLen) {
27166 word = parseBase(number, i, i + limbLen, base);
27168 this.imuln(limbPow);
27169 if (this.words[
0] + word <
0x4000000) {
27170 this.words[
0] += word;
27178 word = parseBase(number, i, number.length, base);
27180 for (i =
0; i < mod; i++) {
27185 if (this.words[
0] + word <
0x4000000) {
27186 this.words[
0] += word;
27193 BN.prototype.copy = function copy (dest) {
27194 dest.words = new Array(this.length);
27195 for (var i =
0; i < this.length; i++) {
27196 dest.words[i] = this.words[i];
27198 dest.length = this.length;
27199 dest.negative = this.negative;
27200 dest.red = this.red;
27203 BN.prototype.clone = function clone () {
27204 var r = new BN(null);
27209 BN.prototype._expand = function _expand (size) {
27210 while (this.length < size) {
27211 this.words[this.length++] =
0;
27216 // Remove leading `
0` from `this`
27217 BN.prototype.strip = function strip () {
27218 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
27221 return this._normSign();
27224 BN.prototype._normSign = function _normSign () {
27226 if (this.length ===
1 && this.words[
0] ===
0) {
27232 BN.prototype.inspect = function inspect () {
27233 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
27239 var groupSizes = [];
27240 var groupBases = [];
27244 while (++i < BN.wordSize) {
27253 while (++base <
36 +
1) {
27256 while (groupBase < (
1 << BN.wordSize) / base) {
27260 groupSizes[base] = groupSize;
27261 groupBases[base] = groupBase;
27283 '
0000000000000000',
27284 '
00000000000000000',
27285 '
000000000000000000',
27286 '
0000000000000000000',
27287 '
00000000000000000000',
27288 '
000000000000000000000',
27289 '
0000000000000000000000',
27290 '
00000000000000000000000',
27291 '
000000000000000000000000',
27292 '
0000000000000000000000000'
27297 25,
16,
12,
11,
10,
9,
8,
27298 8,
7,
7,
7,
7,
6,
6,
27299 6,
6,
6,
6,
6,
5,
5,
27300 5,
5,
5,
5,
5,
5,
5,
27301 5,
5,
5,
5,
5,
5,
5
27306 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
27307 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
27308 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
27309 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
27310 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
27313 BN.prototype.toString = function toString (base, padding) {
27315 padding = padding |
0 ||
1;
27318 if (base ===
16 || base === 'hex') {
27322 for (var i =
0; i < this.length; i++) {
27323 var w = this.words[i];
27324 var word = (((w << off) | carry) &
0xffffff).toString(
16);
27325 carry = (w
>>> (
24 - off)) &
0xffffff;
27326 if (carry !==
0 || i !== this.length -
1) {
27327 out = zeros[
6 - word.length] + word + out;
27338 out = carry.toString(
16) + out;
27340 while (out.length % padding !==
0) {
27343 if (this.negative !==
0) {
27349 if (base === (base |
0) && base
>=
2 && base <=
36) {
27350 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
27351 var groupSize = groupSizes[base];
27352 // var groupBase = Math.pow(base, groupSize);
27353 var groupBase = groupBases[base];
27355 var c = this.clone();
27357 while (!c.isZero()) {
27358 var r = c.modn(groupBase).toString(base);
27359 c = c.idivn(groupBase);
27362 out = zeros[groupSize - r.length] + r + out;
27367 if (this.isZero()) {
27370 while (out.length % padding !==
0) {
27373 if (this.negative !==
0) {
27379 assert(false, 'Base should be between
2 and
36');
27382 BN.prototype.toNumber = function toNumber () {
27383 var ret = this.words[
0];
27384 if (this.length ===
2) {
27385 ret += this.words[
1] *
0x4000000;
27386 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
27387 // NOTE: at this stage it is known that the top bit is set
27388 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
27389 } else if (this.length
> 2) {
27390 assert(false, 'Number can only safely store up to
53 bits');
27392 return (this.negative !==
0) ? -ret : ret;
27395 BN.prototype.toJSON = function toJSON () {
27396 return this.toString(
16);
27399 BN.prototype.toBuffer = function toBuffer (endian, length) {
27400 assert(typeof Buffer !== 'undefined');
27401 return this.toArrayLike(Buffer, endian, length);
27404 BN.prototype.toArray = function toArray (endian, length) {
27405 return this.toArrayLike(Array, endian, length);
27408 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
27409 var byteLength = this.byteLength();
27410 var reqLength = length || Math.max(
1, byteLength);
27411 assert(byteLength <= reqLength, 'byte array longer than desired length');
27412 assert(reqLength
> 0, 'Requested array length <=
0');
27415 var littleEndian = endian === 'le';
27416 var res = new ArrayType(reqLength);
27419 var q = this.clone();
27420 if (!littleEndian) {
27421 // Assume big-endian
27422 for (i =
0; i < reqLength - byteLength; i++) {
27426 for (i =
0; !q.isZero(); i++) {
27430 res[reqLength - i -
1] = b;
27433 for (i =
0; !q.isZero(); i++) {
27440 for (; i < reqLength; i++) {
27449 BN.prototype._countBits = function _countBits (w) {
27450 return
32 - Math.clz32(w);
27453 BN.prototype._countBits = function _countBits (w) {
27476 BN.prototype._zeroBits = function _zeroBits (w) {
27478 if (w ===
0) return
26;
27482 if ((t &
0x1fff) ===
0) {
27486 if ((t &
0x7f) ===
0) {
27490 if ((t &
0xf) ===
0) {
27494 if ((t &
0x3) ===
0) {
27498 if ((t &
0x1) ===
0) {
27504 // Return number of used bits in a BN
27505 BN.prototype.bitLength = function bitLength () {
27506 var w = this.words[this.length -
1];
27507 var hi = this._countBits(w);
27508 return (this.length -
1) *
26 + hi;
27511 function toBitArray (num) {
27512 var w = new Array(num.bitLength());
27514 for (var bit =
0; bit < w.length; bit++) {
27515 var off = (bit /
26) |
0;
27516 var wbit = bit %
26;
27518 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
27524 // Number of trailing zero bits
27525 BN.prototype.zeroBits = function zeroBits () {
27526 if (this.isZero()) return
0;
27529 for (var i =
0; i < this.length; i++) {
27530 var b = this._zeroBits(this.words[i]);
27532 if (b !==
26) break;
27537 BN.prototype.byteLength = function byteLength () {
27538 return Math.ceil(this.bitLength() /
8);
27541 BN.prototype.toTwos = function toTwos (width) {
27542 if (this.negative !==
0) {
27543 return this.abs().inotn(width).iaddn(
1);
27545 return this.clone();
27548 BN.prototype.fromTwos = function fromTwos (width) {
27549 if (this.testn(width -
1)) {
27550 return this.notn(width).iaddn(
1).ineg();
27552 return this.clone();
27555 BN.prototype.isNeg = function isNeg () {
27556 return this.negative !==
0;
27559 // Return negative clone of `this`
27560 BN.prototype.neg = function neg () {
27561 return this.clone().ineg();
27564 BN.prototype.ineg = function ineg () {
27565 if (!this.isZero()) {
27566 this.negative ^=
1;
27572 // Or `num` with `this` in-place
27573 BN.prototype.iuor = function iuor (num) {
27574 while (this.length < num.length) {
27575 this.words[this.length++] =
0;
27578 for (var i =
0; i < num.length; i++) {
27579 this.words[i] = this.words[i] | num.words[i];
27582 return this.strip();
27585 BN.prototype.ior = function ior (num) {
27586 assert((this.negative | num.negative) ===
0);
27587 return this.iuor(num);
27590 // Or `num` with `this`
27591 BN.prototype.or = function or (num) {
27592 if (this.length
> num.length) return this.clone().ior(num);
27593 return num.clone().ior(this);
27596 BN.prototype.uor = function uor (num) {
27597 if (this.length
> num.length) return this.clone().iuor(num);
27598 return num.clone().iuor(this);
27601 // And `num` with `this` in-place
27602 BN.prototype.iuand = function iuand (num) {
27603 // b = min-length(num, this)
27605 if (this.length
> num.length) {
27611 for (var i =
0; i < b.length; i++) {
27612 this.words[i] = this.words[i] & num.words[i];
27615 this.length = b.length;
27617 return this.strip();
27620 BN.prototype.iand = function iand (num) {
27621 assert((this.negative | num.negative) ===
0);
27622 return this.iuand(num);
27625 // And `num` with `this`
27626 BN.prototype.and = function and (num) {
27627 if (this.length
> num.length) return this.clone().iand(num);
27628 return num.clone().iand(this);
27631 BN.prototype.uand = function uand (num) {
27632 if (this.length
> num.length) return this.clone().iuand(num);
27633 return num.clone().iuand(this);
27636 // Xor `num` with `this` in-place
27637 BN.prototype.iuxor = function iuxor (num) {
27638 // a.length
> b.length
27641 if (this.length
> num.length) {
27649 for (var i =
0; i < b.length; i++) {
27650 this.words[i] = a.words[i] ^ b.words[i];
27654 for (; i < a.length; i++) {
27655 this.words[i] = a.words[i];
27659 this.length = a.length;
27661 return this.strip();
27664 BN.prototype.ixor = function ixor (num) {
27665 assert((this.negative | num.negative) ===
0);
27666 return this.iuxor(num);
27669 // Xor `num` with `this`
27670 BN.prototype.xor = function xor (num) {
27671 if (this.length
> num.length) return this.clone().ixor(num);
27672 return num.clone().ixor(this);
27675 BN.prototype.uxor = function uxor (num) {
27676 if (this.length
> num.length) return this.clone().iuxor(num);
27677 return num.clone().iuxor(this);
27680 // Not ``this`` with ``width`` bitwidth
27681 BN.prototype.inotn = function inotn (width) {
27682 assert(typeof width === 'number' && width
>=
0);
27684 var bytesNeeded = Math.ceil(width /
26) |
0;
27685 var bitsLeft = width %
26;
27687 // Extend the buffer with leading zeroes
27688 this._expand(bytesNeeded);
27690 if (bitsLeft
> 0) {
27694 // Handle complete words
27695 for (var i =
0; i < bytesNeeded; i++) {
27696 this.words[i] = ~this.words[i] &
0x3ffffff;
27699 // Handle the residue
27700 if (bitsLeft
> 0) {
27701 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
27704 // And remove leading zeroes
27705 return this.strip();
27708 BN.prototype.notn = function notn (width) {
27709 return this.clone().inotn(width);
27712 // Set `bit` of `this`
27713 BN.prototype.setn = function setn (bit, val) {
27714 assert(typeof bit === 'number' && bit
>=
0);
27716 var off = (bit /
26) |
0;
27717 var wbit = bit %
26;
27719 this._expand(off +
1);
27722 this.words[off] = this.words[off] | (
1 << wbit);
27724 this.words[off] = this.words[off] & ~(
1 << wbit);
27727 return this.strip();
27730 // Add `num` to `this` in-place
27731 BN.prototype.iadd = function iadd (num) {
27734 // negative + positive
27735 if (this.negative !==
0 && num.negative ===
0) {
27737 r = this.isub(num);
27738 this.negative ^=
1;
27739 return this._normSign();
27741 // positive + negative
27742 } else if (this.negative ===
0 && num.negative !==
0) {
27744 r = this.isub(num);
27746 return r._normSign();
27749 // a.length
> b.length
27751 if (this.length
> num.length) {
27760 for (var i =
0; i < b.length; i++) {
27761 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
27762 this.words[i] = r &
0x3ffffff;
27765 for (; carry !==
0 && i < a.length; i++) {
27766 r = (a.words[i] |
0) + carry;
27767 this.words[i] = r &
0x3ffffff;
27771 this.length = a.length;
27773 this.words[this.length] = carry;
27775 // Copy the rest of the words
27776 } else if (a !== this) {
27777 for (; i < a.length; i++) {
27778 this.words[i] = a.words[i];
27785 // Add `num` to `this`
27786 BN.prototype.add = function add (num) {
27788 if (num.negative !==
0 && this.negative ===
0) {
27790 res = this.sub(num);
27793 } else if (num.negative ===
0 && this.negative !==
0) {
27795 res = num.sub(this);
27800 if (this.length
> num.length) return this.clone().iadd(num);
27802 return num.clone().iadd(this);
27805 // Subtract `num` from `this` in-place
27806 BN.prototype.isub = function isub (num) {
27807 // this - (-num) = this + num
27808 if (num.negative !==
0) {
27810 var r = this.iadd(num);
27812 return r._normSign();
27814 // -this - num = -(this + num)
27815 } else if (this.negative !==
0) {
27819 return this._normSign();
27822 // At this point both numbers are positive
27823 var cmp = this.cmp(num);
27825 // Optimization - zeroify
27844 for (var i =
0; i < b.length; i++) {
27845 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
27847 this.words[i] = r &
0x3ffffff;
27849 for (; carry !==
0 && i < a.length; i++) {
27850 r = (a.words[i] |
0) + carry;
27852 this.words[i] = r &
0x3ffffff;
27855 // Copy rest of the words
27856 if (carry ===
0 && i < a.length && a !== this) {
27857 for (; i < a.length; i++) {
27858 this.words[i] = a.words[i];
27862 this.length = Math.max(this.length, i);
27868 return this.strip();
27871 // Subtract `num` from `this`
27872 BN.prototype.sub = function sub (num) {
27873 return this.clone().isub(num);
27876 function smallMulTo (self, num, out) {
27877 out.negative = num.negative ^ self.negative;
27878 var len = (self.length + num.length) |
0;
27880 len = (len -
1) |
0;
27882 // Peel one iteration (compiler can't do it, because of code complexity)
27883 var a = self.words[
0] |
0;
27884 var b = num.words[
0] |
0;
27887 var lo = r &
0x3ffffff;
27888 var carry = (r /
0x4000000) |
0;
27891 for (var k =
1; k < len; k++) {
27892 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
27893 // note that ncarry could be
>=
0x3ffffff
27894 var ncarry = carry
>>> 26;
27895 var rword = carry &
0x3ffffff;
27896 var maxJ = Math.min(k, num.length -
1);
27897 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
27898 var i = (k - j) |
0;
27899 a = self.words[i] |
0;
27900 b = num.words[j] |
0;
27902 ncarry += (r /
0x4000000) |
0;
27903 rword = r &
0x3ffffff;
27905 out.words[k] = rword |
0;
27906 carry = ncarry |
0;
27909 out.words[k] = carry |
0;
27914 return out.strip();
27917 // TODO(indutny): it may be reasonable to omit it for users who don't need
27918 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
27919 // multiplication (like elliptic secp256k1).
27920 var comb10MulTo = function comb10MulTo (self, num, out) {
27921 var a = self.words;
27929 var al0 = a0 &
0x1fff;
27930 var ah0 = a0
>>> 13;
27932 var al1 = a1 &
0x1fff;
27933 var ah1 = a1
>>> 13;
27935 var al2 = a2 &
0x1fff;
27936 var ah2 = a2
>>> 13;
27938 var al3 = a3 &
0x1fff;
27939 var ah3 = a3
>>> 13;
27941 var al4 = a4 &
0x1fff;
27942 var ah4 = a4
>>> 13;
27944 var al5 = a5 &
0x1fff;
27945 var ah5 = a5
>>> 13;
27947 var al6 = a6 &
0x1fff;
27948 var ah6 = a6
>>> 13;
27950 var al7 = a7 &
0x1fff;
27951 var ah7 = a7
>>> 13;
27953 var al8 = a8 &
0x1fff;
27954 var ah8 = a8
>>> 13;
27956 var al9 = a9 &
0x1fff;
27957 var ah9 = a9
>>> 13;
27959 var bl0 = b0 &
0x1fff;
27960 var bh0 = b0
>>> 13;
27962 var bl1 = b1 &
0x1fff;
27963 var bh1 = b1
>>> 13;
27965 var bl2 = b2 &
0x1fff;
27966 var bh2 = b2
>>> 13;
27968 var bl3 = b3 &
0x1fff;
27969 var bh3 = b3
>>> 13;
27971 var bl4 = b4 &
0x1fff;
27972 var bh4 = b4
>>> 13;
27974 var bl5 = b5 &
0x1fff;
27975 var bh5 = b5
>>> 13;
27977 var bl6 = b6 &
0x1fff;
27978 var bh6 = b6
>>> 13;
27980 var bl7 = b7 &
0x1fff;
27981 var bh7 = b7
>>> 13;
27983 var bl8 = b8 &
0x1fff;
27984 var bh8 = b8
>>> 13;
27986 var bl9 = b9 &
0x1fff;
27987 var bh9 = b9
>>> 13;
27989 out.negative = self.negative ^ num.negative;
27992 lo = Math.imul(al0, bl0);
27993 mid = Math.imul(al0, bh0);
27994 mid = (mid + Math.imul(ah0, bl0)) |
0;
27995 hi = Math.imul(ah0, bh0);
27996 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
27997 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
28000 lo = Math.imul(al1, bl0);
28001 mid = Math.imul(al1, bh0);
28002 mid = (mid + Math.imul(ah1, bl0)) |
0;
28003 hi = Math.imul(ah1, bh0);
28004 lo = (lo + Math.imul(al0, bl1)) |
0;
28005 mid = (mid + Math.imul(al0, bh1)) |
0;
28006 mid = (mid + Math.imul(ah0, bl1)) |
0;
28007 hi = (hi + Math.imul(ah0, bh1)) |
0;
28008 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28009 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
28012 lo = Math.imul(al2, bl0);
28013 mid = Math.imul(al2, bh0);
28014 mid = (mid + Math.imul(ah2, bl0)) |
0;
28015 hi = Math.imul(ah2, bh0);
28016 lo = (lo + Math.imul(al1, bl1)) |
0;
28017 mid = (mid + Math.imul(al1, bh1)) |
0;
28018 mid = (mid + Math.imul(ah1, bl1)) |
0;
28019 hi = (hi + Math.imul(ah1, bh1)) |
0;
28020 lo = (lo + Math.imul(al0, bl2)) |
0;
28021 mid = (mid + Math.imul(al0, bh2)) |
0;
28022 mid = (mid + Math.imul(ah0, bl2)) |
0;
28023 hi = (hi + Math.imul(ah0, bh2)) |
0;
28024 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28025 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
28028 lo = Math.imul(al3, bl0);
28029 mid = Math.imul(al3, bh0);
28030 mid = (mid + Math.imul(ah3, bl0)) |
0;
28031 hi = Math.imul(ah3, bh0);
28032 lo = (lo + Math.imul(al2, bl1)) |
0;
28033 mid = (mid + Math.imul(al2, bh1)) |
0;
28034 mid = (mid + Math.imul(ah2, bl1)) |
0;
28035 hi = (hi + Math.imul(ah2, bh1)) |
0;
28036 lo = (lo + Math.imul(al1, bl2)) |
0;
28037 mid = (mid + Math.imul(al1, bh2)) |
0;
28038 mid = (mid + Math.imul(ah1, bl2)) |
0;
28039 hi = (hi + Math.imul(ah1, bh2)) |
0;
28040 lo = (lo + Math.imul(al0, bl3)) |
0;
28041 mid = (mid + Math.imul(al0, bh3)) |
0;
28042 mid = (mid + Math.imul(ah0, bl3)) |
0;
28043 hi = (hi + Math.imul(ah0, bh3)) |
0;
28044 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28045 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
28048 lo = Math.imul(al4, bl0);
28049 mid = Math.imul(al4, bh0);
28050 mid = (mid + Math.imul(ah4, bl0)) |
0;
28051 hi = Math.imul(ah4, bh0);
28052 lo = (lo + Math.imul(al3, bl1)) |
0;
28053 mid = (mid + Math.imul(al3, bh1)) |
0;
28054 mid = (mid + Math.imul(ah3, bl1)) |
0;
28055 hi = (hi + Math.imul(ah3, bh1)) |
0;
28056 lo = (lo + Math.imul(al2, bl2)) |
0;
28057 mid = (mid + Math.imul(al2, bh2)) |
0;
28058 mid = (mid + Math.imul(ah2, bl2)) |
0;
28059 hi = (hi + Math.imul(ah2, bh2)) |
0;
28060 lo = (lo + Math.imul(al1, bl3)) |
0;
28061 mid = (mid + Math.imul(al1, bh3)) |
0;
28062 mid = (mid + Math.imul(ah1, bl3)) |
0;
28063 hi = (hi + Math.imul(ah1, bh3)) |
0;
28064 lo = (lo + Math.imul(al0, bl4)) |
0;
28065 mid = (mid + Math.imul(al0, bh4)) |
0;
28066 mid = (mid + Math.imul(ah0, bl4)) |
0;
28067 hi = (hi + Math.imul(ah0, bh4)) |
0;
28068 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28069 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
28072 lo = Math.imul(al5, bl0);
28073 mid = Math.imul(al5, bh0);
28074 mid = (mid + Math.imul(ah5, bl0)) |
0;
28075 hi = Math.imul(ah5, bh0);
28076 lo = (lo + Math.imul(al4, bl1)) |
0;
28077 mid = (mid + Math.imul(al4, bh1)) |
0;
28078 mid = (mid + Math.imul(ah4, bl1)) |
0;
28079 hi = (hi + Math.imul(ah4, bh1)) |
0;
28080 lo = (lo + Math.imul(al3, bl2)) |
0;
28081 mid = (mid + Math.imul(al3, bh2)) |
0;
28082 mid = (mid + Math.imul(ah3, bl2)) |
0;
28083 hi = (hi + Math.imul(ah3, bh2)) |
0;
28084 lo = (lo + Math.imul(al2, bl3)) |
0;
28085 mid = (mid + Math.imul(al2, bh3)) |
0;
28086 mid = (mid + Math.imul(ah2, bl3)) |
0;
28087 hi = (hi + Math.imul(ah2, bh3)) |
0;
28088 lo = (lo + Math.imul(al1, bl4)) |
0;
28089 mid = (mid + Math.imul(al1, bh4)) |
0;
28090 mid = (mid + Math.imul(ah1, bl4)) |
0;
28091 hi = (hi + Math.imul(ah1, bh4)) |
0;
28092 lo = (lo + Math.imul(al0, bl5)) |
0;
28093 mid = (mid + Math.imul(al0, bh5)) |
0;
28094 mid = (mid + Math.imul(ah0, bl5)) |
0;
28095 hi = (hi + Math.imul(ah0, bh5)) |
0;
28096 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28097 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
28100 lo = Math.imul(al6, bl0);
28101 mid = Math.imul(al6, bh0);
28102 mid = (mid + Math.imul(ah6, bl0)) |
0;
28103 hi = Math.imul(ah6, bh0);
28104 lo = (lo + Math.imul(al5, bl1)) |
0;
28105 mid = (mid + Math.imul(al5, bh1)) |
0;
28106 mid = (mid + Math.imul(ah5, bl1)) |
0;
28107 hi = (hi + Math.imul(ah5, bh1)) |
0;
28108 lo = (lo + Math.imul(al4, bl2)) |
0;
28109 mid = (mid + Math.imul(al4, bh2)) |
0;
28110 mid = (mid + Math.imul(ah4, bl2)) |
0;
28111 hi = (hi + Math.imul(ah4, bh2)) |
0;
28112 lo = (lo + Math.imul(al3, bl3)) |
0;
28113 mid = (mid + Math.imul(al3, bh3)) |
0;
28114 mid = (mid + Math.imul(ah3, bl3)) |
0;
28115 hi = (hi + Math.imul(ah3, bh3)) |
0;
28116 lo = (lo + Math.imul(al2, bl4)) |
0;
28117 mid = (mid + Math.imul(al2, bh4)) |
0;
28118 mid = (mid + Math.imul(ah2, bl4)) |
0;
28119 hi = (hi + Math.imul(ah2, bh4)) |
0;
28120 lo = (lo + Math.imul(al1, bl5)) |
0;
28121 mid = (mid + Math.imul(al1, bh5)) |
0;
28122 mid = (mid + Math.imul(ah1, bl5)) |
0;
28123 hi = (hi + Math.imul(ah1, bh5)) |
0;
28124 lo = (lo + Math.imul(al0, bl6)) |
0;
28125 mid = (mid + Math.imul(al0, bh6)) |
0;
28126 mid = (mid + Math.imul(ah0, bl6)) |
0;
28127 hi = (hi + Math.imul(ah0, bh6)) |
0;
28128 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28129 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
28132 lo = Math.imul(al7, bl0);
28133 mid = Math.imul(al7, bh0);
28134 mid = (mid + Math.imul(ah7, bl0)) |
0;
28135 hi = Math.imul(ah7, bh0);
28136 lo = (lo + Math.imul(al6, bl1)) |
0;
28137 mid = (mid + Math.imul(al6, bh1)) |
0;
28138 mid = (mid + Math.imul(ah6, bl1)) |
0;
28139 hi = (hi + Math.imul(ah6, bh1)) |
0;
28140 lo = (lo + Math.imul(al5, bl2)) |
0;
28141 mid = (mid + Math.imul(al5, bh2)) |
0;
28142 mid = (mid + Math.imul(ah5, bl2)) |
0;
28143 hi = (hi + Math.imul(ah5, bh2)) |
0;
28144 lo = (lo + Math.imul(al4, bl3)) |
0;
28145 mid = (mid + Math.imul(al4, bh3)) |
0;
28146 mid = (mid + Math.imul(ah4, bl3)) |
0;
28147 hi = (hi + Math.imul(ah4, bh3)) |
0;
28148 lo = (lo + Math.imul(al3, bl4)) |
0;
28149 mid = (mid + Math.imul(al3, bh4)) |
0;
28150 mid = (mid + Math.imul(ah3, bl4)) |
0;
28151 hi = (hi + Math.imul(ah3, bh4)) |
0;
28152 lo = (lo + Math.imul(al2, bl5)) |
0;
28153 mid = (mid + Math.imul(al2, bh5)) |
0;
28154 mid = (mid + Math.imul(ah2, bl5)) |
0;
28155 hi = (hi + Math.imul(ah2, bh5)) |
0;
28156 lo = (lo + Math.imul(al1, bl6)) |
0;
28157 mid = (mid + Math.imul(al1, bh6)) |
0;
28158 mid = (mid + Math.imul(ah1, bl6)) |
0;
28159 hi = (hi + Math.imul(ah1, bh6)) |
0;
28160 lo = (lo + Math.imul(al0, bl7)) |
0;
28161 mid = (mid + Math.imul(al0, bh7)) |
0;
28162 mid = (mid + Math.imul(ah0, bl7)) |
0;
28163 hi = (hi + Math.imul(ah0, bh7)) |
0;
28164 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28165 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
28168 lo = Math.imul(al8, bl0);
28169 mid = Math.imul(al8, bh0);
28170 mid = (mid + Math.imul(ah8, bl0)) |
0;
28171 hi = Math.imul(ah8, bh0);
28172 lo = (lo + Math.imul(al7, bl1)) |
0;
28173 mid = (mid + Math.imul(al7, bh1)) |
0;
28174 mid = (mid + Math.imul(ah7, bl1)) |
0;
28175 hi = (hi + Math.imul(ah7, bh1)) |
0;
28176 lo = (lo + Math.imul(al6, bl2)) |
0;
28177 mid = (mid + Math.imul(al6, bh2)) |
0;
28178 mid = (mid + Math.imul(ah6, bl2)) |
0;
28179 hi = (hi + Math.imul(ah6, bh2)) |
0;
28180 lo = (lo + Math.imul(al5, bl3)) |
0;
28181 mid = (mid + Math.imul(al5, bh3)) |
0;
28182 mid = (mid + Math.imul(ah5, bl3)) |
0;
28183 hi = (hi + Math.imul(ah5, bh3)) |
0;
28184 lo = (lo + Math.imul(al4, bl4)) |
0;
28185 mid = (mid + Math.imul(al4, bh4)) |
0;
28186 mid = (mid + Math.imul(ah4, bl4)) |
0;
28187 hi = (hi + Math.imul(ah4, bh4)) |
0;
28188 lo = (lo + Math.imul(al3, bl5)) |
0;
28189 mid = (mid + Math.imul(al3, bh5)) |
0;
28190 mid = (mid + Math.imul(ah3, bl5)) |
0;
28191 hi = (hi + Math.imul(ah3, bh5)) |
0;
28192 lo = (lo + Math.imul(al2, bl6)) |
0;
28193 mid = (mid + Math.imul(al2, bh6)) |
0;
28194 mid = (mid + Math.imul(ah2, bl6)) |
0;
28195 hi = (hi + Math.imul(ah2, bh6)) |
0;
28196 lo = (lo + Math.imul(al1, bl7)) |
0;
28197 mid = (mid + Math.imul(al1, bh7)) |
0;
28198 mid = (mid + Math.imul(ah1, bl7)) |
0;
28199 hi = (hi + Math.imul(ah1, bh7)) |
0;
28200 lo = (lo + Math.imul(al0, bl8)) |
0;
28201 mid = (mid + Math.imul(al0, bh8)) |
0;
28202 mid = (mid + Math.imul(ah0, bl8)) |
0;
28203 hi = (hi + Math.imul(ah0, bh8)) |
0;
28204 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28205 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
28208 lo = Math.imul(al9, bl0);
28209 mid = Math.imul(al9, bh0);
28210 mid = (mid + Math.imul(ah9, bl0)) |
0;
28211 hi = Math.imul(ah9, bh0);
28212 lo = (lo + Math.imul(al8, bl1)) |
0;
28213 mid = (mid + Math.imul(al8, bh1)) |
0;
28214 mid = (mid + Math.imul(ah8, bl1)) |
0;
28215 hi = (hi + Math.imul(ah8, bh1)) |
0;
28216 lo = (lo + Math.imul(al7, bl2)) |
0;
28217 mid = (mid + Math.imul(al7, bh2)) |
0;
28218 mid = (mid + Math.imul(ah7, bl2)) |
0;
28219 hi = (hi + Math.imul(ah7, bh2)) |
0;
28220 lo = (lo + Math.imul(al6, bl3)) |
0;
28221 mid = (mid + Math.imul(al6, bh3)) |
0;
28222 mid = (mid + Math.imul(ah6, bl3)) |
0;
28223 hi = (hi + Math.imul(ah6, bh3)) |
0;
28224 lo = (lo + Math.imul(al5, bl4)) |
0;
28225 mid = (mid + Math.imul(al5, bh4)) |
0;
28226 mid = (mid + Math.imul(ah5, bl4)) |
0;
28227 hi = (hi + Math.imul(ah5, bh4)) |
0;
28228 lo = (lo + Math.imul(al4, bl5)) |
0;
28229 mid = (mid + Math.imul(al4, bh5)) |
0;
28230 mid = (mid + Math.imul(ah4, bl5)) |
0;
28231 hi = (hi + Math.imul(ah4, bh5)) |
0;
28232 lo = (lo + Math.imul(al3, bl6)) |
0;
28233 mid = (mid + Math.imul(al3, bh6)) |
0;
28234 mid = (mid + Math.imul(ah3, bl6)) |
0;
28235 hi = (hi + Math.imul(ah3, bh6)) |
0;
28236 lo = (lo + Math.imul(al2, bl7)) |
0;
28237 mid = (mid + Math.imul(al2, bh7)) |
0;
28238 mid = (mid + Math.imul(ah2, bl7)) |
0;
28239 hi = (hi + Math.imul(ah2, bh7)) |
0;
28240 lo = (lo + Math.imul(al1, bl8)) |
0;
28241 mid = (mid + Math.imul(al1, bh8)) |
0;
28242 mid = (mid + Math.imul(ah1, bl8)) |
0;
28243 hi = (hi + Math.imul(ah1, bh8)) |
0;
28244 lo = (lo + Math.imul(al0, bl9)) |
0;
28245 mid = (mid + Math.imul(al0, bh9)) |
0;
28246 mid = (mid + Math.imul(ah0, bl9)) |
0;
28247 hi = (hi + Math.imul(ah0, bh9)) |
0;
28248 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28249 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
28252 lo = Math.imul(al9, bl1);
28253 mid = Math.imul(al9, bh1);
28254 mid = (mid + Math.imul(ah9, bl1)) |
0;
28255 hi = Math.imul(ah9, bh1);
28256 lo = (lo + Math.imul(al8, bl2)) |
0;
28257 mid = (mid + Math.imul(al8, bh2)) |
0;
28258 mid = (mid + Math.imul(ah8, bl2)) |
0;
28259 hi = (hi + Math.imul(ah8, bh2)) |
0;
28260 lo = (lo + Math.imul(al7, bl3)) |
0;
28261 mid = (mid + Math.imul(al7, bh3)) |
0;
28262 mid = (mid + Math.imul(ah7, bl3)) |
0;
28263 hi = (hi + Math.imul(ah7, bh3)) |
0;
28264 lo = (lo + Math.imul(al6, bl4)) |
0;
28265 mid = (mid + Math.imul(al6, bh4)) |
0;
28266 mid = (mid + Math.imul(ah6, bl4)) |
0;
28267 hi = (hi + Math.imul(ah6, bh4)) |
0;
28268 lo = (lo + Math.imul(al5, bl5)) |
0;
28269 mid = (mid + Math.imul(al5, bh5)) |
0;
28270 mid = (mid + Math.imul(ah5, bl5)) |
0;
28271 hi = (hi + Math.imul(ah5, bh5)) |
0;
28272 lo = (lo + Math.imul(al4, bl6)) |
0;
28273 mid = (mid + Math.imul(al4, bh6)) |
0;
28274 mid = (mid + Math.imul(ah4, bl6)) |
0;
28275 hi = (hi + Math.imul(ah4, bh6)) |
0;
28276 lo = (lo + Math.imul(al3, bl7)) |
0;
28277 mid = (mid + Math.imul(al3, bh7)) |
0;
28278 mid = (mid + Math.imul(ah3, bl7)) |
0;
28279 hi = (hi + Math.imul(ah3, bh7)) |
0;
28280 lo = (lo + Math.imul(al2, bl8)) |
0;
28281 mid = (mid + Math.imul(al2, bh8)) |
0;
28282 mid = (mid + Math.imul(ah2, bl8)) |
0;
28283 hi = (hi + Math.imul(ah2, bh8)) |
0;
28284 lo = (lo + Math.imul(al1, bl9)) |
0;
28285 mid = (mid + Math.imul(al1, bh9)) |
0;
28286 mid = (mid + Math.imul(ah1, bl9)) |
0;
28287 hi = (hi + Math.imul(ah1, bh9)) |
0;
28288 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28289 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
28292 lo = Math.imul(al9, bl2);
28293 mid = Math.imul(al9, bh2);
28294 mid = (mid + Math.imul(ah9, bl2)) |
0;
28295 hi = Math.imul(ah9, bh2);
28296 lo = (lo + Math.imul(al8, bl3)) |
0;
28297 mid = (mid + Math.imul(al8, bh3)) |
0;
28298 mid = (mid + Math.imul(ah8, bl3)) |
0;
28299 hi = (hi + Math.imul(ah8, bh3)) |
0;
28300 lo = (lo + Math.imul(al7, bl4)) |
0;
28301 mid = (mid + Math.imul(al7, bh4)) |
0;
28302 mid = (mid + Math.imul(ah7, bl4)) |
0;
28303 hi = (hi + Math.imul(ah7, bh4)) |
0;
28304 lo = (lo + Math.imul(al6, bl5)) |
0;
28305 mid = (mid + Math.imul(al6, bh5)) |
0;
28306 mid = (mid + Math.imul(ah6, bl5)) |
0;
28307 hi = (hi + Math.imul(ah6, bh5)) |
0;
28308 lo = (lo + Math.imul(al5, bl6)) |
0;
28309 mid = (mid + Math.imul(al5, bh6)) |
0;
28310 mid = (mid + Math.imul(ah5, bl6)) |
0;
28311 hi = (hi + Math.imul(ah5, bh6)) |
0;
28312 lo = (lo + Math.imul(al4, bl7)) |
0;
28313 mid = (mid + Math.imul(al4, bh7)) |
0;
28314 mid = (mid + Math.imul(ah4, bl7)) |
0;
28315 hi = (hi + Math.imul(ah4, bh7)) |
0;
28316 lo = (lo + Math.imul(al3, bl8)) |
0;
28317 mid = (mid + Math.imul(al3, bh8)) |
0;
28318 mid = (mid + Math.imul(ah3, bl8)) |
0;
28319 hi = (hi + Math.imul(ah3, bh8)) |
0;
28320 lo = (lo + Math.imul(al2, bl9)) |
0;
28321 mid = (mid + Math.imul(al2, bh9)) |
0;
28322 mid = (mid + Math.imul(ah2, bl9)) |
0;
28323 hi = (hi + Math.imul(ah2, bh9)) |
0;
28324 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28325 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
28328 lo = Math.imul(al9, bl3);
28329 mid = Math.imul(al9, bh3);
28330 mid = (mid + Math.imul(ah9, bl3)) |
0;
28331 hi = Math.imul(ah9, bh3);
28332 lo = (lo + Math.imul(al8, bl4)) |
0;
28333 mid = (mid + Math.imul(al8, bh4)) |
0;
28334 mid = (mid + Math.imul(ah8, bl4)) |
0;
28335 hi = (hi + Math.imul(ah8, bh4)) |
0;
28336 lo = (lo + Math.imul(al7, bl5)) |
0;
28337 mid = (mid + Math.imul(al7, bh5)) |
0;
28338 mid = (mid + Math.imul(ah7, bl5)) |
0;
28339 hi = (hi + Math.imul(ah7, bh5)) |
0;
28340 lo = (lo + Math.imul(al6, bl6)) |
0;
28341 mid = (mid + Math.imul(al6, bh6)) |
0;
28342 mid = (mid + Math.imul(ah6, bl6)) |
0;
28343 hi = (hi + Math.imul(ah6, bh6)) |
0;
28344 lo = (lo + Math.imul(al5, bl7)) |
0;
28345 mid = (mid + Math.imul(al5, bh7)) |
0;
28346 mid = (mid + Math.imul(ah5, bl7)) |
0;
28347 hi = (hi + Math.imul(ah5, bh7)) |
0;
28348 lo = (lo + Math.imul(al4, bl8)) |
0;
28349 mid = (mid + Math.imul(al4, bh8)) |
0;
28350 mid = (mid + Math.imul(ah4, bl8)) |
0;
28351 hi = (hi + Math.imul(ah4, bh8)) |
0;
28352 lo = (lo + Math.imul(al3, bl9)) |
0;
28353 mid = (mid + Math.imul(al3, bh9)) |
0;
28354 mid = (mid + Math.imul(ah3, bl9)) |
0;
28355 hi = (hi + Math.imul(ah3, bh9)) |
0;
28356 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28357 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
28360 lo = Math.imul(al9, bl4);
28361 mid = Math.imul(al9, bh4);
28362 mid = (mid + Math.imul(ah9, bl4)) |
0;
28363 hi = Math.imul(ah9, bh4);
28364 lo = (lo + Math.imul(al8, bl5)) |
0;
28365 mid = (mid + Math.imul(al8, bh5)) |
0;
28366 mid = (mid + Math.imul(ah8, bl5)) |
0;
28367 hi = (hi + Math.imul(ah8, bh5)) |
0;
28368 lo = (lo + Math.imul(al7, bl6)) |
0;
28369 mid = (mid + Math.imul(al7, bh6)) |
0;
28370 mid = (mid + Math.imul(ah7, bl6)) |
0;
28371 hi = (hi + Math.imul(ah7, bh6)) |
0;
28372 lo = (lo + Math.imul(al6, bl7)) |
0;
28373 mid = (mid + Math.imul(al6, bh7)) |
0;
28374 mid = (mid + Math.imul(ah6, bl7)) |
0;
28375 hi = (hi + Math.imul(ah6, bh7)) |
0;
28376 lo = (lo + Math.imul(al5, bl8)) |
0;
28377 mid = (mid + Math.imul(al5, bh8)) |
0;
28378 mid = (mid + Math.imul(ah5, bl8)) |
0;
28379 hi = (hi + Math.imul(ah5, bh8)) |
0;
28380 lo = (lo + Math.imul(al4, bl9)) |
0;
28381 mid = (mid + Math.imul(al4, bh9)) |
0;
28382 mid = (mid + Math.imul(ah4, bl9)) |
0;
28383 hi = (hi + Math.imul(ah4, bh9)) |
0;
28384 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28385 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
28388 lo = Math.imul(al9, bl5);
28389 mid = Math.imul(al9, bh5);
28390 mid = (mid + Math.imul(ah9, bl5)) |
0;
28391 hi = Math.imul(ah9, bh5);
28392 lo = (lo + Math.imul(al8, bl6)) |
0;
28393 mid = (mid + Math.imul(al8, bh6)) |
0;
28394 mid = (mid + Math.imul(ah8, bl6)) |
0;
28395 hi = (hi + Math.imul(ah8, bh6)) |
0;
28396 lo = (lo + Math.imul(al7, bl7)) |
0;
28397 mid = (mid + Math.imul(al7, bh7)) |
0;
28398 mid = (mid + Math.imul(ah7, bl7)) |
0;
28399 hi = (hi + Math.imul(ah7, bh7)) |
0;
28400 lo = (lo + Math.imul(al6, bl8)) |
0;
28401 mid = (mid + Math.imul(al6, bh8)) |
0;
28402 mid = (mid + Math.imul(ah6, bl8)) |
0;
28403 hi = (hi + Math.imul(ah6, bh8)) |
0;
28404 lo = (lo + Math.imul(al5, bl9)) |
0;
28405 mid = (mid + Math.imul(al5, bh9)) |
0;
28406 mid = (mid + Math.imul(ah5, bl9)) |
0;
28407 hi = (hi + Math.imul(ah5, bh9)) |
0;
28408 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28409 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
28412 lo = Math.imul(al9, bl6);
28413 mid = Math.imul(al9, bh6);
28414 mid = (mid + Math.imul(ah9, bl6)) |
0;
28415 hi = Math.imul(ah9, bh6);
28416 lo = (lo + Math.imul(al8, bl7)) |
0;
28417 mid = (mid + Math.imul(al8, bh7)) |
0;
28418 mid = (mid + Math.imul(ah8, bl7)) |
0;
28419 hi = (hi + Math.imul(ah8, bh7)) |
0;
28420 lo = (lo + Math.imul(al7, bl8)) |
0;
28421 mid = (mid + Math.imul(al7, bh8)) |
0;
28422 mid = (mid + Math.imul(ah7, bl8)) |
0;
28423 hi = (hi + Math.imul(ah7, bh8)) |
0;
28424 lo = (lo + Math.imul(al6, bl9)) |
0;
28425 mid = (mid + Math.imul(al6, bh9)) |
0;
28426 mid = (mid + Math.imul(ah6, bl9)) |
0;
28427 hi = (hi + Math.imul(ah6, bh9)) |
0;
28428 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28429 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
28432 lo = Math.imul(al9, bl7);
28433 mid = Math.imul(al9, bh7);
28434 mid = (mid + Math.imul(ah9, bl7)) |
0;
28435 hi = Math.imul(ah9, bh7);
28436 lo = (lo + Math.imul(al8, bl8)) |
0;
28437 mid = (mid + Math.imul(al8, bh8)) |
0;
28438 mid = (mid + Math.imul(ah8, bl8)) |
0;
28439 hi = (hi + Math.imul(ah8, bh8)) |
0;
28440 lo = (lo + Math.imul(al7, bl9)) |
0;
28441 mid = (mid + Math.imul(al7, bh9)) |
0;
28442 mid = (mid + Math.imul(ah7, bl9)) |
0;
28443 hi = (hi + Math.imul(ah7, bh9)) |
0;
28444 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28445 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
28448 lo = Math.imul(al9, bl8);
28449 mid = Math.imul(al9, bh8);
28450 mid = (mid + Math.imul(ah9, bl8)) |
0;
28451 hi = Math.imul(ah9, bh8);
28452 lo = (lo + Math.imul(al8, bl9)) |
0;
28453 mid = (mid + Math.imul(al8, bh9)) |
0;
28454 mid = (mid + Math.imul(ah8, bl9)) |
0;
28455 hi = (hi + Math.imul(ah8, bh9)) |
0;
28456 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28457 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
28460 lo = Math.imul(al9, bl9);
28461 mid = Math.imul(al9, bh9);
28462 mid = (mid + Math.imul(ah9, bl9)) |
0;
28463 hi = Math.imul(ah9, bh9);
28464 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28465 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
28495 comb10MulTo = smallMulTo;
28498 function bigMulTo (self, num, out) {
28499 out.negative = num.negative ^ self.negative;
28500 out.length = self.length + num.length;
28504 for (var k =
0; k < out.length -
1; k++) {
28505 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
28506 // note that ncarry could be
>=
0x3ffffff
28507 var ncarry = hncarry;
28509 var rword = carry &
0x3ffffff;
28510 var maxJ = Math.min(k, num.length -
1);
28511 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
28513 var a = self.words[i] |
0;
28514 var b = num.words[j] |
0;
28517 var lo = r &
0x3ffffff;
28518 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
28519 lo = (lo + rword) |
0;
28520 rword = lo &
0x3ffffff;
28521 ncarry = (ncarry + (lo
>>> 26)) |
0;
28523 hncarry += ncarry
>>> 26;
28524 ncarry &=
0x3ffffff;
28526 out.words[k] = rword;
28531 out.words[k] = carry;
28536 return out.strip();
28539 function jumboMulTo (self, num, out) {
28540 var fftm = new FFTM();
28541 return fftm.mulp(self, num, out);
28544 BN.prototype.mulTo = function mulTo (num, out) {
28546 var len = this.length + num.length;
28547 if (this.length ===
10 && num.length ===
10) {
28548 res = comb10MulTo(this, num, out);
28549 } else if (len <
63) {
28550 res = smallMulTo(this, num, out);
28551 } else if (len <
1024) {
28552 res = bigMulTo(this, num, out);
28554 res = jumboMulTo(this, num, out);
28560 // Cooley-Tukey algorithm for FFT
28561 // slightly revisited to rely on looping instead of recursion
28563 function FFTM (x, y) {
28568 FFTM.prototype.makeRBT = function makeRBT (N) {
28569 var t = new Array(N);
28570 var l = BN.prototype._countBits(N) -
1;
28571 for (var i =
0; i < N; i++) {
28572 t[i] = this.revBin(i, l, N);
28578 // Returns binary-reversed representation of `x`
28579 FFTM.prototype.revBin = function revBin (x, l, N) {
28580 if (x ===
0 || x === N -
1) return x;
28583 for (var i =
0; i < l; i++) {
28584 rb |= (x &
1) << (l - i -
1);
28591 // Performs "tweedling" phase, therefore 'emulating'
28592 // behaviour of the recursive algorithm
28593 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
28594 for (var i =
0; i < N; i++) {
28595 rtws[i] = rws[rbt[i]];
28596 itws[i] = iws[rbt[i]];
28600 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
28601 this.permute(rbt, rws, iws, rtws, itws, N);
28603 for (var s =
1; s < N; s <<=
1) {
28606 var rtwdf = Math.cos(
2 * Math.PI / l);
28607 var itwdf = Math.sin(
2 * Math.PI / l);
28609 for (var p =
0; p < N; p += l) {
28610 var rtwdf_ = rtwdf;
28611 var itwdf_ = itwdf;
28613 for (var j =
0; j < s; j++) {
28614 var re = rtws[p + j];
28615 var ie = itws[p + j];
28617 var ro = rtws[p + j + s];
28618 var io = itws[p + j + s];
28620 var rx = rtwdf_ * ro - itwdf_ * io;
28622 io = rtwdf_ * io + itwdf_ * ro;
28625 rtws[p + j] = re + ro;
28626 itws[p + j] = ie + io;
28628 rtws[p + j + s] = re - ro;
28629 itws[p + j + s] = ie - io;
28631 /* jshint maxdepth : false */
28633 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
28635 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
28643 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
28644 var N = Math.max(m, n) |
1;
28647 for (N = N /
2 |
0; N; N = N
>>> 1) {
28651 return
1 << i +
1 + odd;
28654 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
28655 if (N <=
1) return;
28657 for (var i =
0; i < N /
2; i++) {
28660 rws[i] = rws[N - i -
1];
28661 rws[N - i -
1] = t;
28665 iws[i] = -iws[N - i -
1];
28666 iws[N - i -
1] = -t;
28670 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
28672 for (var i =
0; i < N /
2; i++) {
28673 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
28674 Math.round(ws[
2 * i] / N) +
28677 ws[i] = w &
0x3ffffff;
28679 if (w <
0x4000000) {
28682 carry = w /
0x4000000 |
0;
28689 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
28691 for (var i =
0; i < len; i++) {
28692 carry = carry + (ws[i] |
0);
28694 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
28695 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
28699 for (i =
2 * len; i < N; ++i) {
28703 assert(carry ===
0);
28704 assert((carry & ~
0x1fff) ===
0);
28707 FFTM.prototype.stub = function stub (N) {
28708 var ph = new Array(N);
28709 for (var i =
0; i < N; i++) {
28716 FFTM.prototype.mulp = function mulp (x, y, out) {
28717 var N =
2 * this.guessLen13b(x.length, y.length);
28719 var rbt = this.makeRBT(N);
28721 var _ = this.stub(N);
28723 var rws = new Array(N);
28724 var rwst = new Array(N);
28725 var iwst = new Array(N);
28727 var nrws = new Array(N);
28728 var nrwst = new Array(N);
28729 var niwst = new Array(N);
28731 var rmws = out.words;
28734 this.convert13b(x.words, x.length, rws, N);
28735 this.convert13b(y.words, y.length, nrws, N);
28737 this.transform(rws, _, rwst, iwst, N, rbt);
28738 this.transform(nrws, _, nrwst, niwst, N, rbt);
28740 for (var i =
0; i < N; i++) {
28741 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
28742 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
28746 this.conjugate(rwst, iwst, N);
28747 this.transform(rwst, iwst, rmws, _, N, rbt);
28748 this.conjugate(rmws, _, N);
28749 this.normalize13b(rmws, N);
28751 out.negative = x.negative ^ y.negative;
28752 out.length = x.length + y.length;
28753 return out.strip();
28756 // Multiply `this` by `num`
28757 BN.prototype.mul = function mul (num) {
28758 var out = new BN(null);
28759 out.words = new Array(this.length + num.length);
28760 return this.mulTo(num, out);
28763 // Multiply employing FFT
28764 BN.prototype.mulf = function mulf (num) {
28765 var out = new BN(null);
28766 out.words = new Array(this.length + num.length);
28767 return jumboMulTo(this, num, out);
28770 // In-place Multiplication
28771 BN.prototype.imul = function imul (num) {
28772 return this.clone().mulTo(num, this);
28775 BN.prototype.imuln = function imuln (num) {
28776 assert(typeof num === 'number');
28777 assert(num <
0x4000000);
28781 for (var i =
0; i < this.length; i++) {
28782 var w = (this.words[i] |
0) * num;
28783 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
28785 carry += (w /
0x4000000) |
0;
28786 // NOTE: lo is
27bit maximum
28787 carry += lo
>>> 26;
28788 this.words[i] = lo &
0x3ffffff;
28792 this.words[i] = carry;
28799 BN.prototype.muln = function muln (num) {
28800 return this.clone().imuln(num);
28804 BN.prototype.sqr = function sqr () {
28805 return this.mul(this);
28808 // `this` * `this` in-place
28809 BN.prototype.isqr = function isqr () {
28810 return this.imul(this.clone());
28813 // Math.pow(`this`, `num`)
28814 BN.prototype.pow = function pow (num) {
28815 var w = toBitArray(num);
28816 if (w.length ===
0) return new BN(
1);
28818 // Skip leading zeroes
28820 for (var i =
0; i < w.length; i++, res = res.sqr()) {
28821 if (w[i] !==
0) break;
28824 if (++i < w.length) {
28825 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
28826 if (w[i] ===
0) continue;
28835 // Shift-left in-place
28836 BN.prototype.iushln = function iushln (bits) {
28837 assert(typeof bits === 'number' && bits
>=
0);
28839 var s = (bits - r) /
26;
28840 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
28846 for (i =
0; i < this.length; i++) {
28847 var newCarry = this.words[i] & carryMask;
28848 var c = ((this.words[i] |
0) - newCarry) << r;
28849 this.words[i] = c | carry;
28850 carry = newCarry
>>> (
26 - r);
28854 this.words[i] = carry;
28860 for (i = this.length -
1; i
>=
0; i--) {
28861 this.words[i + s] = this.words[i];
28864 for (i =
0; i < s; i++) {
28871 return this.strip();
28874 BN.prototype.ishln = function ishln (bits) {
28875 // TODO(indutny): implement me
28876 assert(this.negative ===
0);
28877 return this.iushln(bits);
28880 // Shift-right in-place
28881 // NOTE: `hint` is a lowest bit before trailing zeroes
28882 // NOTE: if `extended` is present - it will be filled with destroyed bits
28883 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
28884 assert(typeof bits === 'number' && bits
>=
0);
28887 h = (hint - (hint %
26)) /
26;
28893 var s = Math.min((bits - r) /
26, this.length);
28894 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
28895 var maskedWords = extended;
28898 h = Math.max(
0, h);
28900 // Extended mode, copy masked part
28902 for (var i =
0; i < s; i++) {
28903 maskedWords.words[i] = this.words[i];
28905 maskedWords.length = s;
28909 // No-op, we should not move anything at all
28910 } else if (this.length
> s) {
28912 for (i =
0; i < this.length; i++) {
28913 this.words[i] = this.words[i + s];
28921 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
28922 var word = this.words[i] |
0;
28923 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
28924 carry = word & mask;
28927 // Push carried bits as a mask
28928 if (maskedWords && carry !==
0) {
28929 maskedWords.words[maskedWords.length++] = carry;
28932 if (this.length ===
0) {
28937 return this.strip();
28940 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
28941 // TODO(indutny): implement me
28942 assert(this.negative ===
0);
28943 return this.iushrn(bits, hint, extended);
28947 BN.prototype.shln = function shln (bits) {
28948 return this.clone().ishln(bits);
28951 BN.prototype.ushln = function ushln (bits) {
28952 return this.clone().iushln(bits);
28956 BN.prototype.shrn = function shrn (bits) {
28957 return this.clone().ishrn(bits);
28960 BN.prototype.ushrn = function ushrn (bits) {
28961 return this.clone().iushrn(bits);
28964 // Test if n bit is set
28965 BN.prototype.testn = function testn (bit) {
28966 assert(typeof bit === 'number' && bit
>=
0);
28968 var s = (bit - r) /
26;
28971 // Fast case: bit is much higher than all existing words
28972 if (this.length <= s) return false;
28974 // Check bit and return
28975 var w = this.words[s];
28980 // Return only lowers bits of number (in-place)
28981 BN.prototype.imaskn = function imaskn (bits) {
28982 assert(typeof bits === 'number' && bits
>=
0);
28984 var s = (bits - r) /
26;
28986 assert(this.negative ===
0, 'imaskn works only with positive numbers');
28988 if (this.length <= s) {
28995 this.length = Math.min(s, this.length);
28998 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
28999 this.words[this.length -
1] &= mask;
29002 return this.strip();
29005 // Return only lowers bits of number
29006 BN.prototype.maskn = function maskn (bits) {
29007 return this.clone().imaskn(bits);
29010 // Add plain number `num` to `this`
29011 BN.prototype.iaddn = function iaddn (num) {
29012 assert(typeof num === 'number');
29013 assert(num <
0x4000000);
29014 if (num <
0) return this.isubn(-num);
29016 // Possible sign change
29017 if (this.negative !==
0) {
29018 if (this.length ===
1 && (this.words[
0] |
0) < num) {
29019 this.words[
0] = num - (this.words[
0] |
0);
29030 // Add without checks
29031 return this._iaddn(num);
29034 BN.prototype._iaddn = function _iaddn (num) {
29035 this.words[
0] += num;
29038 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
29039 this.words[i] -=
0x4000000;
29040 if (i === this.length -
1) {
29041 this.words[i +
1] =
1;
29043 this.words[i +
1]++;
29046 this.length = Math.max(this.length, i +
1);
29051 // Subtract plain number `num` from `this`
29052 BN.prototype.isubn = function isubn (num) {
29053 assert(typeof num === 'number');
29054 assert(num <
0x4000000);
29055 if (num <
0) return this.iaddn(-num);
29057 if (this.negative !==
0) {
29064 this.words[
0] -= num;
29066 if (this.length ===
1 && this.words[
0] <
0) {
29067 this.words[
0] = -this.words[
0];
29071 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
29072 this.words[i] +=
0x4000000;
29073 this.words[i +
1] -=
1;
29077 return this.strip();
29080 BN.prototype.addn = function addn (num) {
29081 return this.clone().iaddn(num);
29084 BN.prototype.subn = function subn (num) {
29085 return this.clone().isubn(num);
29088 BN.prototype.iabs = function iabs () {
29094 BN.prototype.abs = function abs () {
29095 return this.clone().iabs();
29098 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
29099 var len = num.length + shift;
29106 for (i =
0; i < num.length; i++) {
29107 w = (this.words[i + shift] |
0) + carry;
29108 var right = (num.words[i] |
0) * mul;
29109 w -= right &
0x3ffffff;
29110 carry = (w
>> 26) - ((right /
0x4000000) |
0);
29111 this.words[i + shift] = w &
0x3ffffff;
29113 for (; i < this.length - shift; i++) {
29114 w = (this.words[i + shift] |
0) + carry;
29116 this.words[i + shift] = w &
0x3ffffff;
29119 if (carry ===
0) return this.strip();
29121 // Subtraction overflow
29122 assert(carry === -
1);
29124 for (i =
0; i < this.length; i++) {
29125 w = -(this.words[i] |
0) + carry;
29127 this.words[i] = w &
0x3ffffff;
29131 return this.strip();
29134 BN.prototype._wordDiv = function _wordDiv (num, mode) {
29135 var shift = this.length - num.length;
29137 var a = this.clone();
29141 var bhi = b.words[b.length -
1] |
0;
29142 var bhiBits = this._countBits(bhi);
29143 shift =
26 - bhiBits;
29145 b = b.ushln(shift);
29147 bhi = b.words[b.length -
1] |
0;
29150 // Initialize quotient
29151 var m = a.length - b.length;
29154 if (mode !== 'mod') {
29157 q.words = new Array(q.length);
29158 for (var i =
0; i < q.length; i++) {
29163 var diff = a.clone()._ishlnsubmul(b,
1, m);
29164 if (diff.negative ===
0) {
29171 for (var j = m -
1; j
>=
0; j--) {
29172 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
29173 (a.words[b.length + j -
1] |
0);
29175 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
29177 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
29179 a._ishlnsubmul(b, qj, j);
29180 while (a.negative !==
0) {
29183 a._ishlnsubmul(b,
1, j);
29198 if (mode !== 'div' && shift !==
0) {
29208 // NOTE:
1) `mode` can be set to `mod` to request mod only,
29209 // to `div` to request div only, or be absent to
29210 // request both div & mod
29211 //
2) `positive` is true if unsigned mod is requested
29212 BN.prototype.divmod = function divmod (num, mode, positive) {
29213 assert(!num.isZero());
29215 if (this.isZero()) {
29223 if (this.negative !==
0 && num.negative ===
0) {
29224 res = this.neg().divmod(num, mode);
29226 if (mode !== 'mod') {
29227 div = res.div.neg();
29230 if (mode !== 'div') {
29231 mod = res.mod.neg();
29232 if (positive && mod.negative !==
0) {
29243 if (this.negative ===
0 && num.negative !==
0) {
29244 res = this.divmod(num.neg(), mode);
29246 if (mode !== 'mod') {
29247 div = res.div.neg();
29256 if ((this.negative & num.negative) !==
0) {
29257 res = this.neg().divmod(num.neg(), mode);
29259 if (mode !== 'div') {
29260 mod = res.mod.neg();
29261 if (positive && mod.negative !==
0) {
29272 // Both numbers are positive at this point
29274 // Strip both numbers to approximate shift value
29275 if (num.length
> this.length || this.cmp(num) <
0) {
29282 // Very short reduction
29283 if (num.length ===
1) {
29284 if (mode === 'div') {
29286 div: this.divn(num.words[
0]),
29291 if (mode === 'mod') {
29294 mod: new BN(this.modn(num.words[
0]))
29299 div: this.divn(num.words[
0]),
29300 mod: new BN(this.modn(num.words[
0]))
29304 return this._wordDiv(num, mode);
29307 // Find `this` / `num`
29308 BN.prototype.div = function div (num) {
29309 return this.divmod(num, 'div', false).div;
29312 // Find `this` % `num`
29313 BN.prototype.mod = function mod (num) {
29314 return this.divmod(num, 'mod', false).mod;
29317 BN.prototype.umod = function umod (num) {
29318 return this.divmod(num, 'mod', true).mod;
29321 // Find Round(`this` / `num`)
29322 BN.prototype.divRound = function divRound (num) {
29323 var dm = this.divmod(num);
29325 // Fast case - exact division
29326 if (dm.mod.isZero()) return dm.div;
29328 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
29330 var half = num.ushrn(
1);
29331 var r2 = num.andln(
1);
29332 var cmp = mod.cmp(half);
29335 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
29338 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
29341 BN.prototype.modn = function modn (num) {
29342 assert(num <=
0x3ffffff);
29343 var p = (
1 <<
26) % num;
29346 for (var i = this.length -
1; i
>=
0; i--) {
29347 acc = (p * acc + (this.words[i] |
0)) % num;
29353 // In-place division by number
29354 BN.prototype.idivn = function idivn (num) {
29355 assert(num <=
0x3ffffff);
29358 for (var i = this.length -
1; i
>=
0; i--) {
29359 var w = (this.words[i] |
0) + carry *
0x4000000;
29360 this.words[i] = (w / num) |
0;
29364 return this.strip();
29367 BN.prototype.divn = function divn (num) {
29368 return this.clone().idivn(num);
29371 BN.prototype.egcd = function egcd (p) {
29372 assert(p.negative ===
0);
29373 assert(!p.isZero());
29378 if (x.negative !==
0) {
29384 // A * x + B * y = x
29388 // C * x + D * y = y
29394 while (x.isEven() && y.isEven()) {
29400 var yp = y.clone();
29401 var xp = x.clone();
29403 while (!x.isZero()) {
29404 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
29408 if (A.isOdd() || B.isOdd()) {
29418 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
29422 if (C.isOdd() || D.isOdd()) {
29432 if (x.cmp(y)
>=
0) {
29450 // This is reduced incarnation of the binary EEA
29451 // above, designated to invert members of the
29452 // _prime_ fields F(p) at a maximal speed
29453 BN.prototype._invmp = function _invmp (p) {
29454 assert(p.negative ===
0);
29455 assert(!p.isZero());
29460 if (a.negative !==
0) {
29466 var x1 = new BN(
1);
29467 var x2 = new BN(
0);
29469 var delta = b.clone();
29471 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
29472 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
29484 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
29496 if (a.cmp(b)
>=
0) {
29506 if (a.cmpn(
1) ===
0) {
29512 if (res.cmpn(
0) <
0) {
29519 BN.prototype.gcd = function gcd (num) {
29520 if (this.isZero()) return num.abs();
29521 if (num.isZero()) return this.abs();
29523 var a = this.clone();
29524 var b = num.clone();
29528 // Remove common factor of two
29529 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
29535 while (a.isEven()) {
29538 while (b.isEven()) {
29544 // Swap `a` and `b` to make `a` always bigger than `b`
29548 } else if (r ===
0 || b.cmpn(
1) ===
0) {
29555 return b.iushln(shift);
29558 // Invert number in the field F(num)
29559 BN.prototype.invm = function invm (num) {
29560 return this.egcd(num).a.umod(num);
29563 BN.prototype.isEven = function isEven () {
29564 return (this.words[
0] &
1) ===
0;
29567 BN.prototype.isOdd = function isOdd () {
29568 return (this.words[
0] &
1) ===
1;
29571 // And first word and num
29572 BN.prototype.andln = function andln (num) {
29573 return this.words[
0] & num;
29576 // Increment at the bit position in-line
29577 BN.prototype.bincn = function bincn (bit) {
29578 assert(typeof bit === 'number');
29580 var s = (bit - r) /
26;
29583 // Fast case: bit is much higher than all existing words
29584 if (this.length <= s) {
29585 this._expand(s +
1);
29586 this.words[s] |= q;
29590 // Add bit and propagate, if needed
29592 for (var i = s; carry !==
0 && i < this.length; i++) {
29593 var w = this.words[i] |
0;
29600 this.words[i] = carry;
29606 BN.prototype.isZero = function isZero () {
29607 return this.length ===
1 && this.words[
0] ===
0;
29610 BN.prototype.cmpn = function cmpn (num) {
29611 var negative = num <
0;
29613 if (this.negative !==
0 && !negative) return -
1;
29614 if (this.negative ===
0 && negative) return
1;
29619 if (this.length
> 1) {
29626 assert(num <=
0x3ffffff, 'Number is too big');
29628 var w = this.words[
0] |
0;
29629 res = w === num ?
0 : w < num ? -
1 :
1;
29631 if (this.negative !==
0) return -res |
0;
29635 // Compare two numbers and return:
29636 //
1 - if `this`
> `num`
29637 //
0 - if `this` == `num`
29638 // -
1 - if `this` < `num`
29639 BN.prototype.cmp = function cmp (num) {
29640 if (this.negative !==
0 && num.negative ===
0) return -
1;
29641 if (this.negative ===
0 && num.negative !==
0) return
1;
29643 var res = this.ucmp(num);
29644 if (this.negative !==
0) return -res |
0;
29648 // Unsigned comparison
29649 BN.prototype.ucmp = function ucmp (num) {
29650 // At this point both numbers have the same sign
29651 if (this.length
> num.length) return
1;
29652 if (this.length < num.length) return -
1;
29655 for (var i = this.length -
1; i
>=
0; i--) {
29656 var a = this.words[i] |
0;
29657 var b = num.words[i] |
0;
29659 if (a === b) continue;
29662 } else if (a
> b) {
29670 BN.prototype.gtn = function gtn (num) {
29671 return this.cmpn(num) ===
1;
29674 BN.prototype.gt = function gt (num) {
29675 return this.cmp(num) ===
1;
29678 BN.prototype.gten = function gten (num) {
29679 return this.cmpn(num)
>=
0;
29682 BN.prototype.gte = function gte (num) {
29683 return this.cmp(num)
>=
0;
29686 BN.prototype.ltn = function ltn (num) {
29687 return this.cmpn(num) === -
1;
29690 BN.prototype.lt = function lt (num) {
29691 return this.cmp(num) === -
1;
29694 BN.prototype.lten = function lten (num) {
29695 return this.cmpn(num) <=
0;
29698 BN.prototype.lte = function lte (num) {
29699 return this.cmp(num) <=
0;
29702 BN.prototype.eqn = function eqn (num) {
29703 return this.cmpn(num) ===
0;
29706 BN.prototype.eq = function eq (num) {
29707 return this.cmp(num) ===
0;
29711 // A reduce context, could be using montgomery or something better, depending
29712 // on the `m` itself.
29714 BN.red = function red (num) {
29715 return new Red(num);
29718 BN.prototype.toRed = function toRed (ctx) {
29719 assert(!this.red, 'Already a number in reduction context');
29720 assert(this.negative ===
0, 'red works only with positives');
29721 return ctx.convertTo(this)._forceRed(ctx);
29724 BN.prototype.fromRed = function fromRed () {
29725 assert(this.red, 'fromRed works only with numbers in reduction context');
29726 return this.red.convertFrom(this);
29729 BN.prototype._forceRed = function _forceRed (ctx) {
29734 BN.prototype.forceRed = function forceRed (ctx) {
29735 assert(!this.red, 'Already a number in reduction context');
29736 return this._forceRed(ctx);
29739 BN.prototype.redAdd = function redAdd (num) {
29740 assert(this.red, 'redAdd works only with red numbers');
29741 return this.red.add(this, num);
29744 BN.prototype.redIAdd = function redIAdd (num) {
29745 assert(this.red, 'redIAdd works only with red numbers');
29746 return this.red.iadd(this, num);
29749 BN.prototype.redSub = function redSub (num) {
29750 assert(this.red, 'redSub works only with red numbers');
29751 return this.red.sub(this, num);
29754 BN.prototype.redISub = function redISub (num) {
29755 assert(this.red, 'redISub works only with red numbers');
29756 return this.red.isub(this, num);
29759 BN.prototype.redShl = function redShl (num) {
29760 assert(this.red, 'redShl works only with red numbers');
29761 return this.red.shl(this, num);
29764 BN.prototype.redMul = function redMul (num) {
29765 assert(this.red, 'redMul works only with red numbers');
29766 this.red._verify2(this, num);
29767 return this.red.mul(this, num);
29770 BN.prototype.redIMul = function redIMul (num) {
29771 assert(this.red, 'redMul works only with red numbers');
29772 this.red._verify2(this, num);
29773 return this.red.imul(this, num);
29776 BN.prototype.redSqr = function redSqr () {
29777 assert(this.red, 'redSqr works only with red numbers');
29778 this.red._verify1(this);
29779 return this.red.sqr(this);
29782 BN.prototype.redISqr = function redISqr () {
29783 assert(this.red, 'redISqr works only with red numbers');
29784 this.red._verify1(this);
29785 return this.red.isqr(this);
29788 // Square root over p
29789 BN.prototype.redSqrt = function redSqrt () {
29790 assert(this.red, 'redSqrt works only with red numbers');
29791 this.red._verify1(this);
29792 return this.red.sqrt(this);
29795 BN.prototype.redInvm = function redInvm () {
29796 assert(this.red, 'redInvm works only with red numbers');
29797 this.red._verify1(this);
29798 return this.red.invm(this);
29801 // Return negative clone of `this` % `red modulo`
29802 BN.prototype.redNeg = function redNeg () {
29803 assert(this.red, 'redNeg works only with red numbers');
29804 this.red._verify1(this);
29805 return this.red.neg(this);
29808 BN.prototype.redPow = function redPow (num) {
29809 assert(this.red && !num.red, 'redPow(normalNum)');
29810 this.red._verify1(this);
29811 return this.red.pow(this, num);
29814 // Prime numbers with efficient reduction
29822 // Pseudo-Mersenne prime
29823 function MPrime (name, p) {
29826 this.p = new BN(p,
16);
29827 this.n = this.p.bitLength();
29828 this.k = new BN(
1).iushln(this.n).isub(this.p);
29830 this.tmp = this._tmp();
29833 MPrime.prototype._tmp = function _tmp () {
29834 var tmp = new BN(null);
29835 tmp.words = new Array(Math.ceil(this.n /
13));
29839 MPrime.prototype.ireduce = function ireduce (num) {
29840 // Assumes that `num` is less than `P^
2`
29841 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
29846 this.split(r, this.tmp);
29848 r = r.iadd(this.tmp);
29849 rlen = r.bitLength();
29850 } while (rlen
> this.n);
29852 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
29856 } else if (cmp
> 0) {
29865 MPrime.prototype.split = function split (input, out) {
29866 input.iushrn(this.n,
0, out);
29869 MPrime.prototype.imulK = function imulK (num) {
29870 return num.imul(this.k);
29877 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
29879 inherits(K256, MPrime);
29881 K256.prototype.split = function split (input, output) {
29882 //
256 =
9 *
26 +
22
29883 var mask =
0x3fffff;
29885 var outLen = Math.min(input.length,
9);
29886 for (var i =
0; i < outLen; i++) {
29887 output.words[i] = input.words[i];
29889 output.length = outLen;
29891 if (input.length <=
9) {
29892 input.words[
0] =
0;
29897 // Shift by
9 limbs
29898 var prev = input.words[
9];
29899 output.words[output.length++] = prev & mask;
29901 for (i =
10; i < input.length; i++) {
29902 var next = input.words[i] |
0;
29903 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
29907 input.words[i -
10] = prev;
29908 if (prev ===
0 && input.length
> 10) {
29909 input.length -=
10;
29915 K256.prototype.imulK = function imulK (num) {
29916 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
29917 num.words[num.length] =
0;
29918 num.words[num.length +
1] =
0;
29921 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
29923 for (var i =
0; i < num.length; i++) {
29924 var w = num.words[i] |
0;
29926 num.words[i] = lo &
0x3ffffff;
29927 lo = w *
0x40 + ((lo /
0x4000000) |
0);
29930 // Fast length reduction
29931 if (num.words[num.length -
1] ===
0) {
29933 if (num.words[num.length -
1] ===
0) {
29944 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
29946 inherits(P224, MPrime);
29952 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
29954 inherits(P192, MPrime);
29956 function P25519 () {
29961 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
29963 inherits(P25519, MPrime);
29965 P25519.prototype.imulK = function imulK (num) {
29968 for (var i =
0; i < num.length; i++) {
29969 var hi = (num.words[i] |
0) *
0x13 + carry;
29970 var lo = hi &
0x3ffffff;
29977 num.words[num.length++] = carry;
29982 // Exported mostly for testing purposes, use plain name instead
29983 BN._prime = function prime (name) {
29984 // Cached version of prime
29985 if (primes[name]) return primes[name];
29988 if (name === 'k256') {
29989 prime = new K256();
29990 } else if (name === 'p224') {
29991 prime = new P224();
29992 } else if (name === 'p192') {
29993 prime = new P192();
29994 } else if (name === 'p25519') {
29995 prime = new P25519();
29997 throw new Error('Unknown prime ' + name);
29999 primes[name] = prime;
30005 // Base reduction engine
30008 if (typeof m === 'string') {
30009 var prime = BN._prime(m);
30011 this.prime = prime;
30013 assert(m.gtn(
1), 'modulus must be greater than
1');
30019 Red.prototype._verify1 = function _verify1 (a) {
30020 assert(a.negative ===
0, 'red works only with positives');
30021 assert(a.red, 'red works only with red numbers');
30024 Red.prototype._verify2 = function _verify2 (a, b) {
30025 assert((a.negative | b.negative) ===
0, 'red works only with positives');
30026 assert(a.red && a.red === b.red,
30027 'red works only with red numbers');
30030 Red.prototype.imod = function imod (a) {
30031 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
30032 return a.umod(this.m)._forceRed(this);
30035 Red.prototype.neg = function neg (a) {
30040 return this.m.sub(a)._forceRed(this);
30043 Red.prototype.add = function add (a, b) {
30044 this._verify2(a, b);
30046 var res = a.add(b);
30047 if (res.cmp(this.m)
>=
0) {
30050 return res._forceRed(this);
30053 Red.prototype.iadd = function iadd (a, b) {
30054 this._verify2(a, b);
30056 var res = a.iadd(b);
30057 if (res.cmp(this.m)
>=
0) {
30063 Red.prototype.sub = function sub (a, b) {
30064 this._verify2(a, b);
30066 var res = a.sub(b);
30067 if (res.cmpn(
0) <
0) {
30070 return res._forceRed(this);
30073 Red.prototype.isub = function isub (a, b) {
30074 this._verify2(a, b);
30076 var res = a.isub(b);
30077 if (res.cmpn(
0) <
0) {
30083 Red.prototype.shl = function shl (a, num) {
30085 return this.imod(a.ushln(num));
30088 Red.prototype.imul = function imul (a, b) {
30089 this._verify2(a, b);
30090 return this.imod(a.imul(b));
30093 Red.prototype.mul = function mul (a, b) {
30094 this._verify2(a, b);
30095 return this.imod(a.mul(b));
30098 Red.prototype.isqr = function isqr (a) {
30099 return this.imul(a, a.clone());
30102 Red.prototype.sqr = function sqr (a) {
30103 return this.mul(a, a);
30106 Red.prototype.sqrt = function sqrt (a) {
30107 if (a.isZero()) return a.clone();
30109 var mod3 = this.m.andln(
3);
30110 assert(mod3 %
2 ===
1);
30114 var pow = this.m.add(new BN(
1)).iushrn(
2);
30115 return this.pow(a, pow);
30118 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
30120 // Find Q and S, that Q *
2 ^ S = (P -
1)
30121 var q = this.m.subn(
1);
30123 while (!q.isZero() && q.andln(
1) ===
0) {
30127 assert(!q.isZero());
30129 var one = new BN(
1).toRed(this);
30130 var nOne = one.redNeg();
30132 // Find quadratic non-residue
30133 // NOTE: Max is such because of generalized Riemann hypothesis.
30134 var lpow = this.m.subn(
1).iushrn(
1);
30135 var z = this.m.bitLength();
30136 z = new BN(
2 * z * z).toRed(this);
30138 while (this.pow(z, lpow).cmp(nOne) !==
0) {
30142 var c = this.pow(z, q);
30143 var r = this.pow(a, q.addn(
1).iushrn(
1));
30144 var t = this.pow(a, q);
30146 while (t.cmp(one) !==
0) {
30148 for (var i =
0; tmp.cmp(one) !==
0; i++) {
30149 tmp = tmp.redSqr();
30152 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
30163 Red.prototype.invm = function invm (a) {
30164 var inv = a._invmp(this.m);
30165 if (inv.negative !==
0) {
30167 return this.imod(inv).redNeg();
30169 return this.imod(inv);
30173 Red.prototype.pow = function pow (a, num) {
30174 if (num.isZero()) return new BN(
1);
30175 if (num.cmpn(
1) ===
0) return a.clone();
30177 var windowSize =
4;
30178 var wnd = new Array(
1 << windowSize);
30179 wnd[
0] = new BN(
1).toRed(this);
30181 for (var i =
2; i < wnd.length; i++) {
30182 wnd[i] = this.mul(wnd[i -
1], a);
30187 var currentLen =
0;
30188 var start = num.bitLength() %
26;
30193 for (i = num.length -
1; i
>=
0; i--) {
30194 var word = num.words[i];
30195 for (var j = start -
1; j
>=
0; j--) {
30196 var bit = (word
>> j) &
1;
30197 if (res !== wnd[
0]) {
30198 res = this.sqr(res);
30201 if (bit ===
0 && current ===
0) {
30209 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
30211 res = this.mul(res, wnd[current]);
30221 Red.prototype.convertTo = function convertTo (num) {
30222 var r = num.umod(this.m);
30224 return r === num ? r.clone() : r;
30227 Red.prototype.convertFrom = function convertFrom (num) {
30228 var res = num.clone();
30234 // Montgomery method engine
30237 BN.mont = function mont (num) {
30238 return new Mont(num);
30241 function Mont (m) {
30244 this.shift = this.m.bitLength();
30245 if (this.shift %
26 !==
0) {
30246 this.shift +=
26 - (this.shift %
26);
30249 this.r = new BN(
1).iushln(this.shift);
30250 this.r2 = this.imod(this.r.sqr());
30251 this.rinv = this.r._invmp(this.m);
30253 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
30254 this.minv = this.minv.umod(this.r);
30255 this.minv = this.r.sub(this.minv);
30257 inherits(Mont, Red);
30259 Mont.prototype.convertTo = function convertTo (num) {
30260 return this.imod(num.ushln(this.shift));
30263 Mont.prototype.convertFrom = function convertFrom (num) {
30264 var r = this.imod(num.mul(this.rinv));
30269 Mont.prototype.imul = function imul (a, b) {
30270 if (a.isZero() || b.isZero()) {
30277 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
30278 var u = t.isub(c).iushrn(this.shift);
30281 if (u.cmp(this.m)
>=
0) {
30282 res = u.isub(this.m);
30283 } else if (u.cmpn(
0) <
0) {
30284 res = u.iadd(this.m);
30287 return res._forceRed(this);
30290 Mont.prototype.mul = function mul (a, b) {
30291 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
30294 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
30295 var u = t.isub(c).iushrn(this.shift);
30297 if (u.cmp(this.m)
>=
0) {
30298 res = u.isub(this.m);
30299 } else if (u.cmpn(
0) <
0) {
30300 res = u.iadd(this.m);
30303 return res._forceRed(this);
30306 Mont.prototype.invm = function invm (a) {
30307 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
30308 var res = this.imod(a._invmp(this.m).mul(this.r2));
30309 return res._forceRed(this);
30311 })(typeof module === 'undefined' || module, this);
30313 },{}],
34:[function(require,module,exports){
30316 module.exports = function rand(len) {
30318 r = new Rand(null);
30320 return r.generate(len);
30323 function Rand(rand) {
30326 module.exports.Rand = Rand;
30328 Rand.prototype.generate = function generate(len) {
30329 return this._rand(len);
30332 if (typeof self === 'object') {
30333 if (self.crypto && self.crypto.getRandomValues) {
30335 Rand.prototype._rand = function _rand(n) {
30336 var arr = new Uint8Array(n);
30337 self.crypto.getRandomValues(arr);
30340 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
30342 Rand.prototype._rand = function _rand(n) {
30343 var arr = new Uint8Array(n);
30344 self.msCrypto.getRandomValues(arr);
30349 Rand.prototype._rand = function() {
30350 throw new Error('Not implemented yet');
30354 // Node.js or Web worker with no crypto support
30356 var crypto = require('crypto');
30358 Rand.prototype._rand = function _rand(n) {
30359 return crypto.randomBytes(n);
30362 // Emulate crypto API using randy
30363 Rand.prototype._rand = function _rand(n) {
30364 var res = new Uint8Array(n);
30365 for (var i =
0; i < res.length; i++)
30366 res[i] = this.rand.getByte();
30372 },{"crypto":
3}],
35:[function(require,module,exports){
30373 (function (Buffer){
30374 var Transform = require('stream').Transform
30375 var inherits = require('inherits')
30376 var StringDecoder = require('string_decoder').StringDecoder
30377 module.exports = CipherBase
30378 inherits(CipherBase, Transform)
30379 function CipherBase (hashMode) {
30380 Transform.call(this)
30381 this.hashMode = typeof hashMode === 'string'
30382 if (this.hashMode) {
30383 this[hashMode] = this._finalOrDigest
30385 this.final = this._finalOrDigest
30387 this._decoder = null
30388 this._encoding = null
30390 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
30391 if (typeof data === 'string') {
30392 data = new Buffer(data, inputEnc)
30394 var outData = this._update(data)
30395 if (this.hashMode) {
30399 outData = this._toString(outData, outputEnc)
30404 CipherBase.prototype.setAutoPadding = function () {}
30406 CipherBase.prototype.getAuthTag = function () {
30407 throw new Error('trying to get auth tag in unsupported state')
30410 CipherBase.prototype.setAuthTag = function () {
30411 throw new Error('trying to set auth tag in unsupported state')
30414 CipherBase.prototype.setAAD = function () {
30415 throw new Error('trying to set aad in unsupported state')
30418 CipherBase.prototype._transform = function (data, _, next) {
30421 if (this.hashMode) {
30424 this.push(this._update(data))
30432 CipherBase.prototype._flush = function (done) {
30435 this.push(this._final())
30442 CipherBase.prototype._finalOrDigest = function (outputEnc) {
30443 var outData = this._final() || new Buffer('')
30445 outData = this._toString(outData, outputEnc, true)
30450 CipherBase.prototype._toString = function (value, enc, fin) {
30451 if (!this._decoder) {
30452 this._decoder = new StringDecoder(enc)
30453 this._encoding = enc
30455 if (this._encoding !== enc) {
30456 throw new Error('can\'t switch encodings')
30458 var out = this._decoder.write(value)
30460 out += this._decoder.end()
30465 }).call(this,require("buffer").Buffer)
30466 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
30467 (function (Buffer){
30469 var inherits = require('inherits')
30470 var md5 = require('./md5')
30471 var rmd160 = require('ripemd160')
30472 var sha = require('sha.js')
30474 var Base = require('cipher-base')
30476 function HashNoConstructor(hash) {
30477 Base.call(this, 'digest')
30483 inherits(HashNoConstructor, Base)
30485 HashNoConstructor.prototype._update = function (data) {
30486 this.buffers.push(data)
30489 HashNoConstructor.prototype._final = function () {
30490 var buf = Buffer.concat(this.buffers)
30491 var r = this._hash(buf)
30492 this.buffers = null
30497 function Hash(hash) {
30498 Base.call(this, 'digest')
30503 inherits(Hash, Base)
30505 Hash.prototype._update = function (data) {
30506 this._hash.update(data)
30509 Hash.prototype._final = function () {
30510 return this._hash.digest()
30513 module.exports = function createHash (alg) {
30514 alg = alg.toLowerCase()
30515 if ('md5' === alg) return new HashNoConstructor(md5)
30516 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
30518 return new Hash(sha(alg))
30521 }).call(this,require("buffer").Buffer)
30522 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
30523 (function (Buffer){
30526 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
30529 function toArray(buf, bigEndian) {
30530 if ((buf.length % intSize) !==
0) {
30531 var len = buf.length + (intSize - (buf.length % intSize));
30532 buf = Buffer.concat([buf, zeroBuffer], len);
30536 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
30537 for (var i =
0; i < buf.length; i += intSize) {
30538 arr.push(fn.call(buf, i));
30543 function toBuffer(arr, size, bigEndian) {
30544 var buf = new Buffer(size);
30545 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
30546 for (var i =
0; i < arr.length; i++) {
30547 fn.call(buf, arr[i], i *
4, true);
30552 function hash(buf, fn, hashSize, bigEndian) {
30553 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
30554 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
30555 return toBuffer(arr, hashSize, bigEndian);
30557 exports.hash = hash;
30558 }).call(this,require("buffer").Buffer)
30559 },{"buffer":
5}],
38:[function(require,module,exports){
30562 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
30563 * Digest Algorithm, as defined in RFC
1321.
30564 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
30565 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
30566 * Distributed under the BSD License
30567 * See http://pajhome.org.uk/crypt/md5 for more info.
30570 var helpers = require('./helpers');
30573 * Calculate the MD5 of an array of little-endian words, and a bit length
30575 function core_md5(x, len)
30577 /* append padding */
30578 x[len
>> 5] |=
0x80 << ((len) %
32);
30579 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
30581 var a =
1732584193;
30582 var b = -
271733879;
30583 var c = -
1732584194;
30586 for(var i =
0; i < x.length; i +=
16)
30593 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
30594 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
30595 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
30596 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
30597 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
30598 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
30599 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
30600 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
30601 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
30602 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
30603 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
30604 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
30605 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
30606 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
30607 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
30608 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
30610 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
30611 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
30612 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
30613 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
30614 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
30615 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
30616 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
30617 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
30618 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
30619 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
30620 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
30621 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
30622 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
30623 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
30624 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
30625 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
30627 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
30628 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
30629 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
30630 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
30631 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
30632 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
30633 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
30634 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
30635 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
30636 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
30637 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
30638 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
30639 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
30640 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
30641 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
30642 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
30644 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
30645 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
30646 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
30647 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
30648 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
30649 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
30650 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
30651 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
30652 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
30653 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
30654 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
30655 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
30656 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
30657 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
30658 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
30659 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
30661 a = safe_add(a, olda);
30662 b = safe_add(b, oldb);
30663 c = safe_add(c, oldc);
30664 d = safe_add(d, oldd);
30666 return Array(a, b, c, d);
30671 * These functions implement the four basic operations the algorithm uses.
30673 function md5_cmn(q, a, b, x, s, t)
30675 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
30677 function md5_ff(a, b, c, d, x, s, t)
30679 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
30681 function md5_gg(a, b, c, d, x, s, t)
30683 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
30685 function md5_hh(a, b, c, d, x, s, t)
30687 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
30689 function md5_ii(a, b, c, d, x, s, t)
30691 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
30695 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
30696 * to work around bugs in some JS interpreters.
30698 function safe_add(x, y)
30700 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
30701 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
30702 return (msw <<
16) | (lsw &
0xFFFF);
30706 * Bitwise rotate a
32-bit number to the left.
30708 function bit_rol(num, cnt)
30710 return (num << cnt) | (num
>>> (
32 - cnt));
30713 module.exports = function md5(buf) {
30714 return helpers.hash(buf, core_md5,
16);
30716 },{"./helpers":
37}],
39:[function(require,module,exports){
30719 var elliptic = exports;
30721 elliptic.version = require('../package.json').version;
30722 elliptic.utils = require('./elliptic/utils');
30723 elliptic.rand = require('brorand');
30724 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
30725 elliptic.curve = require('./elliptic/curve');
30726 elliptic.curves = require('./elliptic/curves');
30729 elliptic.ec = require('./elliptic/ec');
30730 elliptic.eddsa = require('./elliptic/eddsa');
30732 },{"../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){
30735 var BN = require('bn.js');
30736 var elliptic = require('../../elliptic');
30737 var utils = elliptic.utils;
30738 var getNAF = utils.getNAF;
30739 var getJSF = utils.getJSF;
30740 var assert = utils.assert;
30742 function BaseCurve(type, conf) {
30744 this.p = new BN(conf.p,
16);
30746 // Use Montgomery, when there is no fast reduction for the prime
30747 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
30749 // Useful for many curves
30750 this.zero = new BN(
0).toRed(this.red);
30751 this.one = new BN(
1).toRed(this.red);
30752 this.two = new BN(
2).toRed(this.red);
30754 // Curve configuration, optional
30755 this.n = conf.n && new BN(conf.n,
16);
30756 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
30758 // Temporary arrays
30759 this._wnafT1 = new Array(
4);
30760 this._wnafT2 = new Array(
4);
30761 this._wnafT3 = new Array(
4);
30762 this._wnafT4 = new Array(
4);
30764 // Generalized Greg Maxwell's trick
30765 var adjustCount = this.n && this.p.div(this.n);
30766 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
30769 this._maxwellTrick = true;
30770 this.redN = this.n.toRed(this.red);
30773 module.exports = BaseCurve;
30775 BaseCurve.prototype.point = function point() {
30776 throw new Error('Not implemented');
30779 BaseCurve.prototype.validate = function validate() {
30780 throw new Error('Not implemented');
30783 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
30784 assert(p.precomputed);
30785 var doubles = p._getDoubles();
30787 var naf = getNAF(k,
1);
30788 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
30791 // Translate into more windowed form
30793 for (var j =
0; j < naf.length; j += doubles.step) {
30795 for (var k = j + doubles.step -
1; k
>= j; k--)
30796 nafW = (nafW <<
1) + naf[k];
30800 var a = this.jpoint(null, null, null);
30801 var b = this.jpoint(null, null, null);
30802 for (var i = I; i
> 0; i--) {
30803 for (var j =
0; j < repr.length; j++) {
30804 var nafW = repr[j];
30806 b = b.mixedAdd(doubles.points[j]);
30807 else if (nafW === -i)
30808 b = b.mixedAdd(doubles.points[j].neg());
30815 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
30818 // Precompute window
30819 var nafPoints = p._getNAFPoints(w);
30821 var wnd = nafPoints.points;
30824 var naf = getNAF(k, w);
30826 // Add `this`*(N+
1) for every w-NAF index
30827 var acc = this.jpoint(null, null, null);
30828 for (var i = naf.length -
1; i
>=
0; i--) {
30830 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
30840 if (p.type === 'affine') {
30843 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
30845 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
30849 acc = acc.add(wnd[(z -
1)
>> 1]);
30851 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
30854 return p.type === 'affine' ? acc.toP() : acc;
30857 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
30862 var wndWidth = this._wnafT1;
30863 var wnd = this._wnafT2;
30864 var naf = this._wnafT3;
30868 for (var i =
0; i < len; i++) {
30870 var nafPoints = p._getNAFPoints(defW);
30871 wndWidth[i] = nafPoints.wnd;
30872 wnd[i] = nafPoints.points;
30875 // Comb small window NAFs
30876 for (var i = len -
1; i
>=
1; i -=
2) {
30879 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
30880 naf[a] = getNAF(coeffs[a], wndWidth[a]);
30881 naf[b] = getNAF(coeffs[b], wndWidth[b]);
30882 max = Math.max(naf[a].length, max);
30883 max = Math.max(naf[b].length, max);
30894 // Try to avoid Projective points, if possible
30895 if (points[a].y.cmp(points[b].y) ===
0) {
30896 comb[
1] = points[a].add(points[b]);
30897 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
30898 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
30899 comb[
1] = points[a].toJ().mixedAdd(points[b]);
30900 comb[
2] = points[a].add(points[b].neg());
30902 comb[
1] = points[a].toJ().mixedAdd(points[b]);
30903 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
30918 var jsf = getJSF(coeffs[a], coeffs[b]);
30919 max = Math.max(jsf[
0].length, max);
30920 naf[a] = new Array(max);
30921 naf[b] = new Array(max);
30922 for (var j =
0; j < max; j++) {
30923 var ja = jsf[
0][j] |
0;
30924 var jb = jsf[
1][j] |
0;
30926 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
30932 var acc = this.jpoint(null, null, null);
30933 var tmp = this._wnafT4;
30934 for (var i = max; i
>=
0; i--) {
30939 for (var j =
0; j < len; j++) {
30940 tmp[j] = naf[j][i] |
0;
30955 for (var j =
0; j < len; j++) {
30961 p = wnd[j][(z -
1)
>> 1];
30963 p = wnd[j][(-z -
1)
>> 1].neg();
30965 if (p.type === 'affine')
30966 acc = acc.mixedAdd(p);
30971 // Zeroify references
30972 for (var i =
0; i < len; i++)
30975 if (jacobianResult)
30981 function BasePoint(curve, type) {
30982 this.curve = curve;
30984 this.precomputed = null;
30986 BaseCurve.BasePoint = BasePoint;
30988 BasePoint.prototype.eq = function eq(/*other*/) {
30989 throw new Error('Not implemented');
30992 BasePoint.prototype.validate = function validate() {
30993 return this.curve.validate(this);
30996 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
30997 bytes = utils.toArray(bytes, enc);
30999 var len = this.p.byteLength();
31001 // uncompressed, hybrid-odd, hybrid-even
31002 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
31003 bytes.length -
1 ===
2 * len) {
31004 if (bytes[
0] ===
0x06)
31005 assert(bytes[bytes.length -
1] %
2 ===
0);
31006 else if (bytes[
0] ===
0x07)
31007 assert(bytes[bytes.length -
1] %
2 ===
1);
31009 var res = this.point(bytes.slice(
1,
1 + len),
31010 bytes.slice(
1 + len,
1 +
2 * len));
31013 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
31014 bytes.length -
1 === len) {
31015 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
31017 throw new Error('Unknown point format');
31020 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
31021 return this.encode(enc, true);
31024 BasePoint.prototype._encode = function _encode(compact) {
31025 var len = this.curve.p.byteLength();
31026 var x = this.getX().toArray('be', len);
31029 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
31031 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
31034 BasePoint.prototype.encode = function encode(enc, compact) {
31035 return utils.encode(this._encode(compact), enc);
31038 BasePoint.prototype.precompute = function precompute(power) {
31039 if (this.precomputed)
31042 var precomputed = {
31047 precomputed.naf = this._getNAFPoints(
8);
31048 precomputed.doubles = this._getDoubles(
4, power);
31049 precomputed.beta = this._getBeta();
31050 this.precomputed = precomputed;
31055 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
31056 if (!this.precomputed)
31059 var doubles = this.precomputed.doubles;
31063 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
31066 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
31067 if (this.precomputed && this.precomputed.doubles)
31068 return this.precomputed.doubles;
31070 var doubles = [ this ];
31072 for (var i =
0; i < power; i += step) {
31073 for (var j =
0; j < step; j++)
31083 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
31084 if (this.precomputed && this.precomputed.naf)
31085 return this.precomputed.naf;
31087 var res = [ this ];
31088 var max = (
1 << wnd) -
1;
31089 var dbl = max ===
1 ? null : this.dbl();
31090 for (var i =
1; i < max; i++)
31091 res[i] = res[i -
1].add(dbl);
31098 BasePoint.prototype._getBeta = function _getBeta() {
31102 BasePoint.prototype.dblp = function dblp(k) {
31104 for (var i =
0; i < k; i++)
31109 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
31112 var curve = require('../curve');
31113 var elliptic = require('../../elliptic');
31114 var BN = require('bn.js');
31115 var inherits = require('inherits');
31116 var Base = curve.base;
31118 var assert = elliptic.utils.assert;
31120 function EdwardsCurve(conf) {
31121 // NOTE: Important as we are creating point in Base.call()
31122 this.twisted = (conf.a |
0) !==
1;
31123 this.mOneA = this.twisted && (conf.a |
0) === -
1;
31124 this.extended = this.mOneA;
31126 Base.call(this, 'edwards', conf);
31128 this.a = new BN(conf.a,
16).umod(this.red.m);
31129 this.a = this.a.toRed(this.red);
31130 this.c = new BN(conf.c,
16).toRed(this.red);
31131 this.c2 = this.c.redSqr();
31132 this.d = new BN(conf.d,
16).toRed(this.red);
31133 this.dd = this.d.redAdd(this.d);
31135 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
31136 this.oneC = (conf.c |
0) ===
1;
31138 inherits(EdwardsCurve, Base);
31139 module.exports = EdwardsCurve;
31141 EdwardsCurve.prototype._mulA = function _mulA(num) {
31143 return num.redNeg();
31145 return this.a.redMul(num);
31148 EdwardsCurve.prototype._mulC = function _mulC(num) {
31152 return this.c.redMul(num);
31155 // Just for compatibility with Short curve
31156 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
31157 return this.point(x, y, z, t);
31160 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
31163 x = x.toRed(this.red);
31165 var x2 = x.redSqr();
31166 var rhs = this.c2.redSub(this.a.redMul(x2));
31167 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
31169 var y2 = rhs.redMul(lhs.redInvm());
31170 var y = y2.redSqrt();
31171 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
31172 throw new Error('invalid point');
31174 var isOdd = y.fromRed().isOdd();
31175 if (odd && !isOdd || !odd && isOdd)
31178 return this.point(x, y);
31181 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
31184 y = y.toRed(this.red);
31186 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
31187 var y2 = y.redSqr();
31188 var lhs = y2.redSub(this.one);
31189 var rhs = y2.redMul(this.d).redAdd(this.one);
31190 var x2 = lhs.redMul(rhs.redInvm());
31192 if (x2.cmp(this.zero) ===
0) {
31194 throw new Error('invalid point');
31196 return this.point(this.zero, y);
31199 var x = x2.redSqrt();
31200 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
31201 throw new Error('invalid point');
31203 if (x.isOdd() !== odd)
31206 return this.point(x, y);
31209 EdwardsCurve.prototype.validate = function validate(point) {
31210 if (point.isInfinity())
31213 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
31216 var x2 = point.x.redSqr();
31217 var y2 = point.y.redSqr();
31218 var lhs = x2.redMul(this.a).redAdd(y2);
31219 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
31221 return lhs.cmp(rhs) ===
0;
31224 function Point(curve, x, y, z, t) {
31225 Base.BasePoint.call(this, curve, 'projective');
31226 if (x === null && y === null && z === null) {
31227 this.x = this.curve.zero;
31228 this.y = this.curve.one;
31229 this.z = this.curve.one;
31230 this.t = this.curve.zero;
31233 this.x = new BN(x,
16);
31234 this.y = new BN(y,
16);
31235 this.z = z ? new BN(z,
16) : this.curve.one;
31236 this.t = t && new BN(t,
16);
31238 this.x = this.x.toRed(this.curve.red);
31240 this.y = this.y.toRed(this.curve.red);
31242 this.z = this.z.toRed(this.curve.red);
31243 if (this.t && !this.t.red)
31244 this.t = this.t.toRed(this.curve.red);
31245 this.zOne = this.z === this.curve.one;
31247 // Use extended coordinates
31248 if (this.curve.extended && !this.t) {
31249 this.t = this.x.redMul(this.y);
31251 this.t = this.t.redMul(this.z.redInvm());
31255 inherits(Point, Base.BasePoint);
31257 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
31258 return Point.fromJSON(this, obj);
31261 EdwardsCurve.prototype.point = function point(x, y, z, t) {
31262 return new Point(this, x, y, z, t);
31265 Point.fromJSON = function fromJSON(curve, obj) {
31266 return new Point(curve, obj[
0], obj[
1], obj[
2]);
31269 Point.prototype.inspect = function inspect() {
31270 if (this.isInfinity())
31271 return '
<EC Point Infinity
>';
31272 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
31273 ' y: ' + this.y.fromRed().toString(
16,
2) +
31274 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
31277 Point.prototype.isInfinity = function isInfinity() {
31278 // XXX This code assumes that zero is always zero in red
31279 return this.x.cmpn(
0) ===
0 &&
31280 this.y.cmp(this.z) ===
0;
31283 Point.prototype._extDbl = function _extDbl() {
31284 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
31285 // #doubling-dbl-
2008-hwcd
31289 var a = this.x.redSqr();
31291 var b = this.y.redSqr();
31293 var c = this.z.redSqr();
31296 var d = this.curve._mulA(a);
31297 // E = (X1 + Y1)^
2 - A - B
31298 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
31300 var g = d.redAdd(b);
31302 var f = g.redSub(c);
31304 var h = d.redSub(b);
31306 var nx = e.redMul(f);
31308 var ny = g.redMul(h);
31310 var nt = e.redMul(h);
31312 var nz = f.redMul(g);
31313 return this.curve.point(nx, ny, nz, nt);
31316 Point.prototype._projDbl = function _projDbl() {
31317 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
31318 // #doubling-dbl-
2008-bbjlp
31319 // #doubling-dbl-
2007-bl
31321 // Generally
3M +
4S or
2M +
4S
31324 var b = this.x.redAdd(this.y).redSqr();
31326 var c = this.x.redSqr();
31328 var d = this.y.redSqr();
31333 if (this.curve.twisted) {
31335 var e = this.curve._mulA(c);
31337 var f = e.redAdd(d);
31339 // X3 = (B - C - D) * (F -
2)
31340 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
31341 // Y3 = F * (E - D)
31342 ny = f.redMul(e.redSub(d));
31343 // Z3 = F^
2 -
2 * F
31344 nz = f.redSqr().redSub(f).redSub(f);
31347 var h = this.z.redSqr();
31349 var j = f.redSub(h).redISub(h);
31351 nx = b.redSub(c).redISub(d).redMul(j);
31352 // Y3 = F * (E - D)
31353 ny = f.redMul(e.redSub(d));
31359 var e = c.redAdd(d);
31361 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
31363 var j = e.redSub(h).redSub(h);
31364 // X3 = c * (B - E) * J
31365 nx = this.curve._mulC(b.redISub(e)).redMul(j);
31366 // Y3 = c * E * (C - D)
31367 ny = this.curve._mulC(e).redMul(c.redISub(d));
31371 return this.curve.point(nx, ny, nz);
31374 Point.prototype.dbl = function dbl() {
31375 if (this.isInfinity())
31378 // Double in extended coordinates
31379 if (this.curve.extended)
31380 return this._extDbl();
31382 return this._projDbl();
31385 Point.prototype._extAdd = function _extAdd(p) {
31386 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
31387 // #addition-add-
2008-hwcd-
3
31390 // A = (Y1 - X1) * (Y2 - X2)
31391 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
31392 // B = (Y1 + X1) * (Y2 + X2)
31393 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
31395 var c = this.t.redMul(this.curve.dd).redMul(p.t);
31397 var d = this.z.redMul(p.z.redAdd(p.z));
31399 var e = b.redSub(a);
31401 var f = d.redSub(c);
31403 var g = d.redAdd(c);
31405 var h = b.redAdd(a);
31407 var nx = e.redMul(f);
31409 var ny = g.redMul(h);
31411 var nt = e.redMul(h);
31413 var nz = f.redMul(g);
31414 return this.curve.point(nx, ny, nz, nt);
31417 Point.prototype._projAdd = function _projAdd(p) {
31418 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
31419 // #addition-add-
2008-bbjlp
31420 // #addition-add-
2007-bl
31424 var a = this.z.redMul(p.z);
31426 var b = a.redSqr();
31428 var c = this.x.redMul(p.x);
31430 var d = this.y.redMul(p.y);
31432 var e = this.curve.d.redMul(c).redMul(d);
31434 var f = b.redSub(e);
31436 var g = b.redAdd(e);
31437 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
31438 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
31439 var nx = a.redMul(f).redMul(tmp);
31442 if (this.curve.twisted) {
31443 // Y3 = A * G * (D - a * C)
31444 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
31448 // Y3 = A * G * (D - C)
31449 ny = a.redMul(g).redMul(d.redSub(c));
31451 nz = this.curve._mulC(f).redMul(g);
31453 return this.curve.point(nx, ny, nz);
31456 Point.prototype.add = function add(p) {
31457 if (this.isInfinity())
31459 if (p.isInfinity())
31462 if (this.curve.extended)
31463 return this._extAdd(p);
31465 return this._projAdd(p);
31468 Point.prototype.mul = function mul(k) {
31469 if (this._hasDoubles(k))
31470 return this.curve._fixedNafMul(this, k);
31472 return this.curve._wnafMul(this, k);
31475 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
31476 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
31479 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
31480 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
31483 Point.prototype.normalize = function normalize() {
31487 // Normalize coordinates
31488 var zi = this.z.redInvm();
31489 this.x = this.x.redMul(zi);
31490 this.y = this.y.redMul(zi);
31492 this.t = this.t.redMul(zi);
31493 this.z = this.curve.one;
31498 Point.prototype.neg = function neg() {
31499 return this.curve.point(this.x.redNeg(),
31502 this.t && this.t.redNeg());
31505 Point.prototype.getX = function getX() {
31507 return this.x.fromRed();
31510 Point.prototype.getY = function getY() {
31512 return this.y.fromRed();
31515 Point.prototype.eq = function eq(other) {
31516 return this === other ||
31517 this.getX().cmp(other.getX()) ===
0 &&
31518 this.getY().cmp(other.getY()) ===
0;
31521 Point.prototype.eqXToP = function eqXToP(x) {
31522 var rx = x.toRed(this.curve.red).redMul(this.z);
31523 if (this.x.cmp(rx) ===
0)
31526 var xc = x.clone();
31527 var t = this.curve.redN.redMul(this.z);
31529 xc.iadd(this.curve.n);
31530 if (xc.cmp(this.curve.p)
>=
0)
31534 if (this.x.cmp(rx) ===
0)
31540 // Compatibility with BaseCurve
31541 Point.prototype.toP = Point.prototype.normalize;
31542 Point.prototype.mixedAdd = Point.prototype.add;
31544 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
31547 var curve = exports;
31549 curve.base = require('./base');
31550 curve.short = require('./short');
31551 curve.mont = require('./mont');
31552 curve.edwards = require('./edwards');
31554 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
31557 var curve = require('../curve');
31558 var BN = require('bn.js');
31559 var inherits = require('inherits');
31560 var Base = curve.base;
31562 var elliptic = require('../../elliptic');
31563 var utils = elliptic.utils;
31565 function MontCurve(conf) {
31566 Base.call(this, 'mont', conf);
31568 this.a = new BN(conf.a,
16).toRed(this.red);
31569 this.b = new BN(conf.b,
16).toRed(this.red);
31570 this.i4 = new BN(
4).toRed(this.red).redInvm();
31571 this.two = new BN(
2).toRed(this.red);
31572 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
31574 inherits(MontCurve, Base);
31575 module.exports = MontCurve;
31577 MontCurve.prototype.validate = function validate(point) {
31578 var x = point.normalize().x;
31579 var x2 = x.redSqr();
31580 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
31581 var y = rhs.redSqrt();
31583 return y.redSqr().cmp(rhs) ===
0;
31586 function Point(curve, x, z) {
31587 Base.BasePoint.call(this, curve, 'projective');
31588 if (x === null && z === null) {
31589 this.x = this.curve.one;
31590 this.z = this.curve.zero;
31592 this.x = new BN(x,
16);
31593 this.z = new BN(z,
16);
31595 this.x = this.x.toRed(this.curve.red);
31597 this.z = this.z.toRed(this.curve.red);
31600 inherits(Point, Base.BasePoint);
31602 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
31603 return this.point(utils.toArray(bytes, enc),
1);
31606 MontCurve.prototype.point = function point(x, z) {
31607 return new Point(this, x, z);
31610 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
31611 return Point.fromJSON(this, obj);
31614 Point.prototype.precompute = function precompute() {
31618 Point.prototype._encode = function _encode() {
31619 return this.getX().toArray('be', this.curve.p.byteLength());
31622 Point.fromJSON = function fromJSON(curve, obj) {
31623 return new Point(curve, obj[
0], obj[
1] || curve.one);
31626 Point.prototype.inspect = function inspect() {
31627 if (this.isInfinity())
31628 return '
<EC Point Infinity
>';
31629 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
31630 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
31633 Point.prototype.isInfinity = function isInfinity() {
31634 // XXX This code assumes that zero is always zero in red
31635 return this.z.cmpn(
0) ===
0;
31638 Point.prototype.dbl = function dbl() {
31639 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
31643 var a = this.x.redAdd(this.z);
31645 var aa = a.redSqr();
31647 var b = this.x.redSub(this.z);
31649 var bb = b.redSqr();
31651 var c = aa.redSub(bb);
31653 var nx = aa.redMul(bb);
31654 // Z3 = C * (BB + A24 * C)
31655 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
31656 return this.curve.point(nx, nz);
31659 Point.prototype.add = function add() {
31660 throw new Error('Not supported on Montgomery curve');
31663 Point.prototype.diffAdd = function diffAdd(p, diff) {
31664 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
31668 var a = this.x.redAdd(this.z);
31670 var b = this.x.redSub(this.z);
31672 var c = p.x.redAdd(p.z);
31674 var d = p.x.redSub(p.z);
31676 var da = d.redMul(a);
31678 var cb = c.redMul(b);
31679 // X5 = Z1 * (DA + CB)^
2
31680 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
31681 // Z5 = X1 * (DA - CB)^
2
31682 var nz = diff.x.redMul(da.redISub(cb).redSqr());
31683 return this.curve.point(nx, nz);
31686 Point.prototype.mul = function mul(k) {
31688 var a = this; // (N /
2) * Q + Q
31689 var b = this.curve.point(null, null); // (N /
2) * Q
31692 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
31693 bits.push(t.andln(
1));
31695 for (var i = bits.length -
1; i
>=
0; i--) {
31696 if (bits[i] ===
0) {
31697 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
31698 a = a.diffAdd(b, c);
31699 // N * Q =
2 * ((N /
2) * Q + Q))
31702 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
31703 b = a.diffAdd(b, c);
31704 // N * Q + Q =
2 * ((N /
2) * Q + Q)
31711 Point.prototype.mulAdd = function mulAdd() {
31712 throw new Error('Not supported on Montgomery curve');
31715 Point.prototype.jumlAdd = function jumlAdd() {
31716 throw new Error('Not supported on Montgomery curve');
31719 Point.prototype.eq = function eq(other) {
31720 return this.getX().cmp(other.getX()) ===
0;
31723 Point.prototype.normalize = function normalize() {
31724 this.x = this.x.redMul(this.z.redInvm());
31725 this.z = this.curve.one;
31729 Point.prototype.getX = function getX() {
31730 // Normalize coordinates
31733 return this.x.fromRed();
31736 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
31739 var curve = require('../curve');
31740 var elliptic = require('../../elliptic');
31741 var BN = require('bn.js');
31742 var inherits = require('inherits');
31743 var Base = curve.base;
31745 var assert = elliptic.utils.assert;
31747 function ShortCurve(conf) {
31748 Base.call(this, 'short', conf);
31750 this.a = new BN(conf.a,
16).toRed(this.red);
31751 this.b = new BN(conf.b,
16).toRed(this.red);
31752 this.tinv = this.two.redInvm();
31754 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
31755 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
31757 // If the curve is endomorphic, precalculate beta and lambda
31758 this.endo = this._getEndomorphism(conf);
31759 this._endoWnafT1 = new Array(
4);
31760 this._endoWnafT2 = new Array(
4);
31762 inherits(ShortCurve, Base);
31763 module.exports = ShortCurve;
31765 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
31766 // No efficient endomorphism
31767 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
31770 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
31774 beta = new BN(conf.beta,
16).toRed(this.red);
31776 var betas = this._getEndoRoots(this.p);
31777 // Choose the smallest beta
31778 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
31779 beta = beta.toRed(this.red);
31782 lambda = new BN(conf.lambda,
16);
31784 // Choose the lambda that is matching selected beta
31785 var lambdas = this._getEndoRoots(this.n);
31786 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
31787 lambda = lambdas[
0];
31789 lambda = lambdas[
1];
31790 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
31794 // Get basis vectors, used for balanced length-two representation
31797 basis = conf.basis.map(function(vec) {
31799 a: new BN(vec.a,
16),
31800 b: new BN(vec.b,
16)
31804 basis = this._getEndoBasis(lambda);
31814 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
31815 // Find roots of for x^
2 + x +
1 in F
31816 // Root = (-
1 +- Sqrt(-
3)) /
2
31818 var red = num === this.p ? this.red : BN.mont(num);
31819 var tinv = new BN(
2).toRed(red).redInvm();
31820 var ntinv = tinv.redNeg();
31822 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
31824 var l1 = ntinv.redAdd(s).fromRed();
31825 var l2 = ntinv.redSub(s).fromRed();
31829 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
31830 // aprxSqrt
>= sqrt(this.n)
31831 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
31834 // Run EGCD, until r(L +
1) < aprxSqrt
31836 var v = this.n.clone();
31837 var x1 = new BN(
1);
31838 var y1 = new BN(
0);
31839 var x2 = new BN(
0);
31840 var y2 = new BN(
1);
31842 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
31856 while (u.cmpn(
0) !==
0) {
31858 r = v.sub(q.mul(u));
31859 x = x2.sub(q.mul(x1));
31860 var y = y2.sub(q.mul(y1));
31862 if (!a1 && r.cmp(aprxSqrt) <
0) {
31867 } else if (a1 && ++i ===
2) {
31882 var len1 = a1.sqr().add(b1.sqr());
31883 var len2 = a2.sqr().add(b2.sqr());
31884 if (len2.cmp(len1)
>=
0) {
31905 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
31906 var basis = this.endo.basis;
31910 var c1 = v2.b.mul(k).divRound(this.n);
31911 var c2 = v1.b.neg().mul(k).divRound(this.n);
31913 var p1 = c1.mul(v1.a);
31914 var p2 = c2.mul(v2.a);
31915 var q1 = c1.mul(v1.b);
31916 var q2 = c2.mul(v2.b);
31918 // Calculate answer
31919 var k1 = k.sub(p1).sub(p2);
31920 var k2 = q1.add(q2).neg();
31921 return { k1: k1, k2: k2 };
31924 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
31927 x = x.toRed(this.red);
31929 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
31930 var y = y2.redSqrt();
31931 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
31932 throw new Error('invalid point');
31934 // XXX Is there any way to tell if the number is odd without converting it
31935 // to non-red form?
31936 var isOdd = y.fromRed().isOdd();
31937 if (odd && !isOdd || !odd && isOdd)
31940 return this.point(x, y);
31943 ShortCurve.prototype.validate = function validate(point) {
31950 var ax = this.a.redMul(x);
31951 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
31952 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
31955 ShortCurve.prototype._endoWnafMulAdd =
31956 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
31957 var npoints = this._endoWnafT1;
31958 var ncoeffs = this._endoWnafT2;
31959 for (var i =
0; i < points.length; i++) {
31960 var split = this._endoSplit(coeffs[i]);
31962 var beta = p._getBeta();
31964 if (split.k1.negative) {
31968 if (split.k2.negative) {
31970 beta = beta.neg(true);
31973 npoints[i *
2] = p;
31974 npoints[i *
2 +
1] = beta;
31975 ncoeffs[i *
2] = split.k1;
31976 ncoeffs[i *
2 +
1] = split.k2;
31978 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
31980 // Clean-up references to points and coefficients
31981 for (var j =
0; j < i *
2; j++) {
31988 function Point(curve, x, y, isRed) {
31989 Base.BasePoint.call(this, curve, 'affine');
31990 if (x === null && y === null) {
31995 this.x = new BN(x,
16);
31996 this.y = new BN(y,
16);
31997 // Force redgomery representation when loading from JSON
31999 this.x.forceRed(this.curve.red);
32000 this.y.forceRed(this.curve.red);
32003 this.x = this.x.toRed(this.curve.red);
32005 this.y = this.y.toRed(this.curve.red);
32009 inherits(Point, Base.BasePoint);
32011 ShortCurve.prototype.point = function point(x, y, isRed) {
32012 return new Point(this, x, y, isRed);
32015 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
32016 return Point.fromJSON(this, obj, red);
32019 Point.prototype._getBeta = function _getBeta() {
32020 if (!this.curve.endo)
32023 var pre = this.precomputed;
32024 if (pre && pre.beta)
32027 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
32029 var curve = this.curve;
32030 var endoMul = function(p) {
32031 return curve.point(p.x.redMul(curve.endo.beta), p.y);
32034 beta.precomputed = {
32038 points: pre.naf.points.map(endoMul)
32040 doubles: pre.doubles && {
32041 step: pre.doubles.step,
32042 points: pre.doubles.points.map(endoMul)
32049 Point.prototype.toJSON = function toJSON() {
32050 if (!this.precomputed)
32051 return [ this.x, this.y ];
32053 return [ this.x, this.y, this.precomputed && {
32054 doubles: this.precomputed.doubles && {
32055 step: this.precomputed.doubles.step,
32056 points: this.precomputed.doubles.points.slice(
1)
32058 naf: this.precomputed.naf && {
32059 wnd: this.precomputed.naf.wnd,
32060 points: this.precomputed.naf.points.slice(
1)
32065 Point.fromJSON = function fromJSON(curve, obj, red) {
32066 if (typeof obj === 'string')
32067 obj = JSON.parse(obj);
32068 var res = curve.point(obj[
0], obj[
1], red);
32072 function obj2point(obj) {
32073 return curve.point(obj[
0], obj[
1], red);
32077 res.precomputed = {
32079 doubles: pre.doubles && {
32080 step: pre.doubles.step,
32081 points: [ res ].concat(pre.doubles.points.map(obj2point))
32085 points: [ res ].concat(pre.naf.points.map(obj2point))
32091 Point.prototype.inspect = function inspect() {
32092 if (this.isInfinity())
32093 return '
<EC Point Infinity
>';
32094 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
32095 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
32098 Point.prototype.isInfinity = function isInfinity() {
32102 Point.prototype.add = function add(p) {
32116 if (this.neg().eq(p))
32117 return this.curve.point(null, null);
32120 if (this.x.cmp(p.x) ===
0)
32121 return this.curve.point(null, null);
32123 var c = this.y.redSub(p.y);
32124 if (c.cmpn(
0) !==
0)
32125 c = c.redMul(this.x.redSub(p.x).redInvm());
32126 var nx = c.redSqr().redISub(this.x).redISub(p.x);
32127 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
32128 return this.curve.point(nx, ny);
32131 Point.prototype.dbl = function dbl() {
32136 var ys1 = this.y.redAdd(this.y);
32137 if (ys1.cmpn(
0) ===
0)
32138 return this.curve.point(null, null);
32140 var a = this.curve.a;
32142 var x2 = this.x.redSqr();
32143 var dyinv = ys1.redInvm();
32144 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
32146 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
32147 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
32148 return this.curve.point(nx, ny);
32151 Point.prototype.getX = function getX() {
32152 return this.x.fromRed();
32155 Point.prototype.getY = function getY() {
32156 return this.y.fromRed();
32159 Point.prototype.mul = function mul(k) {
32162 if (this._hasDoubles(k))
32163 return this.curve._fixedNafMul(this, k);
32164 else if (this.curve.endo)
32165 return this.curve._endoWnafMulAdd([ this ], [ k ]);
32167 return this.curve._wnafMul(this, k);
32170 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
32171 var points = [ this, p2 ];
32172 var coeffs = [ k1, k2 ];
32173 if (this.curve.endo)
32174 return this.curve._endoWnafMulAdd(points, coeffs);
32176 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
32179 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
32180 var points = [ this, p2 ];
32181 var coeffs = [ k1, k2 ];
32182 if (this.curve.endo)
32183 return this.curve._endoWnafMulAdd(points, coeffs, true);
32185 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
32188 Point.prototype.eq = function eq(p) {
32189 return this === p ||
32190 this.inf === p.inf &&
32191 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
32194 Point.prototype.neg = function neg(_precompute) {
32198 var res = this.curve.point(this.x, this.y.redNeg());
32199 if (_precompute && this.precomputed) {
32200 var pre = this.precomputed;
32201 var negate = function(p) {
32204 res.precomputed = {
32207 points: pre.naf.points.map(negate)
32209 doubles: pre.doubles && {
32210 step: pre.doubles.step,
32211 points: pre.doubles.points.map(negate)
32218 Point.prototype.toJ = function toJ() {
32220 return this.curve.jpoint(null, null, null);
32222 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
32226 function JPoint(curve, x, y, z) {
32227 Base.BasePoint.call(this, curve, 'jacobian');
32228 if (x === null && y === null && z === null) {
32229 this.x = this.curve.one;
32230 this.y = this.curve.one;
32231 this.z = new BN(
0);
32233 this.x = new BN(x,
16);
32234 this.y = new BN(y,
16);
32235 this.z = new BN(z,
16);
32238 this.x = this.x.toRed(this.curve.red);
32240 this.y = this.y.toRed(this.curve.red);
32242 this.z = this.z.toRed(this.curve.red);
32244 this.zOne = this.z === this.curve.one;
32246 inherits(JPoint, Base.BasePoint);
32248 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
32249 return new JPoint(this, x, y, z);
32252 JPoint.prototype.toP = function toP() {
32253 if (this.isInfinity())
32254 return this.curve.point(null, null);
32256 var zinv = this.z.redInvm();
32257 var zinv2 = zinv.redSqr();
32258 var ax = this.x.redMul(zinv2);
32259 var ay = this.y.redMul(zinv2).redMul(zinv);
32261 return this.curve.point(ax, ay);
32264 JPoint.prototype.neg = function neg() {
32265 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
32268 JPoint.prototype.add = function add(p) {
32270 if (this.isInfinity())
32274 if (p.isInfinity())
32278 var pz2 = p.z.redSqr();
32279 var z2 = this.z.redSqr();
32280 var u1 = this.x.redMul(pz2);
32281 var u2 = p.x.redMul(z2);
32282 var s1 = this.y.redMul(pz2.redMul(p.z));
32283 var s2 = p.y.redMul(z2.redMul(this.z));
32285 var h = u1.redSub(u2);
32286 var r = s1.redSub(s2);
32287 if (h.cmpn(
0) ===
0) {
32288 if (r.cmpn(
0) !==
0)
32289 return this.curve.jpoint(null, null, null);
32294 var h2 = h.redSqr();
32295 var h3 = h2.redMul(h);
32296 var v = u1.redMul(h2);
32298 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
32299 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
32300 var nz = this.z.redMul(p.z).redMul(h);
32302 return this.curve.jpoint(nx, ny, nz);
32305 JPoint.prototype.mixedAdd = function mixedAdd(p) {
32307 if (this.isInfinity())
32311 if (p.isInfinity())
32315 var z2 = this.z.redSqr();
32317 var u2 = p.x.redMul(z2);
32319 var s2 = p.y.redMul(z2).redMul(this.z);
32321 var h = u1.redSub(u2);
32322 var r = s1.redSub(s2);
32323 if (h.cmpn(
0) ===
0) {
32324 if (r.cmpn(
0) !==
0)
32325 return this.curve.jpoint(null, null, null);
32330 var h2 = h.redSqr();
32331 var h3 = h2.redMul(h);
32332 var v = u1.redMul(h2);
32334 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
32335 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
32336 var nz = this.z.redMul(h);
32338 return this.curve.jpoint(nx, ny, nz);
32341 JPoint.prototype.dblp = function dblp(pow) {
32344 if (this.isInfinity())
32349 if (this.curve.zeroA || this.curve.threeA) {
32351 for (var i =
0; i < pow; i++)
32356 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
32357 // N =
1 =
> 6M +
6S +
9A
32358 var a = this.curve.a;
32359 var tinv = this.curve.tinv;
32364 var jz4 = jz.redSqr().redSqr();
32367 var jyd = jy.redAdd(jy);
32368 for (var i =
0; i < pow; i++) {
32369 var jx2 = jx.redSqr();
32370 var jyd2 = jyd.redSqr();
32371 var jyd4 = jyd2.redSqr();
32372 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
32374 var t1 = jx.redMul(jyd2);
32375 var nx = c.redSqr().redISub(t1.redAdd(t1));
32376 var t2 = t1.redISub(nx);
32377 var dny = c.redMul(t2);
32378 dny = dny.redIAdd(dny).redISub(jyd4);
32379 var nz = jyd.redMul(jz);
32381 jz4 = jz4.redMul(jyd4);
32388 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
32391 JPoint.prototype.dbl = function dbl() {
32392 if (this.isInfinity())
32395 if (this.curve.zeroA)
32396 return this._zeroDbl();
32397 else if (this.curve.threeA)
32398 return this._threeDbl();
32400 return this._dbl();
32403 JPoint.prototype._zeroDbl = function _zeroDbl() {
32409 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
32410 // #doubling-mdbl-
2007-bl
32414 var xx = this.x.redSqr();
32416 var yy = this.y.redSqr();
32418 var yyyy = yy.redSqr();
32419 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
32420 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32422 // M =
3 * XX + a; a =
0
32423 var m = xx.redAdd(xx).redIAdd(xx);
32425 var t = m.redSqr().redISub(s).redISub(s);
32428 var yyyy8 = yyyy.redIAdd(yyyy);
32429 yyyy8 = yyyy8.redIAdd(yyyy8);
32430 yyyy8 = yyyy8.redIAdd(yyyy8);
32434 // Y3 = M * (S - T) -
8 * YYYY
32435 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
32437 nz = this.y.redAdd(this.y);
32439 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
32440 // #doubling-dbl-
2009-l
32444 var a = this.x.redSqr();
32446 var b = this.y.redSqr();
32448 var c = b.redSqr();
32449 // D =
2 * ((X1 + B)^
2 - A - C)
32450 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
32453 var e = a.redAdd(a).redIAdd(a);
32455 var f = e.redSqr();
32458 var c8 = c.redIAdd(c);
32459 c8 = c8.redIAdd(c8);
32460 c8 = c8.redIAdd(c8);
32463 nx = f.redISub(d).redISub(d);
32464 // Y3 = E * (D - X3) -
8 * C
32465 ny = e.redMul(d.redISub(nx)).redISub(c8);
32466 // Z3 =
2 * Y1 * Z1
32467 nz = this.y.redMul(this.z);
32468 nz = nz.redIAdd(nz);
32471 return this.curve.jpoint(nx, ny, nz);
32474 JPoint.prototype._threeDbl = function _threeDbl() {
32480 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
32481 // #doubling-mdbl-
2007-bl
32485 var xx = this.x.redSqr();
32487 var yy = this.y.redSqr();
32489 var yyyy = yy.redSqr();
32490 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
32491 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32494 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
32496 var t = m.redSqr().redISub(s).redISub(s);
32499 // Y3 = M * (S - T) -
8 * YYYY
32500 var yyyy8 = yyyy.redIAdd(yyyy);
32501 yyyy8 = yyyy8.redIAdd(yyyy8);
32502 yyyy8 = yyyy8.redIAdd(yyyy8);
32503 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
32505 nz = this.y.redAdd(this.y);
32507 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
32511 var delta = this.z.redSqr();
32513 var gamma = this.y.redSqr();
32514 // beta = X1 * gamma
32515 var beta = this.x.redMul(gamma);
32516 // alpha =
3 * (X1 - delta) * (X1 + delta)
32517 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
32518 alpha = alpha.redAdd(alpha).redIAdd(alpha);
32519 // X3 = alpha^
2 -
8 * beta
32520 var beta4 = beta.redIAdd(beta);
32521 beta4 = beta4.redIAdd(beta4);
32522 var beta8 = beta4.redAdd(beta4);
32523 nx = alpha.redSqr().redISub(beta8);
32524 // Z3 = (Y1 + Z1)^
2 - gamma - delta
32525 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
32526 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
32527 var ggamma8 = gamma.redSqr();
32528 ggamma8 = ggamma8.redIAdd(ggamma8);
32529 ggamma8 = ggamma8.redIAdd(ggamma8);
32530 ggamma8 = ggamma8.redIAdd(ggamma8);
32531 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
32534 return this.curve.jpoint(nx, ny, nz);
32537 JPoint.prototype._dbl = function _dbl() {
32538 var a = this.curve.a;
32544 var jz4 = jz.redSqr().redSqr();
32546 var jx2 = jx.redSqr();
32547 var jy2 = jy.redSqr();
32549 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
32551 var jxd4 = jx.redAdd(jx);
32552 jxd4 = jxd4.redIAdd(jxd4);
32553 var t1 = jxd4.redMul(jy2);
32554 var nx = c.redSqr().redISub(t1.redAdd(t1));
32555 var t2 = t1.redISub(nx);
32557 var jyd8 = jy2.redSqr();
32558 jyd8 = jyd8.redIAdd(jyd8);
32559 jyd8 = jyd8.redIAdd(jyd8);
32560 jyd8 = jyd8.redIAdd(jyd8);
32561 var ny = c.redMul(t2).redISub(jyd8);
32562 var nz = jy.redAdd(jy).redMul(jz);
32564 return this.curve.jpoint(nx, ny, nz);
32567 JPoint.prototype.trpl = function trpl() {
32568 if (!this.curve.zeroA)
32569 return this.dbl().add(this);
32571 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
32575 var xx = this.x.redSqr();
32577 var yy = this.y.redSqr();
32579 var zz = this.z.redSqr();
32581 var yyyy = yy.redSqr();
32582 // M =
3 * XX + a * ZZ2; a =
0
32583 var m = xx.redAdd(xx).redIAdd(xx);
32585 var mm = m.redSqr();
32586 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
32587 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32589 e = e.redAdd(e).redIAdd(e);
32592 var ee = e.redSqr();
32594 var t = yyyy.redIAdd(yyyy);
32598 // U = (M + E)^
2 - MM - EE - T
32599 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
32600 // X3 =
4 * (X1 * EE -
4 * YY * U)
32601 var yyu4 = yy.redMul(u);
32602 yyu4 = yyu4.redIAdd(yyu4);
32603 yyu4 = yyu4.redIAdd(yyu4);
32604 var nx = this.x.redMul(ee).redISub(yyu4);
32605 nx = nx.redIAdd(nx);
32606 nx = nx.redIAdd(nx);
32607 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
32608 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
32609 ny = ny.redIAdd(ny);
32610 ny = ny.redIAdd(ny);
32611 ny = ny.redIAdd(ny);
32612 // Z3 = (Z1 + E)^
2 - ZZ - EE
32613 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
32615 return this.curve.jpoint(nx, ny, nz);
32618 JPoint.prototype.mul = function mul(k, kbase) {
32619 k = new BN(k, kbase);
32621 return this.curve._wnafMul(this, k);
32624 JPoint.prototype.eq = function eq(p) {
32625 if (p.type === 'affine')
32626 return this.eq(p.toJ());
32631 // x1 * z2^
2 == x2 * z1^
2
32632 var z2 = this.z.redSqr();
32633 var pz2 = p.z.redSqr();
32634 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
32637 // y1 * z2^
3 == y2 * z1^
3
32638 var z3 = z2.redMul(this.z);
32639 var pz3 = pz2.redMul(p.z);
32640 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
32643 JPoint.prototype.eqXToP = function eqXToP(x) {
32644 var zs = this.z.redSqr();
32645 var rx = x.toRed(this.curve.red).redMul(zs);
32646 if (this.x.cmp(rx) ===
0)
32649 var xc = x.clone();
32650 var t = this.curve.redN.redMul(zs);
32652 xc.iadd(this.curve.n);
32653 if (xc.cmp(this.curve.p)
>=
0)
32657 if (this.x.cmp(rx) ===
0)
32663 JPoint.prototype.inspect = function inspect() {
32664 if (this.isInfinity())
32665 return '
<EC JPoint Infinity
>';
32666 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
32667 ' y: ' + this.y.toString(
16,
2) +
32668 ' z: ' + this.z.toString(
16,
2) + '
>';
32671 JPoint.prototype.isInfinity = function isInfinity() {
32672 // XXX This code assumes that zero is always zero in red
32673 return this.z.cmpn(
0) ===
0;
32676 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
32679 var curves = exports;
32681 var hash = require('hash.js');
32682 var elliptic = require('../elliptic');
32684 var assert = elliptic.utils.assert;
32686 function PresetCurve(options) {
32687 if (options.type === 'short')
32688 this.curve = new elliptic.curve.short(options);
32689 else if (options.type === 'edwards')
32690 this.curve = new elliptic.curve.edwards(options);
32692 this.curve = new elliptic.curve.mont(options);
32693 this.g = this.curve.g;
32694 this.n = this.curve.n;
32695 this.hash = options.hash;
32697 assert(this.g.validate(), 'Invalid curve');
32698 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
32700 curves.PresetCurve = PresetCurve;
32702 function defineCurve(name, options) {
32703 Object.defineProperty(curves, name, {
32704 configurable: true,
32707 var curve = new PresetCurve(options);
32708 Object.defineProperty(curves, name, {
32709 configurable: true,
32718 defineCurve('p192', {
32721 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
32722 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
32723 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
32724 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
32728 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
32729 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
32733 defineCurve('p224', {
32736 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
32737 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
32738 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
32739 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
32743 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
32744 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
32748 defineCurve('p256', {
32751 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
32752 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
32753 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
32754 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
32758 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
32759 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
32763 defineCurve('p384', {
32766 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32767 'fffffffe ffffffff
00000000 00000000 ffffffff',
32768 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32769 'fffffffe ffffffff
00000000 00000000 fffffffc',
32770 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
32771 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
32772 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
32773 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
32777 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
32778 '
5502f25d bf55296c
3a545e38
72760ab7',
32779 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
32780 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
32784 defineCurve('p521', {
32787 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32788 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32789 'ffffffff ffffffff ffffffff ffffffff ffffffff',
32790 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32791 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32792 'ffffffff ffffffff ffffffff ffffffff fffffffc',
32793 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
32794 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
32795 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
32796 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32797 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
32798 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
32802 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
32803 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
32804 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
32805 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
32806 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
32807 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
32811 defineCurve('curve25519', {
32814 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
32817 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
32825 defineCurve('ed25519', {
32828 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
32831 // -
121665 * (
121666^(-
1)) (mod P)
32832 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
32833 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
32837 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
32840 '
6666666666666666666666666666666666666666666666666666666666666658'
32846 pre = require('./precomputed/secp256k1');
32851 defineCurve('secp256k1', {
32854 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
32857 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
32861 // Precomputed endomorphism
32862 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
32863 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
32866 a: '
3086d221a7d46bcde86c90e49284eb15',
32867 b: '-e4437ed6010e88286f547fa90abfe4c3'
32870 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
32871 b: '
3086d221a7d46bcde86c90e49284eb15'
32877 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
32878 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
32883 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
32886 var BN = require('bn.js');
32887 var elliptic = require('../../elliptic');
32888 var utils = elliptic.utils;
32889 var assert = utils.assert;
32891 var KeyPair = require('./key');
32892 var Signature = require('./signature');
32894 function EC(options) {
32895 if (!(this instanceof EC))
32896 return new EC(options);
32898 // Shortcut `elliptic.ec(curve-name)`
32899 if (typeof options === 'string') {
32900 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
32902 options = elliptic.curves[options];
32905 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
32906 if (options instanceof elliptic.curves.PresetCurve)
32907 options = { curve: options };
32909 this.curve = options.curve.curve;
32910 this.n = this.curve.n;
32911 this.nh = this.n.ushrn(
1);
32912 this.g = this.curve.g;
32915 this.g = options.curve.g;
32916 this.g.precompute(options.curve.n.bitLength() +
1);
32918 // Hash for function for DRBG
32919 this.hash = options.hash || options.curve.hash;
32921 module.exports = EC;
32923 EC.prototype.keyPair = function keyPair(options) {
32924 return new KeyPair(this, options);
32927 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
32928 return KeyPair.fromPrivate(this, priv, enc);
32931 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
32932 return KeyPair.fromPublic(this, pub, enc);
32935 EC.prototype.genKeyPair = function genKeyPair(options) {
32939 // Instantiate Hmac_DRBG
32940 var drbg = new elliptic.hmacDRBG({
32942 pers: options.pers,
32943 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
32944 nonce: this.n.toArray()
32947 var bytes = this.n.byteLength();
32948 var ns2 = this.n.sub(new BN(
2));
32950 var priv = new BN(drbg.generate(bytes));
32951 if (priv.cmp(ns2)
> 0)
32955 return this.keyFromPrivate(priv);
32959 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
32960 var delta = msg.byteLength() *
8 - this.n.bitLength();
32962 msg = msg.ushrn(delta);
32963 if (!truncOnly && msg.cmp(this.n)
>=
0)
32964 return msg.sub(this.n);
32969 EC.prototype.sign = function sign(msg, key, enc, options) {
32970 if (typeof enc === 'object') {
32977 key = this.keyFromPrivate(key, enc);
32978 msg = this._truncateToN(new BN(msg,
16));
32980 // Zero-extend key to provide enough entropy
32981 var bytes = this.n.byteLength();
32982 var bkey = key.getPrivate().toArray('be', bytes);
32984 // Zero-extend nonce to have the same byte size as N
32985 var nonce = msg.toArray('be', bytes);
32987 // Instantiate Hmac_DRBG
32988 var drbg = new elliptic.hmacDRBG({
32992 pers: options.pers,
32993 persEnc: options.persEnc
32996 // Number of bytes to generate
32997 var ns1 = this.n.sub(new BN(
1));
32999 for (var iter =
0; true; iter++) {
33000 var k = options.k ?
33002 new BN(drbg.generate(this.n.byteLength()));
33003 k = this._truncateToN(k, true);
33004 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
33007 var kp = this.g.mul(k);
33008 if (kp.isInfinity())
33011 var kpX = kp.getX();
33012 var r = kpX.umod(this.n);
33013 if (r.cmpn(
0) ===
0)
33016 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
33017 s = s.umod(this.n);
33018 if (s.cmpn(
0) ===
0)
33021 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
33022 (kpX.cmp(r) !==
0 ?
2 :
0);
33024 // Use complement of `s`, if it is
> `n /
2`
33025 if (options.canonical && s.cmp(this.nh)
> 0) {
33027 recoveryParam ^=
1;
33030 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
33034 EC.prototype.verify = function verify(msg, signature, key, enc) {
33035 msg = this._truncateToN(new BN(msg,
16));
33036 key = this.keyFromPublic(key, enc);
33037 signature = new Signature(signature, 'hex');
33039 // Perform primitive values validation
33040 var r = signature.r;
33041 var s = signature.s;
33042 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
33044 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
33047 // Validate signature
33048 var sinv = s.invm(this.n);
33049 var u1 = sinv.mul(msg).umod(this.n);
33050 var u2 = sinv.mul(r).umod(this.n);
33052 if (!this.curve._maxwellTrick) {
33053 var p = this.g.mulAdd(u1, key.getPublic(), u2);
33054 if (p.isInfinity())
33057 return p.getX().umod(this.n).cmp(r) ===
0;
33060 // NOTE: Greg Maxwell's trick, inspired by:
33061 // https://git.io/vad3K
33063 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
33064 if (p.isInfinity())
33067 // Compare `p.x` of Jacobian point with `r`,
33068 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
33069 // inverse of `p.z^
2`
33070 return p.eqXToP(r);
33073 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
33074 assert((
3 & j) === j, 'The recovery param is more than two bits');
33075 signature = new Signature(signature, enc);
33078 var e = new BN(msg);
33079 var r = signature.r;
33080 var s = signature.s;
33082 // A set LSB signifies that the y-coordinate is odd
33083 var isYOdd = j &
1;
33084 var isSecondKey = j
>> 1;
33085 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
33086 throw new Error('Unable to find sencond key candinate');
33088 //
1.1. Let x = r + jn.
33090 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
33092 r = this.curve.pointFromX(r, isYOdd);
33094 var rInv = signature.r.invm(n);
33095 var s1 = n.sub(e).mul(rInv).umod(n);
33096 var s2 = s.mul(rInv).umod(n);
33098 //
1.6.1 Compute Q = r^-
1 (sR - eG)
33099 // Q = r^-
1 (sR + -eG)
33100 return this.g.mulAdd(s1, r, s2);
33103 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
33104 signature = new Signature(signature, enc);
33105 if (signature.recoveryParam !== null)
33106 return signature.recoveryParam;
33108 for (var i =
0; i <
4; i++) {
33111 Qprime = this.recoverPubKey(e, signature, i);
33119 throw new Error('Unable to find valid recovery factor');
33122 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
33125 var BN = require('bn.js');
33126 var elliptic = require('../../elliptic');
33127 var utils = elliptic.utils;
33128 var assert = utils.assert;
33130 function KeyPair(ec, options) {
33135 // KeyPair(ec, { priv: ..., pub: ... })
33137 this._importPrivate(options.priv, options.privEnc);
33139 this._importPublic(options.pub, options.pubEnc);
33141 module.exports = KeyPair;
33143 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
33144 if (pub instanceof KeyPair)
33147 return new KeyPair(ec, {
33153 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
33154 if (priv instanceof KeyPair)
33157 return new KeyPair(ec, {
33163 KeyPair.prototype.validate = function validate() {
33164 var pub = this.getPublic();
33166 if (pub.isInfinity())
33167 return { result: false, reason: 'Invalid public key' };
33168 if (!pub.validate())
33169 return { result: false, reason: 'Public key is not a point' };
33170 if (!pub.mul(this.ec.curve.n).isInfinity())
33171 return { result: false, reason: 'Public key * N != O' };
33173 return { result: true, reason: null };
33176 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
33177 // compact is optional argument
33178 if (typeof compact === 'string') {
33184 this.pub = this.ec.g.mul(this.priv);
33189 return this.pub.encode(enc, compact);
33192 KeyPair.prototype.getPrivate = function getPrivate(enc) {
33194 return this.priv.toString(
16,
2);
33199 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
33200 this.priv = new BN(key, enc ||
16);
33202 // Ensure that the priv won't be bigger than n, otherwise we may fail
33203 // in fixed multiplication method
33204 this.priv = this.priv.umod(this.ec.curve.n);
33207 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
33208 if (key.x || key.y) {
33209 // Montgomery points only have an `x` coordinate.
33210 // Weierstrass/Edwards points on the other hand have both `x` and
33211 // `y` coordinates.
33212 if (this.ec.curve.type === 'mont') {
33213 assert(key.x, 'Need x coordinate');
33214 } else if (this.ec.curve.type === 'short' ||
33215 this.ec.curve.type === 'edwards') {
33216 assert(key.x && key.y, 'Need both x and y coordinate');
33218 this.pub = this.ec.curve.point(key.x, key.y);
33221 this.pub = this.ec.curve.decodePoint(key, enc);
33225 KeyPair.prototype.derive = function derive(pub) {
33226 return pub.mul(this.priv).getX();
33230 KeyPair.prototype.sign = function sign(msg, enc, options) {
33231 return this.ec.sign(msg, this, enc, options);
33234 KeyPair.prototype.verify = function verify(msg, signature) {
33235 return this.ec.verify(msg, signature, this);
33238 KeyPair.prototype.inspect = function inspect() {
33239 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
33240 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
33243 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
33246 var BN = require('bn.js');
33248 var elliptic = require('../../elliptic');
33249 var utils = elliptic.utils;
33250 var assert = utils.assert;
33252 function Signature(options, enc) {
33253 if (options instanceof Signature)
33256 if (this._importDER(options, enc))
33259 assert(options.r && options.s, 'Signature without r or s');
33260 this.r = new BN(options.r,
16);
33261 this.s = new BN(options.s,
16);
33262 if (options.recoveryParam === undefined)
33263 this.recoveryParam = null;
33265 this.recoveryParam = options.recoveryParam;
33267 module.exports = Signature;
33269 function Position() {
33273 function getLength(buf, p) {
33274 var initial = buf[p.place++];
33275 if (!(initial &
0x80)) {
33278 var octetLen = initial &
0xf;
33280 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
33288 function rmPadding(buf) {
33290 var len = buf.length -
1;
33291 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
33297 return buf.slice(i);
33300 Signature.prototype._importDER = function _importDER(data, enc) {
33301 data = utils.toArray(data, enc);
33302 var p = new Position();
33303 if (data[p.place++] !==
0x30) {
33306 var len = getLength(data, p);
33307 if ((len + p.place) !== data.length) {
33310 if (data[p.place++] !==
0x02) {
33313 var rlen = getLength(data, p);
33314 var r = data.slice(p.place, rlen + p.place);
33316 if (data[p.place++] !==
0x02) {
33319 var slen = getLength(data, p);
33320 if (data.length !== slen + p.place) {
33323 var s = data.slice(p.place, slen + p.place);
33324 if (r[
0] ===
0 && (r[
1] &
0x80)) {
33327 if (s[
0] ===
0 && (s[
1] &
0x80)) {
33331 this.r = new BN(r);
33332 this.s = new BN(s);
33333 this.recoveryParam = null;
33338 function constructLength(arr, len) {
33343 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
33344 arr.push(octets |
0x80);
33346 arr.push((len
>>> (octets <<
3)) &
0xff);
33351 Signature.prototype.toDER = function toDER(enc) {
33352 var r = this.r.toArray();
33353 var s = this.s.toArray();
33357 r = [
0 ].concat(r);
33360 s = [
0 ].concat(s);
33365 while (!s[
0] && !(s[
1] &
0x80)) {
33368 var arr = [
0x02 ];
33369 constructLength(arr, r.length);
33370 arr = arr.concat(r);
33372 constructLength(arr, s.length);
33373 var backHalf = arr.concat(s);
33374 var res = [
0x30 ];
33375 constructLength(res, backHalf.length);
33376 res = res.concat(backHalf);
33377 return utils.encode(res, enc);
33380 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
33383 var hash = require('hash.js');
33384 var elliptic = require('../../elliptic');
33385 var utils = elliptic.utils;
33386 var assert = utils.assert;
33387 var parseBytes = utils.parseBytes;
33388 var KeyPair = require('./key');
33389 var Signature = require('./signature');
33391 function EDDSA(curve) {
33392 assert(curve === 'ed25519', 'only tested with ed25519 so far');
33394 if (!(this instanceof EDDSA))
33395 return new EDDSA(curve);
33397 var curve = elliptic.curves[curve].curve;
33398 this.curve = curve;
33400 this.g.precompute(curve.n.bitLength() +
1);
33402 this.pointClass = curve.point().constructor;
33403 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
33404 this.hash = hash.sha512;
33407 module.exports = EDDSA;
33410 * @param {Array|String} message - message bytes
33411 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
33412 * @returns {Signature} - signature
33414 EDDSA.prototype.sign = function sign(message, secret) {
33415 message = parseBytes(message);
33416 var key = this.keyFromSecret(secret);
33417 var r = this.hashInt(key.messagePrefix(), message);
33418 var R = this.g.mul(r);
33419 var Rencoded = this.encodePoint(R);
33420 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
33422 var S = r.add(s_).umod(this.curve.n);
33423 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
33427 * @param {Array} message - message bytes
33428 * @param {Array|String|Signature} sig - sig bytes
33429 * @param {Array|String|Point|KeyPair} pub - public key
33430 * @returns {Boolean} - true if public key matches sig of message
33432 EDDSA.prototype.verify = function verify(message, sig, pub) {
33433 message = parseBytes(message);
33434 sig = this.makeSignature(sig);
33435 var key = this.keyFromPublic(pub);
33436 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
33437 var SG = this.g.mul(sig.S());
33438 var RplusAh = sig.R().add(key.pub().mul(h));
33439 return RplusAh.eq(SG);
33442 EDDSA.prototype.hashInt = function hashInt() {
33443 var hash = this.hash();
33444 for (var i =
0; i < arguments.length; i++)
33445 hash.update(arguments[i]);
33446 return utils.intFromLE(hash.digest()).umod(this.curve.n);
33449 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
33450 return KeyPair.fromPublic(this, pub);
33453 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
33454 return KeyPair.fromSecret(this, secret);
33457 EDDSA.prototype.makeSignature = function makeSignature(sig) {
33458 if (sig instanceof Signature)
33460 return new Signature(this, sig);
33464 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
33466 * EDDSA defines methods for encoding and decoding points and integers. These are
33467 * helper convenience methods, that pass along to utility functions implied
33471 EDDSA.prototype.encodePoint = function encodePoint(point) {
33472 var enc = point.getY().toArray('le', this.encodingLength);
33473 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
33477 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
33478 bytes = utils.parseBytes(bytes);
33480 var lastIx = bytes.length -
1;
33481 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
33482 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
33484 var y = utils.intFromLE(normed);
33485 return this.curve.pointFromY(y, xIsOdd);
33488 EDDSA.prototype.encodeInt = function encodeInt(num) {
33489 return num.toArray('le', this.encodingLength);
33492 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
33493 return utils.intFromLE(bytes);
33496 EDDSA.prototype.isPoint = function isPoint(val) {
33497 return val instanceof this.pointClass;
33500 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
33503 var elliptic = require('../../elliptic');
33504 var utils = elliptic.utils;
33505 var assert = utils.assert;
33506 var parseBytes = utils.parseBytes;
33507 var cachedProperty = utils.cachedProperty;
33510 * @param {EDDSA} eddsa - instance
33511 * @param {Object} params - public/private key parameters
33513 * @param {Array
<Byte>} [params.secret] - secret seed bytes
33514 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
33515 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
33518 function KeyPair(eddsa, params) {
33519 this.eddsa = eddsa;
33520 this._secret = parseBytes(params.secret);
33521 if (eddsa.isPoint(params.pub))
33522 this._pub = params.pub;
33524 this._pubBytes = parseBytes(params.pub);
33527 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
33528 if (pub instanceof KeyPair)
33530 return new KeyPair(eddsa, { pub: pub });
33533 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
33534 if (secret instanceof KeyPair)
33536 return new KeyPair(eddsa, { secret: secret });
33539 KeyPair.prototype.secret = function secret() {
33540 return this._secret;
33543 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
33544 return this.eddsa.encodePoint(this.pub());
33547 cachedProperty(KeyPair, 'pub', function pub() {
33548 if (this._pubBytes)
33549 return this.eddsa.decodePoint(this._pubBytes);
33550 return this.eddsa.g.mul(this.priv());
33553 cachedProperty(KeyPair, 'privBytes', function privBytes() {
33554 var eddsa = this.eddsa;
33555 var hash = this.hash();
33556 var lastIx = eddsa.encodingLength -
1;
33558 var a = hash.slice(
0, eddsa.encodingLength);
33566 cachedProperty(KeyPair, 'priv', function priv() {
33567 return this.eddsa.decodeInt(this.privBytes());
33570 cachedProperty(KeyPair, 'hash', function hash() {
33571 return this.eddsa.hash().update(this.secret()).digest();
33574 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
33575 return this.hash().slice(this.eddsa.encodingLength);
33578 KeyPair.prototype.sign = function sign(message) {
33579 assert(this._secret, 'KeyPair can only verify');
33580 return this.eddsa.sign(message, this);
33583 KeyPair.prototype.verify = function verify(message, sig) {
33584 return this.eddsa.verify(message, sig, this);
33587 KeyPair.prototype.getSecret = function getSecret(enc) {
33588 assert(this._secret, 'KeyPair is public only');
33589 return utils.encode(this.secret(), enc);
33592 KeyPair.prototype.getPublic = function getPublic(enc) {
33593 return utils.encode(this.pubBytes(), enc);
33596 module.exports = KeyPair;
33598 },{"../../elliptic":
39}],
51:[function(require,module,exports){
33601 var BN = require('bn.js');
33602 var elliptic = require('../../elliptic');
33603 var utils = elliptic.utils;
33604 var assert = utils.assert;
33605 var cachedProperty = utils.cachedProperty;
33606 var parseBytes = utils.parseBytes;
33609 * @param {EDDSA} eddsa - eddsa instance
33610 * @param {Array
<Bytes>|Object} sig -
33611 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
33612 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
33613 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
33614 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
33616 function Signature(eddsa, sig) {
33617 this.eddsa = eddsa;
33619 if (typeof sig !== 'object')
33620 sig = parseBytes(sig);
33622 if (Array.isArray(sig)) {
33624 R: sig.slice(
0, eddsa.encodingLength),
33625 S: sig.slice(eddsa.encodingLength)
33629 assert(sig.R && sig.S, 'Signature without R or S');
33631 if (eddsa.isPoint(sig.R))
33633 if (sig.S instanceof BN)
33636 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
33637 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
33640 cachedProperty(Signature, 'S', function S() {
33641 return this.eddsa.decodeInt(this.Sencoded());
33644 cachedProperty(Signature, 'R', function R() {
33645 return this.eddsa.decodePoint(this.Rencoded());
33648 cachedProperty(Signature, 'Rencoded', function Rencoded() {
33649 return this.eddsa.encodePoint(this.R());
33652 cachedProperty(Signature, 'Sencoded', function Sencoded() {
33653 return this.eddsa.encodeInt(this.S());
33656 Signature.prototype.toBytes = function toBytes() {
33657 return this.Rencoded().concat(this.Sencoded());
33660 Signature.prototype.toHex = function toHex() {
33661 return utils.encode(this.toBytes(), 'hex').toUpperCase();
33664 module.exports = Signature;
33666 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
33669 var hash = require('hash.js');
33670 var elliptic = require('../elliptic');
33671 var utils = elliptic.utils;
33672 var assert = utils.assert;
33674 function HmacDRBG(options) {
33675 if (!(this instanceof HmacDRBG))
33676 return new HmacDRBG(options);
33677 this.hash = options.hash;
33678 this.predResist = !!options.predResist;
33680 this.outLen = this.hash.outSize;
33681 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
33683 this.reseed = null;
33684 this.reseedInterval = null;
33688 var entropy = utils.toArray(options.entropy, options.entropyEnc);
33689 var nonce = utils.toArray(options.nonce, options.nonceEnc);
33690 var pers = utils.toArray(options.pers, options.persEnc);
33691 assert(entropy.length
>= (this.minEntropy /
8),
33692 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
33693 this._init(entropy, nonce, pers);
33695 module.exports = HmacDRBG;
33697 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
33698 var seed = entropy.concat(nonce).concat(pers);
33700 this.K = new Array(this.outLen /
8);
33701 this.V = new Array(this.outLen /
8);
33702 for (var i =
0; i < this.V.length; i++) {
33707 this._update(seed);
33709 this.reseedInterval =
0x1000000000000; //
2^
48
33712 HmacDRBG.prototype._hmac = function hmac() {
33713 return new hash.hmac(this.hash, this.K);
33716 HmacDRBG.prototype._update = function update(seed) {
33717 var kmac = this._hmac()
33721 kmac = kmac.update(seed);
33722 this.K = kmac.digest();
33723 this.V = this._hmac().update(this.V).digest();
33727 this.K = this._hmac()
33732 this.V = this._hmac().update(this.V).digest();
33735 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
33736 // Optional entropy enc
33737 if (typeof entropyEnc !== 'string') {
33743 entropy = utils.toBuffer(entropy, entropyEnc);
33744 add = utils.toBuffer(add, addEnc);
33746 assert(entropy.length
>= (this.minEntropy /
8),
33747 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
33749 this._update(entropy.concat(add || []));
33753 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
33754 if (this.reseed
> this.reseedInterval)
33755 throw new Error('Reseed is required');
33757 // Optional encoding
33758 if (typeof enc !== 'string') {
33764 // Optional additional data
33766 add = utils.toArray(add, addEnc);
33771 while (temp.length < len) {
33772 this.V = this._hmac().update(this.V).digest();
33773 temp = temp.concat(this.V);
33776 var res = temp.slice(
0, len);
33779 return utils.encode(res, enc);
33782 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
33788 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
33789 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
33792 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
33793 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
33796 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
33797 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
33800 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
33801 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
33804 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
33805 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
33808 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
33809 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
33812 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
33813 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
33816 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
33817 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
33820 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
33821 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
33824 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
33825 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
33828 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
33829 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
33832 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
33833 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
33836 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
33837 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
33840 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
33841 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
33844 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
33845 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
33848 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
33849 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
33852 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
33853 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
33856 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
33857 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
33860 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
33861 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
33864 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
33865 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
33868 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
33869 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
33872 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
33873 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
33876 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
33877 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
33880 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
33881 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
33884 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
33885 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
33888 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
33889 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
33892 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
33893 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
33896 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
33897 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
33900 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
33901 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
33904 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
33905 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
33908 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
33909 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
33912 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
33913 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
33916 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
33917 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
33920 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
33921 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
33924 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
33925 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
33928 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
33929 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
33932 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
33933 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
33936 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
33937 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
33940 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
33941 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
33944 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
33945 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
33948 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
33949 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
33952 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
33953 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
33956 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
33957 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
33960 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
33961 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
33964 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
33965 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
33968 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
33969 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
33972 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
33973 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
33976 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
33977 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
33980 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
33981 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
33984 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
33985 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
33988 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
33989 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
33992 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
33993 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
33996 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
33997 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
34000 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
34001 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
34004 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
34005 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
34008 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
34009 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
34012 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
34013 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
34016 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
34017 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
34020 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
34021 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
34024 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
34025 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
34028 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
34029 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
34032 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
34033 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
34036 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
34037 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
34040 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
34041 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
34044 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
34045 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
34053 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
34054 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
34057 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
34058 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
34061 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
34062 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
34065 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
34066 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
34069 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
34070 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
34073 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
34074 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
34077 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
34078 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
34081 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
34082 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
34085 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
34086 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
34089 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
34090 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
34093 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
34094 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
34097 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
34098 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
34101 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
34102 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
34105 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
34106 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
34109 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
34110 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
34113 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
34114 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
34117 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
34118 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
34121 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
34122 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
34125 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
34126 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
34129 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
34130 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
34133 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
34134 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
34137 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
34138 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
34141 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
34142 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
34145 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
34146 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
34149 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
34150 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
34153 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
34154 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
34157 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
34158 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
34161 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
34162 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
34165 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
34166 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
34169 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
34170 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
34173 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
34174 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
34177 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
34178 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
34181 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
34182 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
34185 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
34186 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
34189 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
34190 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
34193 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
34194 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
34197 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
34198 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
34201 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
34202 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
34205 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
34206 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
34209 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
34210 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
34213 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
34214 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
34217 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
34218 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
34221 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
34222 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
34225 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
34226 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
34229 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
34230 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
34233 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
34234 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
34237 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
34238 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
34241 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
34242 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
34245 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
34246 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
34249 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
34250 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
34253 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
34254 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
34257 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
34258 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
34261 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
34262 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
34265 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
34266 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
34269 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
34270 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
34273 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
34274 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
34277 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
34278 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
34281 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
34282 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
34285 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
34286 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
34289 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
34290 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
34293 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
34294 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
34297 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
34298 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
34301 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
34302 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
34305 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
34306 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
34309 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
34310 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
34313 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
34314 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
34317 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
34318 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
34321 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
34322 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
34325 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
34326 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
34329 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
34330 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
34333 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
34334 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
34337 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
34338 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
34341 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
34342 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
34345 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
34346 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
34349 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
34350 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
34353 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
34354 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
34357 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
34358 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
34361 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
34362 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
34365 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
34366 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
34369 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
34370 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
34373 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
34374 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
34377 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
34378 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
34381 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
34382 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
34385 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
34386 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
34389 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
34390 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
34393 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
34394 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
34397 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
34398 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
34401 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
34402 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
34405 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
34406 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
34409 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
34410 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
34413 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
34414 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
34417 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
34418 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
34421 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
34422 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
34425 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
34426 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
34429 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
34430 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
34433 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
34434 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
34437 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
34438 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
34441 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
34442 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
34445 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
34446 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
34449 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
34450 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
34453 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
34454 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
34457 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
34458 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
34461 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
34462 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
34465 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
34466 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
34469 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
34470 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
34473 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
34474 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
34477 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
34478 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
34481 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
34482 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
34485 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
34486 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
34489 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
34490 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
34493 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
34494 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
34497 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
34498 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
34501 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
34502 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
34505 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
34506 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
34509 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
34510 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
34513 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
34514 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
34517 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
34518 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
34521 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
34522 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
34525 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
34526 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
34529 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
34530 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
34533 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
34534 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
34537 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
34538 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
34541 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
34542 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
34545 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
34546 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
34549 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
34550 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
34553 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
34554 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
34557 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
34558 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
34564 },{}],
54:[function(require,module,exports){
34567 var utils = exports;
34568 var BN = require('bn.js');
34570 utils.assert = function assert(val, msg) {
34572 throw new Error(msg || 'Assertion failed');
34575 function toArray(msg, enc) {
34576 if (Array.isArray(msg))
34577 return msg.slice();
34581 if (typeof msg !== 'string') {
34582 for (var i =
0; i < msg.length; i++)
34583 res[i] = msg[i] |
0;
34587 for (var i =
0; i < msg.length; i++) {
34588 var c = msg.charCodeAt(i);
34596 } else if (enc === 'hex') {
34597 msg = msg.replace(/[^a-z0-
9]+/ig, '');
34598 if (msg.length %
2 !==
0)
34600 for (var i =
0; i < msg.length; i +=
2)
34601 res.push(parseInt(msg[i] + msg[i +
1],
16));
34605 utils.toArray = toArray;
34607 function zero2(word) {
34608 if (word.length ===
1)
34613 utils.zero2 = zero2;
34615 function toHex(msg) {
34617 for (var i =
0; i < msg.length; i++)
34618 res += zero2(msg[i].toString(
16));
34621 utils.toHex = toHex;
34623 utils.encode = function encode(arr, enc) {
34630 // Represent num in a w-NAF form
34631 function getNAF(num, w) {
34633 var ws =
1 << (w +
1);
34634 var k = num.clone();
34635 while (k.cmpn(
1)
>=
0) {
34638 var mod = k.andln(ws -
1);
34639 if (mod
> (ws
>> 1) -
1)
34640 z = (ws
>> 1) - mod;
34649 // Optimization, shift by word if possible
34650 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
34651 for (var i =
1; i < shift; i++)
34658 utils.getNAF = getNAF;
34660 // Represent k1, k2 in a Joint Sparse Form
34661 function getJSF(k1, k2) {
34671 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
34674 var m14 = (k1.andln(
3) + d1) &
3;
34675 var m24 = (k2.andln(
3) + d2) &
3;
34681 if ((m14 &
1) ===
0) {
34684 var m8 = (k1.andln(
7) + d1) &
7;
34685 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
34693 if ((m24 &
1) ===
0) {
34696 var m8 = (k2.andln(
7) + d2) &
7;
34697 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
34705 if (
2 * d1 === u1 +
1)
34707 if (
2 * d2 === u2 +
1)
34715 utils.getJSF = getJSF;
34717 function cachedProperty(obj, name, computer) {
34718 var key = '_' + name;
34719 obj.prototype[name] = function cachedProperty() {
34720 return this[key] !== undefined ? this[key] :
34721 this[key] = computer.call(this);
34724 utils.cachedProperty = cachedProperty;
34726 function parseBytes(bytes) {
34727 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
34730 utils.parseBytes = parseBytes;
34732 function intFromLE(bytes) {
34733 return new BN(bytes, 'hex', 'le');
34735 utils.intFromLE = intFromLE;
34738 },{
"bn.js":
33}],
55:[function(require,module,exports){
34743 "raw":
"elliptic@^6.2.3",
34745 "escapedName":
"elliptic",
34746 "name":
"elliptic",
34747 "rawSpec":
"^6.2.3",
34748 "spec":
">=6.2.3 <7.0.0",
34751 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
34754 "_from":
"elliptic@>=6.2.3 <7.0.0",
34755 "_id":
"elliptic@6.3.3",
34757 "_location":
"/elliptic",
34758 "_nodeVersion":
"7.0.0",
34759 "_npmOperationalInternal": {
34760 "host":
"packages-18-east.internal.npmjs.com",
34761 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
34765 "email":
"fedor@indutny.com"
34767 "_npmVersion":
"3.10.8",
34768 "_phantomChildren": {},
34770 "raw":
"elliptic@^6.2.3",
34772 "escapedName":
"elliptic",
34773 "name":
"elliptic",
34774 "rawSpec":
"^6.2.3",
34775 "spec":
">=6.2.3 <7.0.0",
34779 "/browserify-sign",
34783 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
34784 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
34785 "_shrinkwrap": null,
34786 "_spec":
"elliptic@^6.2.3",
34787 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
34789 "name":
"Fedor Indutny",
34790 "email":
"fedor@indutny.com"
34793 "url":
"https://github.com/indutny/elliptic/issues"
34797 "brorand":
"^1.0.1",
34798 "hash.js":
"^1.0.0",
34799 "inherits":
"^2.0.1"
34801 "description":
"EC cryptography",
34802 "devDependencies": {
34804 "coveralls":
"^2.11.3",
34806 "grunt-browserify":
"^5.0.0",
34807 "grunt-cli":
"^1.2.0",
34808 "grunt-contrib-connect":
"^1.0.0",
34809 "grunt-contrib-copy":
"^1.0.0",
34810 "grunt-contrib-uglify":
"^1.0.1",
34811 "grunt-mocha-istanbul":
"^3.0.1",
34812 "grunt-saucelabs":
"^8.6.2",
34813 "istanbul":
"^0.4.2",
34815 "jshint":
"^2.6.0",
34820 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
34821 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
34826 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
34827 "homepage":
"https://github.com/indutny/elliptic",
34835 "main":
"lib/elliptic.js",
34839 "email":
"fedor@indutny.com"
34842 "name":
"elliptic",
34843 "optionalDependencies": {},
34844 "readme":
"ERROR: No README data found!",
34847 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
34850 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
34851 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
34852 "lint":
"npm run jscs && npm run jshint",
34853 "test":
"npm run lint && npm run unit",
34854 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
34855 "version":
"grunt dist && git add dist/"
34860 },{}],
56:[function(require,module,exports){
34861 (function (Buffer){
34864 var isHexPrefixed = require('is-hex-prefixed');
34865 var stripHexPrefix = require('strip-hex-prefix');
34868 * Pads a `String` to have an even length
34869 * @param {String} value
34870 * @return {String} output
34872 function padToEven(value) {
34873 var a = value; // eslint-disable-line
34875 if (typeof a !== 'string') {
34876 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
34879 if (a.length %
2) {
34887 * Converts a `Number` into a hex `String`
34888 * @param {Number} i
34891 function intToHex(i) {
34892 var hex = i.toString(
16); // eslint-disable-line
34894 return '
0x' + padToEven(hex);
34898 * Converts an `Number` to a `Buffer`
34899 * @param {Number} i
34902 function intToBuffer(i) {
34903 var hex = intToHex(i);
34905 return new Buffer(hex.slice(
2), 'hex');
34909 * Get the binary size of a string
34910 * @param {String} str
34913 function getBinarySize(str) {
34914 if (typeof str !== 'string') {
34915 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
34918 return Buffer.byteLength(str, 'utf8');
34922 * Returns TRUE if the first specified array contains all elements
34923 * from the second one. FALSE otherwise.
34925 * @param {array} superset
34926 * @param {array} subset
34928 * @returns {boolean}
34930 function arrayContainsArray(superset, subset, some) {
34931 if (Array.isArray(superset) !== true) {
34932 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
34934 if (Array.isArray(subset) !== true) {
34935 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
34938 return subset[Boolean(some) && 'some' || 'every'](function (value) {
34939 return superset.indexOf(value)
>=
0;
34944 * Should be called to get utf8 from it's hex representation
34947 * @param {String} string in hex
34948 * @returns {String} ascii string representation of hex value
34950 function toUtf8(hex) {
34951 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
34953 return bufferValue.toString('utf8');
34957 * Should be called to get ascii from it's hex representation
34960 * @param {String} string in hex
34961 * @returns {String} ascii string representation of hex value
34963 function toAscii(hex) {
34964 var str = ''; // eslint-disable-line
34966 l = hex.length; // eslint-disable-line
34968 if (hex.substring(
0,
2) === '
0x') {
34972 for (; i < l; i +=
2) {
34973 var code = parseInt(hex.substr(i,
2),
16);
34974 str += String.fromCharCode(code);
34981 * Should be called to get hex representation (prefixed by
0x) of utf8 string
34984 * @param {String} string
34985 * @param {Number} optional padding
34986 * @returns {String} hex representation of input string
34988 function fromUtf8(stringValue) {
34989 var str = new Buffer(stringValue, 'utf8');
34991 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
34995 * Should be called to get hex representation (prefixed by
0x) of ascii string
34997 * @method fromAscii
34998 * @param {String} string
34999 * @param {Number} optional padding
35000 * @returns {String} hex representation of input string
35002 function fromAscii(stringValue) {
35003 var hex = ''; // eslint-disable-line
35004 for (var i =
0; i < stringValue.length; i++) {
35005 // eslint-disable-line
35006 var code = stringValue.charCodeAt(i);
35007 var n = code.toString(
16);
35008 hex += n.length <
2 ? '
0' + n : n;
35015 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
35017 * @method getKeys get specific key from inner object array of objects
35018 * @param {String} params
35019 * @param {String} key
35020 * @param {Boolean} allowEmpty
35021 * @returns {Array} output just a simple array of output keys
35023 function getKeys(params, key, allowEmpty) {
35024 if (!Array.isArray(params)) {
35025 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
35027 if (typeof key !== 'string') {
35028 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
35031 var result = []; // eslint-disable-line
35033 for (var i =
0; i < params.length; i++) {
35034 // eslint-disable-line
35035 var value = params[i][key]; // eslint-disable-line
35036 if (allowEmpty && !value) {
35038 } else if (typeof value !== 'string') {
35039 throw new Error('invalid abi');
35041 result.push(value);
35048 * Is the string a hex string.
35050 * @method check if string is hex string of specific length
35051 * @param {String} value
35052 * @param {Number} length
35053 * @returns {Boolean} output the string is a hex string
35055 function isHexString(value, length) {
35056 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
35060 if (length && value.length !==
2 +
2 * length) {
35068 arrayContainsArray: arrayContainsArray,
35069 intToBuffer: intToBuffer,
35070 getBinarySize: getBinarySize,
35071 isHexPrefixed: isHexPrefixed,
35072 stripHexPrefix: stripHexPrefix,
35073 padToEven: padToEven,
35074 intToHex: intToHex,
35075 fromAscii: fromAscii,
35076 fromUtf8: fromUtf8,
35080 isHexString: isHexString
35082 }).call(this,require("buffer").Buffer)
35083 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
35084 var hash = exports;
35086 hash.utils = require('./hash/utils');
35087 hash.common = require('./hash/common');
35088 hash.sha = require('./hash/sha');
35089 hash.ripemd = require('./hash/ripemd');
35090 hash.hmac = require('./hash/hmac');
35092 // Proxy hash functions to the main object
35093 hash.sha1 = hash.sha.sha1;
35094 hash.sha256 = hash.sha.sha256;
35095 hash.sha224 = hash.sha.sha224;
35096 hash.sha384 = hash.sha.sha384;
35097 hash.sha512 = hash.sha.sha512;
35098 hash.ripemd160 = hash.ripemd.ripemd160;
35100 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
35101 var hash = require('../hash');
35102 var utils = hash.utils;
35103 var assert = utils.assert;
35105 function BlockHash() {
35106 this.pending = null;
35107 this.pendingTotal =
0;
35108 this.blockSize = this.constructor.blockSize;
35109 this.outSize = this.constructor.outSize;
35110 this.hmacStrength = this.constructor.hmacStrength;
35111 this.padLength = this.constructor.padLength /
8;
35112 this.endian = 'big';
35114 this._delta8 = this.blockSize /
8;
35115 this._delta32 = this.blockSize /
32;
35117 exports.BlockHash = BlockHash;
35119 BlockHash.prototype.update = function update(msg, enc) {
35120 // Convert message to array, pad it, and join into
32bit blocks
35121 msg = utils.toArray(msg, enc);
35123 this.pending = msg;
35125 this.pending = this.pending.concat(msg);
35126 this.pendingTotal += msg.length;
35128 // Enough data, try updating
35129 if (this.pending.length
>= this._delta8) {
35130 msg = this.pending;
35132 // Process pending data in blocks
35133 var r = msg.length % this._delta8;
35134 this.pending = msg.slice(msg.length - r, msg.length);
35135 if (this.pending.length ===
0)
35136 this.pending = null;
35138 msg = utils.join32(msg,
0, msg.length - r, this.endian);
35139 for (var i =
0; i < msg.length; i += this._delta32)
35140 this._update(msg, i, i + this._delta32);
35146 BlockHash.prototype.digest = function digest(enc) {
35147 this.update(this._pad());
35148 assert(this.pending === null);
35150 return this._digest(enc);
35153 BlockHash.prototype._pad = function pad() {
35154 var len = this.pendingTotal;
35155 var bytes = this._delta8;
35156 var k = bytes - ((len + this.padLength) % bytes);
35157 var res = new Array(k + this.padLength);
35159 for (var i =
1; i < k; i++)
35164 if (this.endian === 'big') {
35165 for (var t =
8; t < this.padLength; t++)
35172 res[i++] = (len
>>> 24) &
0xff;
35173 res[i++] = (len
>>> 16) &
0xff;
35174 res[i++] = (len
>>> 8) &
0xff;
35175 res[i++] = len &
0xff;
35177 res[i++] = len &
0xff;
35178 res[i++] = (len
>>> 8) &
0xff;
35179 res[i++] = (len
>>> 16) &
0xff;
35180 res[i++] = (len
>>> 24) &
0xff;
35186 for (var t =
8; t < this.padLength; t++)
35193 },{
"../hash":
57}],
59:[function(require,module,exports){
35194 var hmac = exports;
35196 var hash = require('../hash');
35197 var utils = hash.utils;
35198 var assert = utils.assert;
35200 function Hmac(hash, key, enc) {
35201 if (!(this instanceof Hmac))
35202 return new Hmac(hash, key, enc);
35204 this.blockSize = hash.blockSize /
8;
35205 this.outSize = hash.outSize /
8;
35209 this._init(utils.toArray(key, enc));
35211 module.exports = Hmac;
35213 Hmac.prototype._init = function init(key) {
35214 // Shorten key, if needed
35215 if (key.length
> this.blockSize)
35216 key = new this.Hash().update(key).digest();
35217 assert(key.length <= this.blockSize);
35219 // Add padding to key
35220 for (var i = key.length; i < this.blockSize; i++)
35223 for (var i =
0; i < key.length; i++)
35225 this.inner = new this.Hash().update(key);
35227 //
0x36 ^
0x5c =
0x6a
35228 for (var i =
0; i < key.length; i++)
35230 this.outer = new this.Hash().update(key);
35233 Hmac.prototype.update = function update(msg, enc) {
35234 this.inner.update(msg, enc);
35238 Hmac.prototype.digest = function digest(enc) {
35239 this.outer.update(this.inner.digest());
35240 return this.outer.digest(enc);
35243 },{"../hash":
57}],
60:[function(require,module,exports){
35244 var hash = require('../hash');
35245 var utils = hash.utils;
35247 var rotl32 = utils.rotl32;
35248 var sum32 = utils.sum32;
35249 var sum32_3 = utils.sum32_3;
35250 var sum32_4 = utils.sum32_4;
35251 var BlockHash = hash.common.BlockHash;
35253 function RIPEMD160() {
35254 if (!(this instanceof RIPEMD160))
35255 return new RIPEMD160();
35257 BlockHash.call(this);
35259 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
35260 this.endian = 'little';
35262 utils.inherits(RIPEMD160, BlockHash);
35263 exports.ripemd160 = RIPEMD160;
35265 RIPEMD160.blockSize =
512;
35266 RIPEMD160.outSize =
160;
35267 RIPEMD160.hmacStrength =
192;
35268 RIPEMD160.padLength =
64;
35270 RIPEMD160.prototype._update = function update(msg, start) {
35281 for (var j =
0; j <
80; j++) {
35284 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
35294 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
35299 Dh = rotl32(Ch,
10);
35303 T = sum32_3(this.h[
1], C, Dh);
35304 this.h[
1] = sum32_3(this.h[
2], D, Eh);
35305 this.h[
2] = sum32_3(this.h[
3], E, Ah);
35306 this.h[
3] = sum32_3(this.h[
4], A, Bh);
35307 this.h[
4] = sum32_3(this.h[
0], B, Ch);
35311 RIPEMD160.prototype._digest = function digest(enc) {
35313 return utils.toHex32(this.h, 'little');
35315 return utils.split32(this.h, 'little');
35318 function f(j, x, y, z) {
35322 return (x & y) | ((~x) & z);
35324 return (x | (~y)) ^ z;
35326 return (x & z) | (y & (~z));
35328 return x ^ (y | (~z));
35358 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
35359 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
35360 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
35361 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
35362 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
35366 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
35367 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
35368 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
35369 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
35370 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
35374 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
35375 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
35376 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
35377 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
35378 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
35382 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
35383 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
35384 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
35385 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
35386 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
35389 },{"../hash":
57}],
61:[function(require,module,exports){
35390 var hash = require('../hash');
35391 var utils = hash.utils;
35392 var assert = utils.assert;
35394 var rotr32 = utils.rotr32;
35395 var rotl32 = utils.rotl32;
35396 var sum32 = utils.sum32;
35397 var sum32_4 = utils.sum32_4;
35398 var sum32_5 = utils.sum32_5;
35399 var rotr64_hi = utils.rotr64_hi;
35400 var rotr64_lo = utils.rotr64_lo;
35401 var shr64_hi = utils.shr64_hi;
35402 var shr64_lo = utils.shr64_lo;
35403 var sum64 = utils.sum64;
35404 var sum64_hi = utils.sum64_hi;
35405 var sum64_lo = utils.sum64_lo;
35406 var sum64_4_hi = utils.sum64_4_hi;
35407 var sum64_4_lo = utils.sum64_4_lo;
35408 var sum64_5_hi = utils.sum64_5_hi;
35409 var sum64_5_lo = utils.sum64_5_lo;
35410 var BlockHash = hash.common.BlockHash;
35413 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
35414 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
35415 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
35416 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
35417 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
35418 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
35419 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
35420 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
35421 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
35422 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
35423 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
35424 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
35425 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
35426 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
35427 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
35428 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
35432 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
35433 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
35434 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
35435 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
35436 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
35437 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
35438 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
35439 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
35440 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
35441 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
35442 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
35443 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
35444 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
35445 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
35446 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
35447 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
35448 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
35449 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
35450 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
35451 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
35452 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
35453 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
35454 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
35455 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
35456 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
35457 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
35458 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
35459 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
35460 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
35461 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
35462 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
35463 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
35464 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
35465 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
35466 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
35467 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
35468 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
35469 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
35470 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
35471 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
35475 0x5A827999,
0x6ED9EBA1,
35476 0x8F1BBCDC,
0xCA62C1D6
35479 function SHA256() {
35480 if (!(this instanceof SHA256))
35481 return new SHA256();
35483 BlockHash.call(this);
35484 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
35485 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
35487 this.W = new Array(
64);
35489 utils.inherits(SHA256, BlockHash);
35490 exports.sha256 = SHA256;
35492 SHA256.blockSize =
512;
35493 SHA256.outSize =
256;
35494 SHA256.hmacStrength =
192;
35495 SHA256.padLength =
64;
35497 SHA256.prototype._update = function _update(msg, start) {
35500 for (var i =
0; i <
16; i++)
35501 W[i] = msg[start + i];
35502 for (; i < W.length; i++)
35503 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
35514 assert(this.k.length === W.length);
35515 for (var i =
0; i < W.length; i++) {
35516 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
35517 var T2 = sum32(s0_256(a), maj32(a, b, c));
35528 this.h[
0] = sum32(this.h[
0], a);
35529 this.h[
1] = sum32(this.h[
1], b);
35530 this.h[
2] = sum32(this.h[
2], c);
35531 this.h[
3] = sum32(this.h[
3], d);
35532 this.h[
4] = sum32(this.h[
4], e);
35533 this.h[
5] = sum32(this.h[
5], f);
35534 this.h[
6] = sum32(this.h[
6], g);
35535 this.h[
7] = sum32(this.h[
7], h);
35538 SHA256.prototype._digest = function digest(enc) {
35540 return utils.toHex32(this.h, 'big');
35542 return utils.split32(this.h, 'big');
35545 function SHA224() {
35546 if (!(this instanceof SHA224))
35547 return new SHA224();
35550 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
35551 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
35553 utils.inherits(SHA224, SHA256);
35554 exports.sha224 = SHA224;
35556 SHA224.blockSize =
512;
35557 SHA224.outSize =
224;
35558 SHA224.hmacStrength =
192;
35559 SHA224.padLength =
64;
35561 SHA224.prototype._digest = function digest(enc) {
35562 // Just truncate output
35564 return utils.toHex32(this.h.slice(
0,
7), 'big');
35566 return utils.split32(this.h.slice(
0,
7), 'big');
35569 function SHA512() {
35570 if (!(this instanceof SHA512))
35571 return new SHA512();
35573 BlockHash.call(this);
35574 this.h = [
0x6a09e667,
0xf3bcc908,
35575 0xbb67ae85,
0x84caa73b,
35576 0x3c6ef372,
0xfe94f82b,
35577 0xa54ff53a,
0x5f1d36f1,
35578 0x510e527f,
0xade682d1,
35579 0x9b05688c,
0x2b3e6c1f,
35580 0x1f83d9ab,
0xfb41bd6b,
35581 0x5be0cd19,
0x137e2179 ];
35583 this.W = new Array(
160);
35585 utils.inherits(SHA512, BlockHash);
35586 exports.sha512 = SHA512;
35588 SHA512.blockSize =
1024;
35589 SHA512.outSize =
512;
35590 SHA512.hmacStrength =
192;
35591 SHA512.padLength =
128;
35593 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
35596 //
32 x
32bit words
35597 for (var i =
0; i <
32; i++)
35598 W[i] = msg[start + i];
35599 for (; i < W.length; i +=
2) {
35600 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
35601 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
35602 var c1_hi = W[i -
14]; // i -
7
35603 var c1_lo = W[i -
13];
35604 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
35605 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
35606 var c3_hi = W[i -
32]; // i -
16
35607 var c3_lo = W[i -
31];
35609 W[i] = sum64_4_hi(c0_hi, c0_lo,
35613 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
35620 SHA512.prototype._update = function _update(msg, start) {
35621 this._prepareBlock(msg, start);
35625 var ah = this.h[
0];
35626 var al = this.h[
1];
35627 var bh = this.h[
2];
35628 var bl = this.h[
3];
35629 var ch = this.h[
4];
35630 var cl = this.h[
5];
35631 var dh = this.h[
6];
35632 var dl = this.h[
7];
35633 var eh = this.h[
8];
35634 var el = this.h[
9];
35635 var fh = this.h[
10];
35636 var fl = this.h[
11];
35637 var gh = this.h[
12];
35638 var gl = this.h[
13];
35639 var hh = this.h[
14];
35640 var hl = this.h[
15];
35642 assert(this.k.length === W.length);
35643 for (var i =
0; i < W.length; i +=
2) {
35646 var c1_hi = s1_512_hi(eh, el);
35647 var c1_lo = s1_512_lo(eh, el);
35648 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
35649 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
35650 var c3_hi = this.k[i];
35651 var c3_lo = this.k[i +
1];
35653 var c4_lo = W[i +
1];
35655 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
35660 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
35666 var c0_hi = s0_512_hi(ah, al);
35667 var c0_lo = s0_512_lo(ah, al);
35668 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
35669 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
35671 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
35672 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
35683 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
35684 el = sum64_lo(dl, dl, T1_hi, T1_lo);
35695 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
35696 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
35699 sum64(this.h,
0, ah, al);
35700 sum64(this.h,
2, bh, bl);
35701 sum64(this.h,
4, ch, cl);
35702 sum64(this.h,
6, dh, dl);
35703 sum64(this.h,
8, eh, el);
35704 sum64(this.h,
10, fh, fl);
35705 sum64(this.h,
12, gh, gl);
35706 sum64(this.h,
14, hh, hl);
35709 SHA512.prototype._digest = function digest(enc) {
35711 return utils.toHex32(this.h, 'big');
35713 return utils.split32(this.h, 'big');
35716 function SHA384() {
35717 if (!(this instanceof SHA384))
35718 return new SHA384();
35721 this.h = [
0xcbbb9d5d,
0xc1059ed8,
35722 0x629a292a,
0x367cd507,
35723 0x9159015a,
0x3070dd17,
35724 0x152fecd8,
0xf70e5939,
35725 0x67332667,
0xffc00b31,
35726 0x8eb44a87,
0x68581511,
35727 0xdb0c2e0d,
0x64f98fa7,
35728 0x47b5481d,
0xbefa4fa4 ];
35730 utils.inherits(SHA384, SHA512);
35731 exports.sha384 = SHA384;
35733 SHA384.blockSize =
1024;
35734 SHA384.outSize =
384;
35735 SHA384.hmacStrength =
192;
35736 SHA384.padLength =
128;
35738 SHA384.prototype._digest = function digest(enc) {
35740 return utils.toHex32(this.h.slice(
0,
12), 'big');
35742 return utils.split32(this.h.slice(
0,
12), 'big');
35746 if (!(this instanceof SHA1))
35749 BlockHash.call(this);
35750 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
35751 0x10325476,
0xc3d2e1f0 ];
35752 this.W = new Array(
80);
35755 utils.inherits(SHA1, BlockHash);
35756 exports.sha1 = SHA1;
35758 SHA1.blockSize =
512;
35759 SHA1.outSize =
160;
35760 SHA1.hmacStrength =
80;
35761 SHA1.padLength =
64;
35763 SHA1.prototype._update = function _update(msg, start) {
35766 for (var i =
0; i <
16; i++)
35767 W[i] = msg[start + i];
35769 for(; i < W.length; i++)
35770 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
35778 for (var i =
0; i < W.length; i++) {
35779 var s = ~~(i /
20);
35780 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
35788 this.h[
0] = sum32(this.h[
0], a);
35789 this.h[
1] = sum32(this.h[
1], b);
35790 this.h[
2] = sum32(this.h[
2], c);
35791 this.h[
3] = sum32(this.h[
3], d);
35792 this.h[
4] = sum32(this.h[
4], e);
35795 SHA1.prototype._digest = function digest(enc) {
35797 return utils.toHex32(this.h, 'big');
35799 return utils.split32(this.h, 'big');
35802 function ch32(x, y, z) {
35803 return (x & y) ^ ((~x) & z);
35806 function maj32(x, y, z) {
35807 return (x & y) ^ (x & z) ^ (y & z);
35810 function p32(x, y, z) {
35814 function s0_256(x) {
35815 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
35818 function s1_256(x) {
35819 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
35822 function g0_256(x) {
35823 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
35826 function g1_256(x) {
35827 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
35830 function ft_1(s, x, y, z) {
35832 return ch32(x, y, z);
35833 if (s ===
1 || s ===
3)
35834 return p32(x, y, z);
35836 return maj32(x, y, z);
35839 function ch64_hi(xh, xl, yh, yl, zh, zl) {
35840 var r = (xh & yh) ^ ((~xh) & zh);
35846 function ch64_lo(xh, xl, yh, yl, zh, zl) {
35847 var r = (xl & yl) ^ ((~xl) & zl);
35853 function maj64_hi(xh, xl, yh, yl, zh, zl) {
35854 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
35860 function maj64_lo(xh, xl, yh, yl, zh, zl) {
35861 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
35867 function s0_512_hi(xh, xl) {
35868 var c0_hi = rotr64_hi(xh, xl,
28);
35869 var c1_hi = rotr64_hi(xl, xh,
2); //
34
35870 var c2_hi = rotr64_hi(xl, xh,
7); //
39
35872 var r = c0_hi ^ c1_hi ^ c2_hi;
35878 function s0_512_lo(xh, xl) {
35879 var c0_lo = rotr64_lo(xh, xl,
28);
35880 var c1_lo = rotr64_lo(xl, xh,
2); //
34
35881 var c2_lo = rotr64_lo(xl, xh,
7); //
39
35883 var r = c0_lo ^ c1_lo ^ c2_lo;
35889 function s1_512_hi(xh, xl) {
35890 var c0_hi = rotr64_hi(xh, xl,
14);
35891 var c1_hi = rotr64_hi(xh, xl,
18);
35892 var c2_hi = rotr64_hi(xl, xh,
9); //
41
35894 var r = c0_hi ^ c1_hi ^ c2_hi;
35900 function s1_512_lo(xh, xl) {
35901 var c0_lo = rotr64_lo(xh, xl,
14);
35902 var c1_lo = rotr64_lo(xh, xl,
18);
35903 var c2_lo = rotr64_lo(xl, xh,
9); //
41
35905 var r = c0_lo ^ c1_lo ^ c2_lo;
35911 function g0_512_hi(xh, xl) {
35912 var c0_hi = rotr64_hi(xh, xl,
1);
35913 var c1_hi = rotr64_hi(xh, xl,
8);
35914 var c2_hi = shr64_hi(xh, xl,
7);
35916 var r = c0_hi ^ c1_hi ^ c2_hi;
35922 function g0_512_lo(xh, xl) {
35923 var c0_lo = rotr64_lo(xh, xl,
1);
35924 var c1_lo = rotr64_lo(xh, xl,
8);
35925 var c2_lo = shr64_lo(xh, xl,
7);
35927 var r = c0_lo ^ c1_lo ^ c2_lo;
35933 function g1_512_hi(xh, xl) {
35934 var c0_hi = rotr64_hi(xh, xl,
19);
35935 var c1_hi = rotr64_hi(xl, xh,
29); //
61
35936 var c2_hi = shr64_hi(xh, xl,
6);
35938 var r = c0_hi ^ c1_hi ^ c2_hi;
35944 function g1_512_lo(xh, xl) {
35945 var c0_lo = rotr64_lo(xh, xl,
19);
35946 var c1_lo = rotr64_lo(xl, xh,
29); //
61
35947 var c2_lo = shr64_lo(xh, xl,
6);
35949 var r = c0_lo ^ c1_lo ^ c2_lo;
35955 },{
"../hash":
57}],
62:[function(require,module,exports){
35956 var utils = exports;
35957 var inherits = require('inherits');
35959 function toArray(msg, enc) {
35960 if (Array.isArray(msg))
35961 return msg.slice();
35965 if (typeof msg === 'string') {
35967 for (var i =
0; i < msg.length; i++) {
35968 var c = msg.charCodeAt(i);
35976 } else if (enc === 'hex') {
35977 msg = msg.replace(/[^a-z0-
9]+/ig, '');
35978 if (msg.length %
2 !==
0)
35980 for (var i =
0; i < msg.length; i +=
2)
35981 res.push(parseInt(msg[i] + msg[i +
1],
16));
35984 for (var i =
0; i < msg.length; i++)
35985 res[i] = msg[i] |
0;
35989 utils.toArray = toArray;
35991 function toHex(msg) {
35993 for (var i =
0; i < msg.length; i++)
35994 res += zero2(msg[i].toString(
16));
35997 utils.toHex = toHex;
35999 function htonl(w) {
36000 var res = (w
>>> 24) |
36001 ((w
>>> 8) &
0xff00) |
36002 ((w <<
8) &
0xff0000) |
36003 ((w &
0xff) <<
24);
36006 utils.htonl = htonl;
36008 function toHex32(msg, endian) {
36010 for (var i =
0; i < msg.length; i++) {
36012 if (endian === 'little')
36014 res += zero8(w.toString(
16));
36018 utils.toHex32 = toHex32;
36020 function zero2(word) {
36021 if (word.length ===
1)
36026 utils.zero2 = zero2;
36028 function zero8(word) {
36029 if (word.length ===
7)
36031 else if (word.length ===
6)
36032 return '
00' + word;
36033 else if (word.length ===
5)
36034 return '
000' + word;
36035 else if (word.length ===
4)
36036 return '
0000' + word;
36037 else if (word.length ===
3)
36038 return '
00000' + word;
36039 else if (word.length ===
2)
36040 return '
000000' + word;
36041 else if (word.length ===
1)
36042 return '
0000000' + word;
36046 utils.zero8 = zero8;
36048 function join32(msg, start, end, endian) {
36049 var len = end - start;
36050 assert(len %
4 ===
0);
36051 var res = new Array(len /
4);
36052 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
36054 if (endian === 'big')
36055 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
36057 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
36062 utils.join32 = join32;
36064 function split32(msg, endian) {
36065 var res = new Array(msg.length *
4);
36066 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
36068 if (endian === 'big') {
36070 res[k +
1] = (m
>>> 16) &
0xff;
36071 res[k +
2] = (m
>>> 8) &
0xff;
36072 res[k +
3] = m &
0xff;
36074 res[k +
3] = m
>>> 24;
36075 res[k +
2] = (m
>>> 16) &
0xff;
36076 res[k +
1] = (m
>>> 8) &
0xff;
36082 utils.split32 = split32;
36084 function rotr32(w, b) {
36085 return (w
>>> b) | (w << (
32 - b));
36087 utils.rotr32 = rotr32;
36089 function rotl32(w, b) {
36090 return (w << b) | (w
>>> (
32 - b));
36092 utils.rotl32 = rotl32;
36094 function sum32(a, b) {
36095 return (a + b)
>>> 0;
36097 utils.sum32 = sum32;
36099 function sum32_3(a, b, c) {
36100 return (a + b + c)
>>> 0;
36102 utils.sum32_3 = sum32_3;
36104 function sum32_4(a, b, c, d) {
36105 return (a + b + c + d)
>>> 0;
36107 utils.sum32_4 = sum32_4;
36109 function sum32_5(a, b, c, d, e) {
36110 return (a + b + c + d + e)
>>> 0;
36112 utils.sum32_5 = sum32_5;
36114 function assert(cond, msg) {
36116 throw new Error(msg || 'Assertion failed');
36118 utils.assert = assert;
36120 utils.inherits = inherits;
36122 function sum64(buf, pos, ah, al) {
36124 var bl = buf[pos +
1];
36126 var lo = (al + bl)
>>> 0;
36127 var hi = (lo < al ?
1 :
0) + ah + bh;
36128 buf[pos] = hi
>>> 0;
36131 exports.sum64 = sum64;
36133 function sum64_hi(ah, al, bh, bl) {
36134 var lo = (al + bl)
>>> 0;
36135 var hi = (lo < al ?
1 :
0) + ah + bh;
36138 exports.sum64_hi = sum64_hi;
36140 function sum64_lo(ah, al, bh, bl) {
36144 exports.sum64_lo = sum64_lo;
36146 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
36149 lo = (lo + bl)
>>> 0;
36150 carry += lo < al ?
1 :
0;
36151 lo = (lo + cl)
>>> 0;
36152 carry += lo < cl ?
1 :
0;
36153 lo = (lo + dl)
>>> 0;
36154 carry += lo < dl ?
1 :
0;
36156 var hi = ah + bh + ch + dh + carry;
36159 exports.sum64_4_hi = sum64_4_hi;
36161 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
36162 var lo = al + bl + cl + dl;
36165 exports.sum64_4_lo = sum64_4_lo;
36167 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
36170 lo = (lo + bl)
>>> 0;
36171 carry += lo < al ?
1 :
0;
36172 lo = (lo + cl)
>>> 0;
36173 carry += lo < cl ?
1 :
0;
36174 lo = (lo + dl)
>>> 0;
36175 carry += lo < dl ?
1 :
0;
36176 lo = (lo + el)
>>> 0;
36177 carry += lo < el ?
1 :
0;
36179 var hi = ah + bh + ch + dh + eh + carry;
36182 exports.sum64_5_hi = sum64_5_hi;
36184 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
36185 var lo = al + bl + cl + dl + el;
36189 exports.sum64_5_lo = sum64_5_lo;
36191 function rotr64_hi(ah, al, num) {
36192 var r = (al << (
32 - num)) | (ah
>>> num);
36195 exports.rotr64_hi = rotr64_hi;
36197 function rotr64_lo(ah, al, num) {
36198 var r = (ah << (
32 - num)) | (al
>>> num);
36201 exports.rotr64_lo = rotr64_lo;
36203 function shr64_hi(ah, al, num) {
36206 exports.shr64_hi = shr64_hi;
36208 function shr64_lo(ah, al, num) {
36209 var r = (ah << (
32 - num)) | (al
>>> num);
36212 exports.shr64_lo = shr64_lo;
36214 },{
"inherits":
63}],
63:[function(require,module,exports){
36215 arguments[
4][
9][
0].apply(exports,arguments)
36216 },{
"dup":
9}],
64:[function(require,module,exports){
36218 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
36219 * @param {String} str the string input value
36220 * @return {Boolean} a boolean if it is or is not hex prefixed
36221 * @throws if the str input is not a string
36223 module.exports = function isHexPrefixed(str) {
36224 if (typeof str !== 'string') {
36225 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
36228 return str.slice(
0,
2) === '
0x';
36231 },{}],
65:[function(require,module,exports){
36233 module.exports = require('./lib/api')(require('./lib/keccak'))
36235 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
36237 var createKeccak = require('./keccak')
36238 var createShake = require('./shake')
36240 module.exports = function (KeccakState) {
36241 var Keccak = createKeccak(KeccakState)
36242 var Shake = createShake(KeccakState)
36244 return function (algorithm, options) {
36245 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
36247 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
36248 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
36249 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
36250 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
36252 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
36253 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
36254 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
36255 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
36257 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
36258 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
36260 default: throw new Error('Invald algorithm: ' + algorithm)
36265 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
36266 (function (Buffer){
36268 var Transform = require('stream').Transform
36269 var inherits = require('inherits')
36271 module.exports = function (KeccakState) {
36272 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
36273 Transform.call(this, options)
36276 this._capacity = capacity
36277 this._delimitedSuffix = delimitedSuffix
36278 this._hashBitLength = hashBitLength
36279 this._options = options
36281 this._state = new KeccakState()
36282 this._state.initialize(rate, capacity)
36283 this._finalized = false
36286 inherits(Keccak, Transform)
36288 Keccak.prototype._transform = function (chunk, encoding, callback) {
36291 this.update(chunk, encoding)
36299 Keccak.prototype._flush = function (callback) {
36302 this.push(this.digest())
36310 Keccak.prototype.update = function (data, encoding) {
36311 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
36312 if (this._finalized) throw new Error('Digest already called')
36313 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
36315 this._state.absorb(data)
36320 Keccak.prototype.digest = function (encoding) {
36321 if (this._finalized) throw new Error('Digest already called')
36322 this._finalized = true
36324 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
36325 var digest = this._state.squeeze(this._hashBitLength /
8)
36326 if (encoding !== undefined) digest = digest.toString(encoding)
36333 // remove result from memory
36334 Keccak.prototype._resetState = function () {
36335 this._state.initialize(this._rate, this._capacity)
36339 // because sometimes we need hash right now and little later
36340 Keccak.prototype._clone = function () {
36341 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
36342 this._state.copy(clone._state)
36343 clone._finalized = this._finalized
36351 }).call(this,require(
"buffer").Buffer)
36352 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
36353 (function (Buffer){
36355 var Transform = require('stream').Transform
36356 var inherits = require('inherits')
36358 module.exports = function (KeccakState) {
36359 function Shake (rate, capacity, delimitedSuffix, options) {
36360 Transform.call(this, options)
36363 this._capacity = capacity
36364 this._delimitedSuffix = delimitedSuffix
36365 this._options = options
36367 this._state = new KeccakState()
36368 this._state.initialize(rate, capacity)
36369 this._finalized = false
36372 inherits(Shake, Transform)
36374 Shake.prototype._transform = function (chunk, encoding, callback) {
36377 this.update(chunk, encoding)
36385 Shake.prototype._flush = function () {}
36387 Shake.prototype._read = function (size) {
36388 this.push(this.squeeze(size))
36391 Shake.prototype.update = function (data, encoding) {
36392 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
36393 if (this._finalized) throw new Error('Squeeze already called')
36394 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
36396 this._state.absorb(data)
36401 Shake.prototype.squeeze = function (dataByteLength, encoding) {
36402 if (!this._finalized) {
36403 this._finalized = true
36404 this._state.absorbLastFewBits(this._delimitedSuffix)
36407 var data = this._state.squeeze(dataByteLength)
36408 if (encoding !== undefined) data = data.toString(encoding)
36413 Shake.prototype._resetState = function () {
36414 this._state.initialize(this._rate, this._capacity)
36418 Shake.prototype._clone = function () {
36419 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
36420 this._state.copy(clone._state)
36421 clone._finalized = this._finalized
36429 }).call(this,require(
"buffer").Buffer)
36430 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
36432 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]
36434 exports.p1600 = function (s) {
36435 for (var round =
0; round <
24; ++round) {
36437 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
36438 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
36439 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
36440 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
36441 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
36442 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
36443 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
36444 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
36445 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
36446 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
36448 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
36449 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
36450 var t1slo0 = s[
0] ^ lo
36451 var t1shi0 = s[
1] ^ hi
36452 var t1slo5 = s[
10] ^ lo
36453 var t1shi5 = s[
11] ^ hi
36454 var t1slo10 = s[
20] ^ lo
36455 var t1shi10 = s[
21] ^ hi
36456 var t1slo15 = s[
30] ^ lo
36457 var t1shi15 = s[
31] ^ hi
36458 var t1slo20 = s[
40] ^ lo
36459 var t1shi20 = s[
41] ^ hi
36460 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
36461 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
36462 var t1slo1 = s[
2] ^ lo
36463 var t1shi1 = s[
3] ^ hi
36464 var t1slo6 = s[
12] ^ lo
36465 var t1shi6 = s[
13] ^ hi
36466 var t1slo11 = s[
22] ^ lo
36467 var t1shi11 = s[
23] ^ hi
36468 var t1slo16 = s[
32] ^ lo
36469 var t1shi16 = s[
33] ^ hi
36470 var t1slo21 = s[
42] ^ lo
36471 var t1shi21 = s[
43] ^ hi
36472 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
36473 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
36474 var t1slo2 = s[
4] ^ lo
36475 var t1shi2 = s[
5] ^ hi
36476 var t1slo7 = s[
14] ^ lo
36477 var t1shi7 = s[
15] ^ hi
36478 var t1slo12 = s[
24] ^ lo
36479 var t1shi12 = s[
25] ^ hi
36480 var t1slo17 = s[
34] ^ lo
36481 var t1shi17 = s[
35] ^ hi
36482 var t1slo22 = s[
44] ^ lo
36483 var t1shi22 = s[
45] ^ hi
36484 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
36485 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
36486 var t1slo3 = s[
6] ^ lo
36487 var t1shi3 = s[
7] ^ hi
36488 var t1slo8 = s[
16] ^ lo
36489 var t1shi8 = s[
17] ^ hi
36490 var t1slo13 = s[
26] ^ lo
36491 var t1shi13 = s[
27] ^ hi
36492 var t1slo18 = s[
36] ^ lo
36493 var t1shi18 = s[
37] ^ hi
36494 var t1slo23 = s[
46] ^ lo
36495 var t1shi23 = s[
47] ^ hi
36496 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
36497 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
36498 var t1slo4 = s[
8] ^ lo
36499 var t1shi4 = s[
9] ^ hi
36500 var t1slo9 = s[
18] ^ lo
36501 var t1shi9 = s[
19] ^ hi
36502 var t1slo14 = s[
28] ^ lo
36503 var t1shi14 = s[
29] ^ hi
36504 var t1slo19 = s[
38] ^ lo
36505 var t1shi19 = s[
39] ^ hi
36506 var t1slo24 = s[
48] ^ lo
36507 var t1shi24 = s[
49] ^ hi
36510 var t2slo0 = t1slo0
36511 var t2shi0 = t1shi0
36512 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
36513 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
36514 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
36515 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
36516 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
36517 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
36518 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
36519 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
36520 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
36521 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
36522 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
36523 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
36524 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
36525 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
36526 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
36527 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
36528 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
36529 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
36530 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
36531 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
36532 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
36533 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
36534 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
36535 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
36536 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
36537 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
36538 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
36539 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
36540 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
36541 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
36542 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
36543 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
36544 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
36545 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
36546 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
36547 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
36548 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
36549 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
36550 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
36551 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
36552 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
36553 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
36554 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
36555 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
36556 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
36557 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
36558 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
36559 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
36562 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
36563 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
36564 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
36565 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
36566 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
36567 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
36568 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
36569 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
36570 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
36571 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
36572 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
36573 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
36574 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
36575 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
36576 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
36577 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
36578 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
36579 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
36580 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
36581 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
36582 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
36583 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
36584 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
36585 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
36586 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
36587 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
36588 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
36589 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
36590 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
36591 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
36592 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
36593 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
36594 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
36595 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
36596 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
36597 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
36598 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
36599 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
36600 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
36601 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
36602 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
36603 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
36604 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
36605 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
36606 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
36607 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
36608 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
36609 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
36610 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
36611 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
36614 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
36615 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
36619 },{}],
70:[function(require,module,exports){
36620 (function (Buffer){
36622 var keccakState = require('./keccak-state-unroll')
36624 function Keccak () {
36625 // much faster than `new Array(
50)`
36634 this.blockSize = null
36636 this.squeezing = false
36639 Keccak.prototype.initialize = function (rate, capacity) {
36640 for (var i =
0; i <
50; ++i) this.state[i] =
0
36641 this.blockSize = rate /
8
36643 this.squeezing = false
36646 Keccak.prototype.absorb = function (data) {
36647 for (var i =
0; i < data.length; ++i) {
36648 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
36650 if (this.count === this.blockSize) {
36651 keccakState.p1600(this.state)
36657 Keccak.prototype.absorbLastFewBits = function (bits) {
36658 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
36659 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
36660 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
36661 keccakState.p1600(this.state)
36663 this.squeezing = true
36666 Keccak.prototype.squeeze = function (length) {
36667 if (!this.squeezing) this.absorbLastFewBits(
0x01)
36669 var output = Buffer.allocUnsafe(length)
36670 for (var i =
0; i < length; ++i) {
36671 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
36673 if (this.count === this.blockSize) {
36674 keccakState.p1600(this.state)
36682 Keccak.prototype.copy = function (dest) {
36683 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
36684 dest.blockSize = this.blockSize
36685 dest.count = this.count
36686 dest.squeezing = this.squeezing
36689 module.exports = Keccak
36691 }).call(this,require("buffer").Buffer)
36692 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
36693 (function (Buffer){
36696 code.google.com/p/crypto-js
36697 (c)
2009-
2013 by Jeff Mott. All rights reserved.
36698 code.google.com/p/crypto-js/wiki/License
36701 (c)
2012 by Cédric Mesnil. All rights reserved.
36703 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
36705 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
36706 - 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.
36708 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.
36713 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
36714 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
36715 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
36716 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
36717 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
36721 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
36722 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
36723 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
36724 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
36725 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
36729 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
36730 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
36731 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
36732 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
36733 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
36737 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
36738 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
36739 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
36740 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
36741 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
36744 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
36745 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
36747 function bytesToWords (bytes) {
36749 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
36750 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
36755 function wordsToBytes (words) {
36757 for (var b =
0; b < words.length *
32; b +=
8) {
36758 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
36763 function processBlock (H, M, offset) {
36765 for (var i =
0; i <
16; i++) {
36766 var offset_i = offset + i
36767 var M_offset_i = M[offset_i]
36771 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
36772 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
36776 // Working variables
36777 var al, bl, cl, dl, el
36778 var ar, br, cr, dr, er
36788 for (i =
0; i <
80; i +=
1) {
36789 t = (al + M[offset + zl[i]]) |
0
36791 t += f1(bl, cl, dl) + hl[
0]
36792 } else if (i <
32) {
36793 t += f2(bl, cl, dl) + hl[
1]
36794 } else if (i <
48) {
36795 t += f3(bl, cl, dl) + hl[
2]
36796 } else if (i <
64) {
36797 t += f4(bl, cl, dl) + hl[
3]
36798 } else {// if (i
<80) {
36799 t += f5(bl, cl, dl) + hl[
4]
36810 t = (ar + M[offset + zr[i]]) |
0
36812 t += f5(br, cr, dr) + hr[
0]
36813 } else if (i <
32) {
36814 t += f4(br, cr, dr) + hr[
1]
36815 } else if (i <
48) {
36816 t += f3(br, cr, dr) + hr[
2]
36817 } else if (i <
64) {
36818 t += f2(br, cr, dr) + hr[
3]
36819 } else {// if (i
<80) {
36820 t += f1(br, cr, dr) + hr[
4]
36833 // intermediate hash value
36834 t = (H[
1] + cl + dr) |
0
36835 H[
1] = (H[
2] + dl + er) |
0
36836 H[
2] = (H[
3] + el + ar) |
0
36837 H[
3] = (H[
4] + al + br) |
0
36838 H[
4] = (H[
0] + bl + cr) |
0
36842 function f1 (x, y, z) {
36843 return ((x) ^ (y) ^ (z))
36846 function f2 (x, y, z) {
36847 return (((x) & (y)) | ((~x) & (z)))
36850 function f3 (x, y, z) {
36851 return (((x) | (~(y))) ^ (z))
36854 function f4 (x, y, z) {
36855 return (((x) & (z)) | ((y) & (~(z))))
36858 function f5 (x, y, z) {
36859 return ((x) ^ ((y) | (~(z))))
36862 function rotl (x, n) {
36863 return (x << n) | (x
>>> (
32 - n))
36866 function ripemd160 (message) {
36867 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
36869 if (typeof message === 'string') {
36870 message = new Buffer(message, 'utf8')
36873 var m = bytesToWords(message)
36875 var nBitsLeft = message.length *
8
36876 var nBitsTotal = message.length *
8
36879 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
36880 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
36881 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
36882 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
36885 for (var i =
0; i < m.length; i +=
16) {
36886 processBlock(H, m, i)
36890 for (i =
0; i <
5; i++) {
36895 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
36896 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
36899 var digestbytes = wordsToBytes(H)
36900 return new Buffer(digestbytes)
36903 module.exports = ripemd160
36905 }).call(this,require(
"buffer").Buffer)
36906 },{
"buffer":
5}],
72:[function(require,module,exports){
36907 (function (Buffer){
36908 const assert = require('assert')
36910 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
36911 * This function takes in a data, convert it to buffer if not, and a length for recursion
36913 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
36914 * @returns {Buffer} - returns buffer of encoded data
36916 exports.encode = function (input) {
36917 if (input instanceof Array) {
36919 for (var i =
0; i < input.length; i++) {
36920 output.push(exports.encode(input[i]))
36922 var buf = Buffer.concat(output)
36923 return Buffer.concat([encodeLength(buf.length,
192), buf])
36925 input = toBuffer(input)
36926 if (input.length ===
1 && input[
0] <
128) {
36929 return Buffer.concat([encodeLength(input.length,
128), input])
36934 function safeParseInt (v, base) {
36935 if (v.slice(
0,
2) === '
00') {
36936 throw (new Error('invalid RLP: extra zeros'))
36939 return parseInt(v, base)
36942 function encodeLength (len, offset) {
36944 return new Buffer([len + offset])
36946 var hexLength = intToHex(len)
36947 var lLength = hexLength.length /
2
36948 var firstByte = intToHex(offset +
55 + lLength)
36949 return new Buffer(firstByte + hexLength, 'hex')
36954 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
36955 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
36956 * @returns {Array} - returns decode Array of Buffers containg the original message
36958 exports.decode = function (input, stream) {
36959 if (!input || input.length ===
0) {
36960 return new Buffer([])
36963 input = toBuffer(input)
36964 var decoded = _decode(input)
36970 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
36971 return decoded.data
36974 exports.getLength = function (input) {
36975 if (!input || input.length ===
0) {
36976 return new Buffer([])
36979 input = toBuffer(input)
36980 var firstByte = input[
0]
36981 if (firstByte <=
0x7f) {
36982 return input.length
36983 } else if (firstByte <=
0xb7) {
36984 return firstByte -
0x7f
36985 } else if (firstByte <=
0xbf) {
36986 return firstByte -
0xb6
36987 } else if (firstByte <=
0xf7) {
36988 // a list between
0-
55 bytes long
36989 return firstByte -
0xbf
36991 // a list over
55 bytes long
36992 var llength = firstByte -
0xf6
36993 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
36994 return llength + length
36998 function _decode (input) {
36999 var length, llength, data, innerRemainder, d
37001 var firstByte = input[
0]
37003 if (firstByte <=
0x7f) {
37004 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
37006 data: input.slice(
0,
1),
37007 remainder: input.slice(
1)
37009 } else if (firstByte <=
0xb7) {
37010 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
37011 // The range of the first byte is [
0x80,
0xb7]
37012 length = firstByte -
0x7f
37014 // set
0x80 null to
0
37015 if (firstByte ===
0x80) {
37016 data = new Buffer([])
37018 data = input.slice(
1, length)
37021 if (length ===
2 && data[
0] <
0x80) {
37022 throw new Error('invalid rlp encoding: byte must be less
0x80')
37027 remainder: input.slice(length)
37029 } else if (firstByte <=
0xbf) {
37030 llength = firstByte -
0xb6
37031 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
37032 data = input.slice(llength, length + llength)
37033 if (data.length < length) {
37034 throw (new Error('invalid RLP'))
37039 remainder: input.slice(length + llength)
37041 } else if (firstByte <=
0xf7) {
37042 // a list between
0-
55 bytes long
37043 length = firstByte -
0xbf
37044 innerRemainder = input.slice(
1, length)
37045 while (innerRemainder.length) {
37046 d = _decode(innerRemainder)
37047 decoded.push(d.data)
37048 innerRemainder = d.remainder
37053 remainder: input.slice(length)
37056 // a list over
55 bytes long
37057 llength = firstByte -
0xf6
37058 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
37059 var totalLength = llength + length
37060 if (totalLength
> input.length) {
37061 throw new Error('invalid rlp: total length is larger than the data')
37064 innerRemainder = input.slice(llength, totalLength)
37065 if (innerRemainder.length ===
0) {
37066 throw new Error('invalid rlp, List has a invalid length')
37069 while (innerRemainder.length) {
37070 d = _decode(innerRemainder)
37071 decoded.push(d.data)
37072 innerRemainder = d.remainder
37076 remainder: input.slice(totalLength)
37081 function isHexPrefixed (str) {
37082 return str.slice(
0,
2) === '
0x'
37085 // Removes
0x from a given String
37086 function stripHexPrefix (str) {
37087 if (typeof str !== 'string') {
37090 return isHexPrefixed(str) ? str.slice(
2) : str
37093 function intToHex (i) {
37094 var hex = i.toString(
16)
37095 if (hex.length %
2) {
37102 function padToEven (a) {
37103 if (a.length %
2) a = '
0' + a
37107 function intToBuffer (i) {
37108 var hex = intToHex(i)
37109 return new Buffer(hex, 'hex')
37112 function toBuffer (v) {
37113 if (!Buffer.isBuffer(v)) {
37114 if (typeof v === 'string') {
37115 if (isHexPrefixed(v)) {
37116 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
37120 } else if (typeof v === 'number') {
37126 } else if (v === null || v === undefined) {
37128 } else if (v.toArray) {
37129 // converts a BN to a Buffer
37130 v = new Buffer(v.toArray())
37132 throw new Error('invalid type')
37138 }).call(this,require("buffer").Buffer)
37139 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
37141 module.exports = require('./lib')(require('./lib/elliptic'))
37143 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
37144 (function (Buffer){
37146 var toString = Object.prototype.toString
37149 exports.isArray = function (value, message) {
37150 if (!Array.isArray(value)) throw TypeError(message)
37153 exports.isBoolean = function (value, message) {
37154 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
37157 exports.isBuffer = function (value, message) {
37158 if (!Buffer.isBuffer(value)) throw TypeError(message)
37161 exports.isFunction = function (value, message) {
37162 if (toString.call(value) !== '[object Function]') throw TypeError(message)
37165 exports.isNumber = function (value, message) {
37166 if (toString.call(value) !== '[object Number]') throw TypeError(message)
37169 exports.isObject = function (value, message) {
37170 if (toString.call(value) !== '[object Object]') throw TypeError(message)
37174 exports.isBufferLength = function (buffer, length, message) {
37175 if (buffer.length !== length) throw RangeError(message)
37178 exports.isBufferLength2 = function (buffer, length1, length2, message) {
37179 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
37182 exports.isLengthGTZero = function (value, message) {
37183 if (value.length ===
0) throw RangeError(message)
37186 exports.isNumberInInterval = function (number, x, y, message) {
37187 if (number <= x || number
>= y) throw RangeError(message)
37190 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
37191 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
37192 (function (Buffer){
37194 var bip66 = require('bip66')
37196 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
37198 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
37200 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37201 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37203 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
37204 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37205 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37206 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
37207 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
37208 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
37209 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37210 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
37211 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
37213 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37214 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37218 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
37220 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
37222 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37223 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37225 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
37226 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37227 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37228 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
37229 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
37230 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
37231 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
37232 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
37233 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37234 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
37235 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
37237 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37238 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37239 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37240 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37244 var ZERO_BUFFER_32 = new Buffer([
37245 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37246 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
37249 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
37250 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
37251 privateKey.copy(result, compressed ?
8 :
9)
37252 publicKey.copy(result, compressed ?
181 :
214)
37256 exports.privateKeyImport = function (privateKey) {
37257 var length = privateKey.length
37261 if (length < index +
1 || privateKey[index] !==
0x30) return
37264 // sequence length constructor
37265 if (length < index +
1 || !(privateKey[index] &
0x80)) return
37267 var lenb = privateKey[index] &
0x7f
37269 if (lenb <
1 || lenb
> 2) return
37270 if (length < index + lenb) return
37273 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
37275 if (length < index + len) return
37277 // sequence element
0: version number (=
1)
37278 if (length < index +
3 ||
37279 privateKey[index] !==
0x02 ||
37280 privateKey[index +
1] !==
0x01 ||
37281 privateKey[index +
2] !==
0x01) {
37286 // sequence element
1: octet string, up to
32 bytes
37287 if (length < index +
2 ||
37288 privateKey[index] !==
0x04 ||
37289 privateKey[index +
1]
> 0x20 ||
37290 length < index +
2 + privateKey[index +
1]) {
37294 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
37297 exports.signatureExport = function (sigObj) {
37298 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
37299 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
37301 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
37302 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
37304 return bip66.encode(r.slice(posR), s.slice(posS))
37307 exports.signatureImport = function (sig) {
37308 var r = new Buffer(ZERO_BUFFER_32)
37309 var s = new Buffer(ZERO_BUFFER_32)
37312 var sigObj = bip66.decode(sig)
37313 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
37314 if (sigObj.r.length
> 32) throw new Error('R length is too long')
37315 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
37316 if (sigObj.s.length
> 32) throw new Error('S length is too long')
37321 sigObj.r.copy(r,
32 - sigObj.r.length)
37322 sigObj.s.copy(s,
32 - sigObj.s.length)
37324 return { r: r, s: s }
37327 exports.signatureImportLax = function (sig) {
37328 var r = new Buffer(ZERO_BUFFER_32)
37329 var s = new Buffer(ZERO_BUFFER_32)
37331 var length = sig.length
37334 // sequence tag byte
37335 if (sig[index++] !==
0x30) return
37337 // sequence length byte
37338 var lenbyte = sig[index++]
37339 if (lenbyte &
0x80) {
37340 index += lenbyte -
0x80
37341 if (index
> length) return
37344 // sequence tag byte for r
37345 if (sig[index++] !==
0x02) return
37348 var rlen = sig[index++]
37350 lenbyte = rlen -
0x80
37351 if (index + lenbyte
> length) return
37352 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
37353 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
37355 if (rlen
> length - index) return
37359 // sequence tag byte for s
37360 if (sig[index++] !==
0x02) return
37363 var slen = sig[index++]
37365 lenbyte = slen -
0x80
37366 if (index + lenbyte
> length) return
37367 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
37368 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
37370 if (slen
> length - index) return
37374 // ignore leading zeros in r
37375 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
37377 if (rlen
> 32) return
37378 var rvalue = sig.slice(rindex, rindex + rlen)
37379 rvalue.copy(r,
32 - rvalue.length)
37381 // ignore leading zeros in s
37382 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
37384 if (slen
> 32) return
37385 var svalue = sig.slice(sindex, sindex + slen)
37386 svalue.copy(s,
32 - svalue.length)
37388 return { r: r, s: s }
37391 }).call(this,require(
"buffer").Buffer)
37392 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
37393 (function (Buffer){
37395 var createHash = require('create-hash')
37396 var BN = require('bn.js')
37397 var EC = require('elliptic').ec
37399 var messages = require('../messages.json')
37401 var ec = new EC('secp256k1')
37402 var ecparams = ec.curve
37404 function loadCompressedPublicKey (first, xBuffer) {
37405 var x = new BN(xBuffer)
37408 if (x.cmp(ecparams.p)
>=
0) return null
37409 x = x.toRed(ecparams.red)
37411 // compute corresponding Y
37412 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
37413 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
37415 return ec.keyPair({ pub: { x: x, y: y } })
37418 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
37419 var x = new BN(xBuffer)
37420 var y = new BN(yBuffer)
37423 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
37425 x = x.toRed(ecparams.red)
37426 y = y.toRed(ecparams.red)
37429 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
37432 var x3 = x.redSqr().redIMul(x)
37433 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
37435 return ec.keyPair({ pub: { x: x, y: y } })
37438 function loadPublicKey (publicKey) {
37439 var first = publicKey[
0]
37443 if (publicKey.length !==
33) return null
37444 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
37448 if (publicKey.length !==
65) return null
37449 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
37455 exports.privateKeyVerify = function (privateKey) {
37456 var bn = new BN(privateKey)
37457 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
37460 exports.privateKeyExport = function (privateKey, compressed) {
37461 var d = new BN(privateKey)
37462 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
37464 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
37467 exports.privateKeyTweakAdd = function (privateKey, tweak) {
37468 var bn = new BN(tweak)
37469 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
37471 bn.iadd(new BN(privateKey))
37472 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
37473 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
37475 return bn.toArrayLike(Buffer, 'be',
32)
37478 exports.privateKeyTweakMul = function (privateKey, tweak) {
37479 var bn = new BN(tweak)
37480 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
37482 bn.imul(new BN(privateKey))
37483 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
37485 return bn.toArrayLike(Buffer, 'be',
32)
37488 exports.publicKeyCreate = function (privateKey, compressed) {
37489 var d = new BN(privateKey)
37490 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
37492 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
37495 exports.publicKeyConvert = function (publicKey, compressed) {
37496 var pair = loadPublicKey(publicKey)
37497 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37499 return new Buffer(pair.getPublic(compressed, true))
37502 exports.publicKeyVerify = function (publicKey) {
37503 return loadPublicKey(publicKey) !== null
37506 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
37507 var pair = loadPublicKey(publicKey)
37508 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37510 tweak = new BN(tweak)
37511 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
37513 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
37516 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
37517 var pair = loadPublicKey(publicKey)
37518 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37520 tweak = new BN(tweak)
37521 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
37523 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
37526 exports.publicKeyCombine = function (publicKeys, compressed) {
37527 var pairs = new Array(publicKeys.length)
37528 for (var i =
0; i < publicKeys.length; ++i) {
37529 pairs[i] = loadPublicKey(publicKeys[i])
37530 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37533 var point = pairs[
0].pub
37534 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
37535 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
37537 return new Buffer(point.encode(true, compressed))
37540 exports.signatureNormalize = function (signature) {
37541 var r = new BN(signature.slice(
0,
32))
37542 var s = new BN(signature.slice(
32,
64))
37543 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37545 var result = new Buffer(signature)
37546 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
37551 exports.signatureExport = function (signature) {
37552 var r = signature.slice(
0,
32)
37553 var s = signature.slice(
32,
64)
37554 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37556 return { r: r, s: s }
37559 exports.signatureImport = function (sigObj) {
37560 var r = new BN(sigObj.r)
37561 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
37563 var s = new BN(sigObj.s)
37564 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
37566 return Buffer.concat([
37567 r.toArrayLike(Buffer, 'be',
32),
37568 s.toArrayLike(Buffer, 'be',
32)
37572 exports.sign = function (message, privateKey, noncefn, data) {
37573 if (typeof noncefn === 'function') {
37574 var getNonce = noncefn
37575 noncefn = function (counter) {
37576 var nonce = getNonce(message, privateKey, null, data, counter)
37577 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
37579 return new BN(nonce)
37583 var d = new BN(privateKey)
37584 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
37586 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
37588 signature: Buffer.concat([
37589 result.r.toArrayLike(Buffer, 'be',
32),
37590 result.s.toArrayLike(Buffer, 'be',
32)
37592 recovery: result.recoveryParam
37596 exports.verify = function (message, signature, publicKey) {
37597 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
37599 var sigr = new BN(sigObj.r)
37600 var sigs = new BN(sigObj.s)
37601 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37602 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
37604 var pair = loadPublicKey(publicKey)
37605 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37607 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
37610 exports.recover = function (message, signature, recovery, compressed) {
37611 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
37613 var sigr = new BN(sigObj.r)
37614 var sigs = new BN(sigObj.s)
37615 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37618 if (sigr.isZero() || sigs.isZero()) throw new Error()
37620 var point = ec.recoverPubKey(message, sigObj, recovery)
37621 return new Buffer(point.encode(true, compressed))
37623 throw new Error(messages.ECDSA_RECOVER_FAIL)
37627 exports.ecdh = function (publicKey, privateKey) {
37628 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
37629 return createHash('sha256').update(shared).digest()
37632 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
37633 var pair = loadPublicKey(publicKey)
37634 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37636 var scalar = new BN(privateKey)
37637 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
37639 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
37642 }).call(this,require("buffer").Buffer)
37643 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
37645 var assert = require('./assert')
37646 var der = require('./der')
37647 var messages = require('./messages.json')
37649 function initCompressedValue (value, defaultValue) {
37650 if (value === undefined) return defaultValue
37652 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
37656 module.exports = function (secp256k1) {
37658 privateKeyVerify: function (privateKey) {
37659 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37660 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
37663 privateKeyExport: function (privateKey, compressed) {
37664 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37665 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37667 compressed = initCompressedValue(compressed, true)
37668 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
37670 return der.privateKeyExport(privateKey, publicKey, compressed)
37673 privateKeyImport: function (privateKey) {
37674 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37676 privateKey = der.privateKeyImport(privateKey)
37677 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
37679 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
37682 privateKeyTweakAdd: function (privateKey, tweak) {
37683 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37684 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37686 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37687 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37689 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
37692 privateKeyTweakMul: function (privateKey, tweak) {
37693 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37694 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37696 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37697 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37699 return secp256k1.privateKeyTweakMul(privateKey, tweak)
37702 publicKeyCreate: function (privateKey, compressed) {
37703 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37704 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37706 compressed = initCompressedValue(compressed, true)
37708 return secp256k1.publicKeyCreate(privateKey, compressed)
37711 publicKeyConvert: function (publicKey, compressed) {
37712 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37713 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37715 compressed = initCompressedValue(compressed, true)
37717 return secp256k1.publicKeyConvert(publicKey, compressed)
37720 publicKeyVerify: function (publicKey) {
37721 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37722 return secp256k1.publicKeyVerify(publicKey)
37725 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
37726 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37727 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37729 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37730 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37732 compressed = initCompressedValue(compressed, true)
37734 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
37737 publicKeyTweakMul: function (publicKey, tweak, compressed) {
37738 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37739 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37741 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37742 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37744 compressed = initCompressedValue(compressed, true)
37746 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
37749 publicKeyCombine: function (publicKeys, compressed) {
37750 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
37751 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
37752 for (var i =
0; i < publicKeys.length; ++i) {
37753 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
37754 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37757 compressed = initCompressedValue(compressed, true)
37759 return secp256k1.publicKeyCombine(publicKeys, compressed)
37762 signatureNormalize: function (signature) {
37763 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37764 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37766 return secp256k1.signatureNormalize(signature)
37769 signatureExport: function (signature) {
37770 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37771 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37773 var sigObj = secp256k1.signatureExport(signature)
37774 return der.signatureExport(sigObj)
37777 signatureImport: function (sig) {
37778 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37779 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37781 var sigObj = der.signatureImport(sig)
37782 if (sigObj) return secp256k1.signatureImport(sigObj)
37784 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
37787 signatureImportLax: function (sig) {
37788 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37789 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37791 var sigObj = der.signatureImportLax(sig)
37792 if (sigObj) return secp256k1.signatureImport(sigObj)
37794 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
37797 sign: function (message, privateKey, options) {
37798 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37799 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37801 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37802 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37806 if (options !== undefined) {
37807 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
37809 if (options.data !== undefined) {
37810 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
37811 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
37812 data = options.data
37815 if (options.noncefn !== undefined) {
37816 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
37817 noncefn = options.noncefn
37821 return secp256k1.sign(message, privateKey, noncefn, data)
37824 verify: function (message, signature, publicKey) {
37825 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37826 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37828 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37829 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37831 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37832 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37834 return secp256k1.verify(message, signature, publicKey)
37837 recover: function (message, signature, recovery, compressed) {
37838 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37839 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37841 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37842 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37844 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
37845 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
37847 compressed = initCompressedValue(compressed, true)
37849 return secp256k1.recover(message, signature, recovery, compressed)
37852 ecdh: function (publicKey, privateKey) {
37853 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37854 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37856 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37857 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37859 return secp256k1.ecdh(publicKey, privateKey)
37862 ecdhUnsafe: function (publicKey, privateKey, compressed) {
37863 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37864 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37866 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37867 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37869 compressed = initCompressedValue(compressed, true)
37871 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
37876 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
37878 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
37879 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
37880 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
37881 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
37882 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
37883 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
37884 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
37885 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
37886 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
37887 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
37888 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
37889 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
37890 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
37891 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
37892 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
37893 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
37894 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
37895 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
37896 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
37897 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
37898 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
37899 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
37900 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
37901 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
37902 "MSG32_TYPE_INVALID": "message should be a Buffer",
37903 "MSG32_LENGTH_INVALID": "message length is invalid",
37904 "OPTIONS_TYPE_INVALID": "options should be an Object",
37905 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
37906 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
37907 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
37908 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
37909 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
37910 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
37911 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
37914 },{}],
79:[function(require,module,exports){
37915 (function (Buffer){
37916 // prototype class for hash functions
37917 function Hash (blockSize, finalSize) {
37918 this._block = new Buffer(blockSize)
37919 this._finalSize = finalSize
37920 this._blockSize = blockSize
37925 Hash.prototype.update = function (data, enc) {
37926 if (typeof data === 'string') {
37927 enc = enc || 'utf8'
37928 data = new Buffer(data, enc)
37931 var l = this._len += data.length
37932 var s = this._s ||
0
37934 var buffer = this._block
37937 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
37940 for (var i =
0; i < ch; i++) {
37941 buffer[(s % this._blockSize) + i] = data[i + f]
37947 if ((s % this._blockSize) ===
0) {
37948 this._update(buffer)
37956 Hash.prototype.digest = function (enc) {
37957 // Suppose the length of the message M, in bits, is l
37958 var l = this._len *
8
37960 // Append the bit
1 to the end of the message
37961 this._block[this._len % this._blockSize] =
0x80
37963 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
37964 this._block.fill(
0, this._len % this._blockSize +
1)
37966 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
37967 this._update(this._block)
37968 this._block.fill(
0)
37971 // to this append the block which is equal to the number l written in binary
37972 // TODO: handle case where l is
> Math.pow(
2,
29)
37973 this._block.writeInt32BE(l, this._blockSize -
4)
37975 var hash = this._update(this._block) || this._hash()
37977 return enc ? hash.toString(enc) : hash
37980 Hash.prototype._update = function () {
37981 throw new Error('_update must be implemented by subclass')
37984 module.exports = Hash
37986 }).call(this,require("buffer").Buffer)
37987 },{"buffer":
5}],
80:[function(require,module,exports){
37988 var exports = module.exports = function SHA (algorithm) {
37989 algorithm = algorithm.toLowerCase()
37991 var Algorithm = exports[algorithm]
37992 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
37994 return new Algorithm()
37997 exports.sha = require('./sha')
37998 exports.sha1 = require('./sha1')
37999 exports.sha224 = require('./sha224')
38000 exports.sha256 = require('./sha256')
38001 exports.sha384 = require('./sha384')
38002 exports.sha512 = require('./sha512')
38004 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
38005 (function (Buffer){
38007 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
38008 * in FIPS PUB
180-
1
38009 * This source code is derived from sha1.js of the same repository.
38010 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
38011 * operation was added.
38014 var inherits = require('inherits')
38015 var Hash = require('./hash')
38018 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
38021 var W = new Array(
80)
38027 Hash.call(this,
64,
56)
38030 inherits(Sha, Hash)
38032 Sha.prototype.init = function () {
38033 this._a =
0x67452301
38034 this._b =
0xefcdab89
38035 this._c =
0x98badcfe
38036 this._d =
0x10325476
38037 this._e =
0xc3d2e1f0
38042 function rotl5 (num) {
38043 return (num <<
5) | (num
>>> 27)
38046 function rotl30 (num) {
38047 return (num <<
30) | (num
>>> 2)
38050 function ft (s, b, c, d) {
38051 if (s ===
0) return (b & c) | ((~b) & d)
38052 if (s ===
2) return (b & c) | (b & d) | (c & d)
38056 Sha.prototype._update = function (M) {
38059 var a = this._a |
0
38060 var b = this._b |
0
38061 var c = this._c |
0
38062 var d = this._d |
0
38063 var e = this._e |
0
38065 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38066 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
38068 for (var j =
0; j <
80; ++j) {
38070 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
38079 this._a = (a + this._a) |
0
38080 this._b = (b + this._b) |
0
38081 this._c = (c + this._c) |
0
38082 this._d = (d + this._d) |
0
38083 this._e = (e + this._e) |
0
38086 Sha.prototype._hash = function () {
38087 var H = new Buffer(
20)
38089 H.writeInt32BE(this._a |
0,
0)
38090 H.writeInt32BE(this._b |
0,
4)
38091 H.writeInt32BE(this._c |
0,
8)
38092 H.writeInt32BE(this._d |
0,
12)
38093 H.writeInt32BE(this._e |
0,
16)
38098 module.exports = Sha
38100 }).call(this,require(
"buffer").Buffer)
38101 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
38102 (function (Buffer){
38104 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
38105 * in FIPS PUB
180-
1
38106 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
38107 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38108 * Distributed under the BSD License
38109 * See http://pajhome.org.uk/crypt/md5 for details.
38112 var inherits = require('inherits')
38113 var Hash = require('./hash')
38116 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
38119 var W = new Array(
80)
38125 Hash.call(this,
64,
56)
38128 inherits(Sha1, Hash)
38130 Sha1.prototype.init = function () {
38131 this._a =
0x67452301
38132 this._b =
0xefcdab89
38133 this._c =
0x98badcfe
38134 this._d =
0x10325476
38135 this._e =
0xc3d2e1f0
38140 function rotl1 (num) {
38141 return (num <<
1) | (num
>>> 31)
38144 function rotl5 (num) {
38145 return (num <<
5) | (num
>>> 27)
38148 function rotl30 (num) {
38149 return (num <<
30) | (num
>>> 2)
38152 function ft (s, b, c, d) {
38153 if (s ===
0) return (b & c) | ((~b) & d)
38154 if (s ===
2) return (b & c) | (b & d) | (c & d)
38158 Sha1.prototype._update = function (M) {
38161 var a = this._a |
0
38162 var b = this._b |
0
38163 var c = this._c |
0
38164 var d = this._d |
0
38165 var e = this._e |
0
38167 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38168 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
38170 for (var j =
0; j <
80; ++j) {
38172 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
38181 this._a = (a + this._a) |
0
38182 this._b = (b + this._b) |
0
38183 this._c = (c + this._c) |
0
38184 this._d = (d + this._d) |
0
38185 this._e = (e + this._e) |
0
38188 Sha1.prototype._hash = function () {
38189 var H = new Buffer(
20)
38191 H.writeInt32BE(this._a |
0,
0)
38192 H.writeInt32BE(this._b |
0,
4)
38193 H.writeInt32BE(this._c |
0,
8)
38194 H.writeInt32BE(this._d |
0,
12)
38195 H.writeInt32BE(this._e |
0,
16)
38200 module.exports = Sha1
38202 }).call(this,require(
"buffer").Buffer)
38203 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
38204 (function (Buffer){
38206 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
38208 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
38209 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38213 var inherits = require('inherits')
38214 var Sha256 = require('./sha256')
38215 var Hash = require('./hash')
38217 var W = new Array(
64)
38219 function Sha224 () {
38222 this._w = W // new Array(
64)
38224 Hash.call(this,
64,
56)
38227 inherits(Sha224, Sha256)
38229 Sha224.prototype.init = function () {
38230 this._a =
0xc1059ed8
38231 this._b =
0x367cd507
38232 this._c =
0x3070dd17
38233 this._d =
0xf70e5939
38234 this._e =
0xffc00b31
38235 this._f =
0x68581511
38236 this._g =
0x64f98fa7
38237 this._h =
0xbefa4fa4
38242 Sha224.prototype._hash = function () {
38243 var H = new Buffer(
28)
38245 H.writeInt32BE(this._a,
0)
38246 H.writeInt32BE(this._b,
4)
38247 H.writeInt32BE(this._c,
8)
38248 H.writeInt32BE(this._d,
12)
38249 H.writeInt32BE(this._e,
16)
38250 H.writeInt32BE(this._f,
20)
38251 H.writeInt32BE(this._g,
24)
38256 module.exports = Sha224
38258 }).call(this,require(
"buffer").Buffer)
38259 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
38260 (function (Buffer){
38262 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
38264 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
38265 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38269 var inherits = require('inherits')
38270 var Hash = require('./hash')
38273 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
38274 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
38275 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
38276 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
38277 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
38278 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
38279 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
38280 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
38281 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
38282 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
38283 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
38284 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
38285 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
38286 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
38287 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
38288 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
38291 var W = new Array(
64)
38293 function Sha256 () {
38296 this._w = W // new Array(
64)
38298 Hash.call(this,
64,
56)
38301 inherits(Sha256, Hash)
38303 Sha256.prototype.init = function () {
38304 this._a =
0x6a09e667
38305 this._b =
0xbb67ae85
38306 this._c =
0x3c6ef372
38307 this._d =
0xa54ff53a
38308 this._e =
0x510e527f
38309 this._f =
0x9b05688c
38310 this._g =
0x1f83d9ab
38311 this._h =
0x5be0cd19
38316 function ch (x, y, z) {
38317 return z ^ (x & (y ^ z))
38320 function maj (x, y, z) {
38321 return (x & y) | (z & (x | y))
38324 function sigma0 (x) {
38325 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
38328 function sigma1 (x) {
38329 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
38332 function gamma0 (x) {
38333 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
38336 function gamma1 (x) {
38337 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
38340 Sha256.prototype._update = function (M) {
38343 var a = this._a |
0
38344 var b = this._b |
0
38345 var c = this._c |
0
38346 var d = this._d |
0
38347 var e = this._e |
0
38348 var f = this._f |
0
38349 var g = this._g |
0
38350 var h = this._h |
0
38352 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38353 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
38355 for (var j =
0; j <
64; ++j) {
38356 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
38357 var T2 = (sigma0(a) + maj(a, b, c)) |
0
38369 this._a = (a + this._a) |
0
38370 this._b = (b + this._b) |
0
38371 this._c = (c + this._c) |
0
38372 this._d = (d + this._d) |
0
38373 this._e = (e + this._e) |
0
38374 this._f = (f + this._f) |
0
38375 this._g = (g + this._g) |
0
38376 this._h = (h + this._h) |
0
38379 Sha256.prototype._hash = function () {
38380 var H = new Buffer(
32)
38382 H.writeInt32BE(this._a,
0)
38383 H.writeInt32BE(this._b,
4)
38384 H.writeInt32BE(this._c,
8)
38385 H.writeInt32BE(this._d,
12)
38386 H.writeInt32BE(this._e,
16)
38387 H.writeInt32BE(this._f,
20)
38388 H.writeInt32BE(this._g,
24)
38389 H.writeInt32BE(this._h,
28)
38394 module.exports = Sha256
38396 }).call(this,require(
"buffer").Buffer)
38397 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
38398 (function (Buffer){
38399 var inherits = require('inherits')
38400 var SHA512 = require('./sha512')
38401 var Hash = require('./hash')
38403 var W = new Array(
160)
38405 function Sha384 () {
38409 Hash.call(this,
128,
112)
38412 inherits(Sha384, SHA512)
38414 Sha384.prototype.init = function () {
38415 this._ah =
0xcbbb9d5d
38416 this._bh =
0x629a292a
38417 this._ch =
0x9159015a
38418 this._dh =
0x152fecd8
38419 this._eh =
0x67332667
38420 this._fh =
0x8eb44a87
38421 this._gh =
0xdb0c2e0d
38422 this._hh =
0x47b5481d
38424 this._al =
0xc1059ed8
38425 this._bl =
0x367cd507
38426 this._cl =
0x3070dd17
38427 this._dl =
0xf70e5939
38428 this._el =
0xffc00b31
38429 this._fl =
0x68581511
38430 this._gl =
0x64f98fa7
38431 this._hl =
0xbefa4fa4
38436 Sha384.prototype._hash = function () {
38437 var H = new Buffer(
48)
38439 function writeInt64BE (h, l, offset) {
38440 H.writeInt32BE(h, offset)
38441 H.writeInt32BE(l, offset +
4)
38444 writeInt64BE(this._ah, this._al,
0)
38445 writeInt64BE(this._bh, this._bl,
8)
38446 writeInt64BE(this._ch, this._cl,
16)
38447 writeInt64BE(this._dh, this._dl,
24)
38448 writeInt64BE(this._eh, this._el,
32)
38449 writeInt64BE(this._fh, this._fl,
40)
38454 module.exports = Sha384
38456 }).call(this,require(
"buffer").Buffer)
38457 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
38458 (function (Buffer){
38459 var inherits = require('inherits')
38460 var Hash = require('./hash')
38463 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
38464 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
38465 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
38466 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
38467 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
38468 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
38469 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
38470 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
38471 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
38472 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
38473 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
38474 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
38475 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
38476 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
38477 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
38478 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
38479 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
38480 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
38481 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
38482 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
38483 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
38484 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
38485 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
38486 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
38487 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
38488 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
38489 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
38490 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
38491 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
38492 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
38493 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
38494 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
38495 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
38496 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
38497 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
38498 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
38499 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
38500 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
38501 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
38502 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
38505 var W = new Array(
160)
38507 function Sha512 () {
38511 Hash.call(this,
128,
112)
38514 inherits(Sha512, Hash)
38516 Sha512.prototype.init = function () {
38517 this._ah =
0x6a09e667
38518 this._bh =
0xbb67ae85
38519 this._ch =
0x3c6ef372
38520 this._dh =
0xa54ff53a
38521 this._eh =
0x510e527f
38522 this._fh =
0x9b05688c
38523 this._gh =
0x1f83d9ab
38524 this._hh =
0x5be0cd19
38526 this._al =
0xf3bcc908
38527 this._bl =
0x84caa73b
38528 this._cl =
0xfe94f82b
38529 this._dl =
0x5f1d36f1
38530 this._el =
0xade682d1
38531 this._fl =
0x2b3e6c1f
38532 this._gl =
0xfb41bd6b
38533 this._hl =
0x137e2179
38538 function Ch (x, y, z) {
38539 return z ^ (x & (y ^ z))
38542 function maj (x, y, z) {
38543 return (x & y) | (z & (x | y))
38546 function sigma0 (x, xl) {
38547 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
38550 function sigma1 (x, xl) {
38551 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
38554 function Gamma0 (x, xl) {
38555 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
38558 function Gamma0l (x, xl) {
38559 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
38562 function Gamma1 (x, xl) {
38563 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
38566 function Gamma1l (x, xl) {
38567 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
38570 function getCarry (a, b) {
38571 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
38574 Sha512.prototype._update = function (M) {
38577 var ah = this._ah |
0
38578 var bh = this._bh |
0
38579 var ch = this._ch |
0
38580 var dh = this._dh |
0
38581 var eh = this._eh |
0
38582 var fh = this._fh |
0
38583 var gh = this._gh |
0
38584 var hh = this._hh |
0
38586 var al = this._al |
0
38587 var bl = this._bl |
0
38588 var cl = this._cl |
0
38589 var dl = this._dl |
0
38590 var el = this._el |
0
38591 var fl = this._fl |
0
38592 var gl = this._gl |
0
38593 var hl = this._hl |
0
38595 for (var i =
0; i <
32; i +=
2) {
38596 W[i] = M.readInt32BE(i *
4)
38597 W[i +
1] = M.readInt32BE(i *
4 +
4)
38599 for (; i <
160; i +=
2) {
38600 var xh = W[i -
15 *
2]
38601 var xl = W[i -
15 *
2 +
1]
38602 var gamma0 = Gamma0(xh, xl)
38603 var gamma0l = Gamma0l(xl, xh)
38606 xl = W[i -
2 *
2 +
1]
38607 var gamma1 = Gamma1(xh, xl)
38608 var gamma1l = Gamma1l(xl, xh)
38610 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
38611 var Wi7h = W[i -
7 *
2]
38612 var Wi7l = W[i -
7 *
2 +
1]
38614 var Wi16h = W[i -
16 *
2]
38615 var Wi16l = W[i -
16 *
2 +
1]
38617 var Wil = (gamma0l + Wi7l) |
0
38618 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
38619 Wil = (Wil + gamma1l) |
0
38620 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
38621 Wil = (Wil + Wi16l) |
0
38622 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
38628 for (var j =
0; j <
160; j +=
2) {
38632 var majh = maj(ah, bh, ch)
38633 var majl = maj(al, bl, cl)
38635 var sigma0h = sigma0(ah, al)
38636 var sigma0l = sigma0(al, ah)
38637 var sigma1h = sigma1(eh, el)
38638 var sigma1l = sigma1(el, eh)
38640 // t1 = h + sigma1 + ch + K[j] + W[j]
38644 var chh = Ch(eh, fh, gh)
38645 var chl = Ch(el, fl, gl)
38647 var t1l = (hl + sigma1l) |
0
38648 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
38649 t1l = (t1l + chl) |
0
38650 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
38651 t1l = (t1l + Kil) |
0
38652 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
38653 t1l = (t1l + Wil) |
0
38654 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
38656 // t2 = sigma0 + maj
38657 var t2l = (sigma0l + majl) |
0
38658 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
38666 el = (dl + t1l) |
0
38667 eh = (dh + t1h + getCarry(el, dl)) |
0
38674 al = (t1l + t2l) |
0
38675 ah = (t1h + t2h + getCarry(al, t1l)) |
0
38678 this._al = (this._al + al) |
0
38679 this._bl = (this._bl + bl) |
0
38680 this._cl = (this._cl + cl) |
0
38681 this._dl = (this._dl + dl) |
0
38682 this._el = (this._el + el) |
0
38683 this._fl = (this._fl + fl) |
0
38684 this._gl = (this._gl + gl) |
0
38685 this._hl = (this._hl + hl) |
0
38687 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
38688 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
38689 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
38690 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
38691 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
38692 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
38693 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
38694 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
38697 Sha512.prototype._hash = function () {
38698 var H = new Buffer(
64)
38700 function writeInt64BE (h, l, offset) {
38701 H.writeInt32BE(h, offset)
38702 H.writeInt32BE(l, offset +
4)
38705 writeInt64BE(this._ah, this._al,
0)
38706 writeInt64BE(this._bh, this._bl,
8)
38707 writeInt64BE(this._ch, this._cl,
16)
38708 writeInt64BE(this._dh, this._dl,
24)
38709 writeInt64BE(this._eh, this._el,
32)
38710 writeInt64BE(this._fh, this._fl,
40)
38711 writeInt64BE(this._gh, this._gl,
48)
38712 writeInt64BE(this._hh, this._hl,
56)
38717 module.exports = Sha512
38719 }).call(this,require(
"buffer").Buffer)
38720 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
38721 var isHexPrefixed = require('is-hex-prefixed');
38724 * Removes '
0x' from a given `String` is present
38725 * @param {String} str the string value
38726 * @return {String|Optional} a string by pass if necessary
38728 module.exports = function stripHexPrefix(str) {
38729 if (typeof str !== 'string') {
38733 return isHexPrefixed(str) ? str.slice(
2) : str;
38736 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
38738 <script>function convertRippleAdrr(address) {
38739 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
38740 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
38744 function convertRipplePriv(priv) {
38745 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
38749 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
38753 /** @fileOverview Javascript cryptography implementation.
38755 * Crush to remove comments, shorten variable names and
38756 * generally reduce transmission size.
38758 * @author Emily Stark
38759 * @author Mike Hamburg
38760 * @author Dan Boneh
38764 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
38765 /*global document, window, escape, unescape, module, require, Uint32Array */
38767 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
38769 /** @namespace Symmetric ciphers. */
38772 /** @namespace Hash functions. Right now only SHA256 is implemented. */
38775 /** @namespace Key exchange functions. Right now only SRP is implemented. */
38778 /** @namespace Block cipher modes of operation. */
38781 /** @namespace Miscellaneous. HMAC and PBKDF2. */
38785 * @namespace Bit array encoders and decoders.
38788 * The members of this namespace are functions which translate between
38789 * SJCL's bitArrays and other objects (usually strings). Because it
38790 * isn't always clear which direction is encoding and which is decoding,
38791 * the method names are "fromBits" and "toBits".
38795 /** @namespace Exceptions. */
38797 /** @constructor Ciphertext is corrupt. */
38798 corrupt: function(message) {
38799 this.toString = function() { return "CORRUPT: "+this.message; };
38800 this.message = message;
38803 /** @constructor Invalid parameter. */
38804 invalid: function(message) {
38805 this.toString = function() { return "INVALID: "+this.message; };
38806 this.message = message;
38809 /** @constructor Bug or missing feature in SJCL. @constructor */
38810 bug: function(message) {
38811 this.toString = function() { return "BUG: "+this.message; };
38812 this.message = message;
38815 /** @constructor Something isn't ready. */
38816 notReady: function(message) {
38817 this.toString = function() { return "NOT READY: "+this.message; };
38818 this.message = message;
38823 if(typeof module !== 'undefined' && module.exports){
38824 module.exports = sjcl;
38826 if (typeof define === "function") {
38827 define([], function () {
38835 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
38837 * @author Emily Stark
38838 * @author Mike Hamburg
38839 * @author Dan Boneh
38842 /** @namespace Arrays of bits, encoded as arrays of Numbers.
38846 * These objects are the currency accepted by SJCL's crypto functions.
38850 * Most of our crypto primitives operate on arrays of
4-byte words internally,
38851 * but many of them can take arguments that are not a multiple of
4 bytes.
38852 * This library encodes arrays of bits (whose size need not be a multiple of
8
38853 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
38854 * array of words,
32 bits at a time. Since the words are double-precision
38855 * floating point numbers, they fit some extra data. We use this (in a private,
38856 * possibly-changing manner) to encode the number of bits actually present
38857 * in the last word of the array.
38861 * Because bitwise ops clear this out-of-band data, these arrays can be passed
38862 * to ciphers like AES which want arrays of words.
38867 * Array slices in units of bits.
38868 * @param {bitArray} a The array to slice.
38869 * @param {Number} bstart The offset to the start of the slice, in bits.
38870 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
38871 * slice until the end of the array.
38872 * @return {bitArray} The requested slice.
38874 bitSlice: function (a, bstart, bend) {
38875 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
38876 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
38880 * Extract a number packed into a bit array.
38881 * @param {bitArray} a The array to slice.
38882 * @param {Number} bstart The offset to the start of the slice, in bits.
38883 * @param {Number} length The length of the number to extract.
38884 * @return {Number} The requested slice.
38886 extract: function(a, bstart, blength) {
38887 // FIXME: this Math.floor is not necessary at all, but for some reason
38888 // seems to suppress a bug in the Chromium JIT.
38889 var x, sh = Math.floor((-bstart-blength) &
31);
38890 if ((bstart + blength -
1 ^ bstart) & -
32) {
38891 // it crosses a boundary
38892 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
38894 // within a single word
38895 x = a[bstart/
32|
0]
>>> sh;
38897 return x & ((
1<
<blength) -
1);
38901 * Concatenate two bit arrays.
38902 * @param {bitArray} a1 The first array.
38903 * @param {bitArray} a2 The second array.
38904 * @return {bitArray} The concatenation of a1 and a2.
38906 concat: function (a1, a2) {
38907 if (a1.length ===
0 || a2.length ===
0) {
38908 return a1.concat(a2);
38911 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
38912 if (shift ===
32) {
38913 return a1.concat(a2);
38915 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
38920 * Find the length of an array of bits.
38921 * @param {bitArray} a The array.
38922 * @return {Number} The length of a, in bits.
38924 bitLength: function (a) {
38925 var l = a.length, x;
38926 if (l ===
0) { return
0; }
38928 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
38932 * Truncate an array.
38933 * @param {bitArray} a The array.
38934 * @param {Number} len The length to truncate to, in bits.
38935 * @return {bitArray} A new array, truncated to len bits.
38937 clamp: function (a, len) {
38938 if (a.length *
32 < len) { return a; }
38939 a = a.slice(
0, Math.ceil(len /
32));
38942 if (l
> 0 && len) {
38943 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
38949 * Make a partial word for a bit array.
38950 * @param {Number} len The number of bits in the word.
38951 * @param {Number} x The bits.
38952 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
38953 * @return {Number} The partial word.
38955 partial: function (len, x, _end) {
38956 if (len ===
32) { return x; }
38957 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
38961 * Get the number of bits used by a partial word.
38962 * @param {Number} x The partial word.
38963 * @return {Number} The number of bits used by the partial word.
38965 getPartial: function (x) {
38966 return Math.round(x/
0x10000000000) ||
32;
38970 * Compare two arrays for equality in a predictable amount of time.
38971 * @param {bitArray} a The first array.
38972 * @param {bitArray} b The second array.
38973 * @return {boolean} true if a == b; false otherwise.
38975 equal: function (a, b) {
38976 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
38980 for (i=
0; i
<a.length; i++) {
38986 /** Shift an array right.
38987 * @param {bitArray} a The array to shift.
38988 * @param {Number} shift The number of bits to shift.
38989 * @param {Number} [carry=
0] A byte to carry in
38990 * @param {bitArray} [out=[]] An array to prepend to the output.
38993 _shiftRight: function (a, shift, carry, out) {
38994 var i, last2=
0, shift2;
38995 if (out === undefined) { out = []; }
38997 for (; shift
>=
32; shift -=
32) {
39002 return out.concat(a);
39005 for (i=
0; i
<a.length; i++) {
39006 out.push(carry | a[i]
>>>shift);
39007 carry = a[i] << (
32-shift);
39009 last2 = a.length ? a[a.length-
1] :
0;
39010 shift2 = sjcl.bitArray.getPartial(last2);
39011 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
39015 /** xor a block of
4 words together.
39018 _xor4: function(x,y) {
39019 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
39022 /** byteswap a word array inplace.
39023 * (does not handle partial words)
39024 * @param {sjcl.bitArray} a word array
39025 * @return {sjcl.bitArray} byteswapped array
39027 byteswapM: function(a) {
39028 var i, v, m =
0xff00;
39029 for (i =
0; i < a.length; ++i) {
39031 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
39038 //// codecString.js
39040 /** @fileOverview Bit array codec implementations.
39042 * @author Emily Stark
39043 * @author Mike Hamburg
39044 * @author Dan Boneh
39047 /** @namespace UTF-
8 strings */
39048 sjcl.codec.utf8String = {
39049 /** Convert from a bitArray to a UTF-
8 string. */
39050 fromBits: function (arr) {
39051 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
39052 for (i=
0; i
<bl/
8; i++) {
39056 out += String.fromCharCode(tmp
>>> 24);
39059 return decodeURIComponent(escape(out));
39062 /** Convert from a UTF-
8 string to a bitArray. */
39063 toBits: function (str) {
39064 str = unescape(encodeURIComponent(str));
39065 var out = [], i, tmp=
0;
39066 for (i=
0; i
<str.length; i++) {
39067 tmp = tmp <<
8 | str.charCodeAt(i);
39074 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
39083 /** @fileOverview Bit array codec implementations.
39085 * @author Emily Stark
39086 * @author Mike Hamburg
39087 * @author Dan Boneh
39090 /** @namespace Hexadecimal */
39092 /** Convert from a bitArray to a hex string. */
39093 fromBits: function (arr) {
39095 for (i=
0; i
<arr.length; i++) {
39096 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
39098 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
39100 /** Convert from a hex string to a bitArray. */
39101 toBits: function (str) {
39102 var i, out=[], len;
39103 str = str.replace(/\s|
0x/g,
"");
39105 str = str +
"00000000";
39106 for (i=
0; i
<str.length; i+=
8) {
39107 out.push(parseInt(str.substr(i,
8),
16)^
0);
39109 return sjcl.bitArray.clamp(out, len*
4);
39116 /** @fileOverview Javascript SHA-
512 implementation.
39118 * This implementation was written for CryptoJS by Jeff Mott and adapted for
39119 * SJCL by Stefan Thomas.
39121 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
39122 * Released with New BSD License
39124 * @author Emily Stark
39125 * @author Mike Hamburg
39126 * @author Dan Boneh
39127 * @author Jeff Mott
39128 * @author Stefan Thomas
39132 * Context for a SHA-
512 operation in progress.
39134 * @class Secure Hash Algorithm,
512 bits.
39136 sjcl.hash.sha512 = function (hash) {
39137 if (!this._key[
0]) { this._precompute(); }
39139 this._h = hash._h.slice(
0);
39140 this._buffer = hash._buffer.slice(
0);
39141 this._length = hash._length;
39148 * Hash a string or an array of words.
39150 * @param {bitArray|String} data the data to hash.
39151 * @return {bitArray} The hash value, an array of
16 big-endian words.
39153 sjcl.hash.sha512.hash = function (data) {
39154 return (new sjcl.hash.sha512()).update(data).finalize();
39157 sjcl.hash.sha512.prototype = {
39159 * The hash's block size, in bits.
39165 * Reset the hash state.
39168 reset:function () {
39169 this._h = this._init.slice(
0);
39176 * Input several words to the hash.
39177 * @param {bitArray|String} data the data to hash.
39180 update: function (data) {
39181 if (typeof data ===
"string") {
39182 data = sjcl.codec.utf8String.toBits(data);
39184 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
39186 nl = this._length = ol + sjcl.bitArray.bitLength(data);
39187 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
39188 this._block(b.splice(
0,
32));
39194 * Complete hashing and output the hash value.
39195 * @return {bitArray} The hash value, an array of
16 big-endian words.
39197 finalize:function () {
39198 var i, b = this._buffer, h = this._h;
39200 // Round out and push the buffer
39201 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
39203 // Round out the buffer to a multiple of
32 words, less the
4 length words.
39204 for (i = b.length +
4; i &
31; i++) {
39208 // append the length
39211 b.push(Math.floor(this._length /
0x100000000));
39212 b.push(this._length |
0);
39215 this._block(b.splice(
0,
32));
39223 * The SHA-
512 initialization vector, to be precomputed.
39229 * Least significant
24 bits of SHA512 initialization values.
39231 * Javascript only has
53 bits of precision, so we compute the
40 most
39232 * significant bits and add the remaining
24 bits as constants.
39236 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
39240 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
39241 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
39245 * The SHA-
512 hash key, to be precomputed.
39251 * Least significant
24 bits of SHA512 key values.
39255 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
39256 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
39257 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
39258 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
39259 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
39260 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
39261 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
39262 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
39263 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
39264 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
39268 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
39269 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
39270 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
39271 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
39272 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
39273 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
39274 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
39275 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
39276 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
39277 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
39278 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
39279 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
39280 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
39281 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
39282 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
39283 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
39284 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
39285 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
39286 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
39287 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
39291 * Function to precompute _init and _key.
39294 _precompute: function () {
39295 // XXX: This code is for precomputing the SHA256 constants, change for
39296 // SHA512 and re-enable.
39297 var i =
0, prime =
2, factor;
39299 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
39300 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
39302 outer: for (; i
<80; prime++) {
39303 for (factor=
2; factor*factor <= prime; factor++) {
39304 if (prime % factor ===
0) {
39311 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
39312 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
39314 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
39315 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
39321 * Perform one cycle of SHA-
512.
39322 * @param {bitArray} words one block of words.
39325 _block:function (words) {
39327 w = words.slice(
0),
39330 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
39331 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
39332 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
39333 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
39335 // Working variables
39336 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
39337 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
39338 eh = h4h, el = h4l, fh = h5h, fl = h5l,
39339 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
39341 for (i=
0; i
<80; i++) {
39342 // load up the input word for this round
39345 wrl = w[i *
2 +
1];
39348 var gamma0xh = w[(i-
15) *
2];
39349 var gamma0xl = w[(i-
15) *
2 +
1];
39351 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
39352 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
39355 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
39356 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
39357 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
39360 var gamma1xh = w[(i-
2) *
2];
39361 var gamma1xl = w[(i-
2) *
2 +
1];
39363 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
39364 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
39367 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
39368 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
39369 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
39372 var wr7h = w[(i-
7) *
2];
39373 var wr7l = w[(i-
7) *
2 +
1];
39375 var wr16h = w[(i-
16) *
2];
39376 var wr16l = w[(i-
16) *
2 +
1];
39378 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
39379 wrl = gamma0l + wr7l;
39380 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
39382 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
39384 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
39388 w[i*
2 +
1] = wrl |=
0;
39391 var chh = (eh & fh) ^ (~eh & gh);
39392 var chl = (el & fl) ^ (~el & gl);
39395 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
39396 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
39399 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
39400 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
39403 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
39404 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
39408 var krl = k[i*
2+
1];
39410 // t1 = h + sigma1 + ch + K(round) + W(round)
39411 var t1l = hl + sigma1l;
39412 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
39414 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
39416 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
39417 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
39418 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
39420 // t2 = sigma0 + maj
39421 var t2l = sigma0l + majl;
39422 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
39424 // Update working variables
39431 el = (dl + t1l) |
0;
39432 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
39439 al = (t1l + t2l) |
0;
39440 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
39443 // Intermediate hash
39444 h0l = h[
1] = (h0l + al) |
0;
39445 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
39446 h1l = h[
3] = (h1l + bl) |
0;
39447 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
39448 h2l = h[
5] = (h2l + cl) |
0;
39449 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
39450 h3l = h[
7] = (h3l + dl) |
0;
39451 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
39452 h4l = h[
9] = (h4l + el) |
0;
39453 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
39454 h5l = h[
11] = (h5l + fl) |
0;
39455 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
39456 h6l = h[
13] = (h6l + gl) |
0;
39457 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
39458 h7l = h[
15] = (h7l + hl) |
0;
39459 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
39466 /** @fileOverview HMAC implementation.
39468 * @author Emily Stark
39469 * @author Mike Hamburg
39470 * @author Dan Boneh
39473 /** HMAC with the specified hash function.
39475 * @param {bitArray} key the key for HMAC.
39476 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
39478 sjcl.misc.hmac = function (key, Hash) {
39479 this._hash = Hash = Hash || sjcl.hash.sha256;
39480 var exKey = [[],[]], i,
39481 bs = Hash.prototype.blockSize /
32;
39482 this._baseHash = [new Hash(), new Hash()];
39484 if (key.length
> bs) {
39485 key = Hash.hash(key);
39488 for (i=
0; i
<bs; i++) {
39489 exKey[
0][i] = key[i]^
0x36363636;
39490 exKey[
1][i] = key[i]^
0x5C5C5C5C;
39493 this._baseHash[
0].update(exKey[
0]);
39494 this._baseHash[
1].update(exKey[
1]);
39495 this._resultHash = new Hash(this._baseHash[
0]);
39498 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
39499 * @param {bitArray|String} data The data to mac.
39501 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
39502 if (!this._updated) {
39504 return this.digest(data);
39506 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
39510 sjcl.misc.hmac.prototype.reset = function () {
39511 this._resultHash = new this._hash(this._baseHash[
0]);
39512 this._updated = false;
39515 sjcl.misc.hmac.prototype.update = function (data) {
39516 this._updated = true;
39517 this._resultHash.update(data);
39520 sjcl.misc.hmac.prototype.digest = function () {
39521 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
39532 /** @fileOverview Password-based key-derivation function, version
2.0.
39534 * @author Emily Stark
39535 * @author Mike Hamburg
39536 * @author Dan Boneh
39539 /** Password-Based Key-Derivation Function, version
2.0.
39541 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
39543 * This is the method specified by RSA's PKCS #
5 standard.
39545 * @param {bitArray|String} password The password.
39546 * @param {bitArray|String} salt The salt. Should have lots of entropy.
39547 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
39548 * @param {Number} [length] The length of the derived key. Defaults to the
39549 output size of the hash function.
39550 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
39551 * @return {bitArray} the derived key.
39553 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
39554 count = count ||
1000;
39556 if (length <
0 || count <
0) {
39557 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
39560 if (typeof password ===
"string") {
39561 password = sjcl.codec.utf8String.toBits(password);
39564 if (typeof salt ===
"string") {
39565 salt = sjcl.codec.utf8String.toBits(salt);
39568 Prff = Prff || sjcl.misc.hmac;
39570 var prf = new Prff(password),
39571 u, ui, i, j, k, out = [], b = sjcl.bitArray;
39573 for (k =
1;
32 * out.length < (length ||
1); k++) {
39574 u = ui = prf.encrypt(b.concat(salt,[k]));
39576 for (i=
1; i
<count; i++) {
39577 ui = prf.encrypt(ui);
39578 for (j=
0; j
<ui.length; j++) {
39583 out = out.concat(u);
39586 if (length) { out = b.clamp(out, length); }
39594 /** @fileOverview Javascript SHA-
256 implementation.
39596 * An older version of this implementation is available in the public
39597 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
39598 * Stanford University
2008-
2010 and BSD-licensed for liability
39601 * Special thanks to Aldo Cortesi for pointing out several bugs in
39604 * @author Emily Stark
39605 * @author Mike Hamburg
39606 * @author Dan Boneh
39610 * Context for a SHA-
256 operation in progress.
39612 * @class Secure Hash Algorithm,
256 bits.
39614 sjcl.hash.sha256 = function (hash) {
39615 if (!this._key[
0]) { this._precompute(); }
39617 this._h = hash._h.slice(
0);
39618 this._buffer = hash._buffer.slice(
0);
39619 this._length = hash._length;
39626 * Hash a string or an array of words.
39628 * @param {bitArray|String} data the data to hash.
39629 * @return {bitArray} The hash value, an array of
16 big-endian words.
39631 sjcl.hash.sha256.hash = function (data) {
39632 return (new sjcl.hash.sha256()).update(data).finalize();
39635 sjcl.hash.sha256.prototype = {
39637 * The hash's block size, in bits.
39643 * Reset the hash state.
39646 reset:function () {
39647 this._h = this._init.slice(
0);
39654 * Input several words to the hash.
39655 * @param {bitArray|String} data the data to hash.
39658 update: function (data) {
39659 if (typeof data ===
"string") {
39660 data = sjcl.codec.utf8String.toBits(data);
39662 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
39664 nl = this._length = ol + sjcl.bitArray.bitLength(data);
39665 for (i =
512+ol & -
512; i <= nl; i+=
512) {
39666 this._block(b.splice(
0,
16));
39672 * Complete hashing and output the hash value.
39673 * @return {bitArray} The hash value, an array of
8 big-endian words.
39675 finalize:function () {
39676 var i, b = this._buffer, h = this._h;
39678 // Round out and push the buffer
39679 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
39681 // Round out the buffer to a multiple of
16 words, less the
2 length words.
39682 for (i = b.length +
2; i &
15; i++) {
39686 // append the length
39687 b.push(Math.floor(this._length /
0x100000000));
39688 b.push(this._length |
0);
39691 this._block(b.splice(
0,
16));
39699 * The SHA-
256 initialization vector, to be precomputed.
39704 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
39708 * The SHA-
256 hash key, to be precomputed.
39714 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
39715 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
39716 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
39717 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
39718 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
39719 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
39720 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
39721 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
39726 * Function to precompute _init and _key.
39729 _precompute: function () {
39730 var i =
0, prime =
2, factor;
39732 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
39734 outer: for (; i
<64; prime++) {
39735 for (factor=
2; factor*factor <= prime; factor++) {
39736 if (prime % factor ===
0) {
39743 this._init[i] = frac(Math.pow(prime,
1/
2));
39745 this._key[i] = frac(Math.pow(prime,
1/
3));
39751 * Perform one cycle of SHA-
256.
39752 * @param {bitArray} words one block of words.
39755 _block:function (words) {
39757 w = words.slice(
0),
39760 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
39761 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
39763 /* Rationale for placement of |
0 :
39764 * If a value can overflow is original
32 bits by a factor of more than a few
39765 * million (
2^
23 ish), there is a possibility that it might overflow the
39766 *
53-bit mantissa and lose precision.
39768 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
39769 * propagates around the loop, and on the hash state h[]. I don't believe
39770 * that the clamps on h4 and on h0 are strictly necessary, but it's close
39771 * (for h4 anyway), and better safe than sorry.
39773 * The clamps on h[] are necessary for the output to be correct even in the
39774 * common case and for short inputs.
39776 for (i=
0; i
<64; i++) {
39777 // load up the input word for this round
39781 a = w[(i+
1 ) &
15];
39782 b = w[(i+
14) &
15];
39783 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
39784 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
39785 w[i&
15] + w[(i+
9) &
15]) |
0;
39788 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
39791 h7 = h6; h6 = h5; h5 = h4;
39793 h3 = h2; h2 = h1; h1 = h0;
39795 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
39798 h[
0] = h[
0]+h0 |
0;
39799 h[
1] = h[
1]+h1 |
0;
39800 h[
2] = h[
2]+h2 |
0;
39801 h[
3] = h[
3]+h3 |
0;
39802 h[
4] = h[
4]+h4 |
0;
39803 h[
5] = h[
5]+h5 |
0;
39804 h[
6] = h[
6]+h6 |
0;
39805 h[
7] = h[
7]+h7 |
0;
39809 <script>// An extremely basic translation library
39813 // Set some html to be translated. Do this using the 'data-translate' attribute:
39815 //
<div data-translate
>Test
</div>
39816 //
<div data-translate-html
><em>keep em tag
</em></div>
39817 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
39818 //
<span data-translate-title
title=
"Example title"></span>
39820 // Obtain all the phrases to be translated via js debug console:
39822 // Translate.phrasesAsJson();
39824 // Use that template to translate the phrases into another language.
39825 // Leave the key the same. Change the value to the new language.
39827 // Create a js file to load the new phrases. In this example for Spanish,
39828 // es.js will contain the following code:
39830 // Translate.loadForeignPhrases("es", {
39831 // "Test": "Test in Spanish",
39832 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
39833 // "Example placeholder
": "Example placeholder in Spanish
"
39834 // "Example title
": "Example title in Spanish
"
39837 // In your UI put a listener for clicking on the Spanish button:
39839 // mySpanishButton.addEventListener("click
", function() {
39840 // Translate.setLanguage("es
");
39842 // myEnglishButton.addEventListener("click
", function() {
39843 // Translate.setLanguage("en
");
39846 Translate = new (function() {
39848 var defaultLanguage = "en
";
39850 var allPhrases = {};
39851 allPhrases[defaultLanguage] = {};
39856 selector: "[data-translate]
",
39857 getKey: function() {
39858 return this.textContent.trim().replace(/\s+/g, " ");
39860 setPhrase: function(p) {
39861 this.textContent = p;
39866 selector: "[data-translate-html]
",
39867 getKey: function() {
39868 return this.innerHTML.trim().replace(/\s+/g, " ");
39870 setPhrase: function(p) {
39871 this.innerHTML = p;
39875 var placeholder = {
39876 selector: "[data-translate-placeholder]
",
39877 getKey: function() {
39878 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
39880 setPhrase: function(p) {
39881 this.setAttribute("placeholder
", p);
39886 selector: "[data-translate-title]
",
39887 getKey: function() {
39888 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
39890 setPhrase: function(p) {
39891 this.setAttribute("title
", p);
39895 // Get elements to be translated
39896 var allEls = getEls(text)
39897 .concat(getEls(html))
39898 .concat(getEls(placeholder))
39899 .concat(getEls(title));
39901 // Provides access to phrases from a non-default language.
39902 // See phrases_en.js for example usage.
39903 this.loadForeignPhrases = function(language, phrases) {
39904 allPhrases[language] = phrases;
39907 // Displays a different language, eg "en
" or "fr
"
39908 this.setLanguage = function(language) {
39909 for (var i=0; i<allEls.length; i++) {
39910 var el = allEls[i];
39912 if (!(language in allPhrases)) {
39913 console.log(language + " not in allPhrases
");
39916 if (!(key in allPhrases[language])) {
39917 console.log(language + " does not contain phrase:
" + key);
39920 var phrase = allPhrases[language][key];
39921 el.setPhrase(phrase);
39925 // Converts the phrases to a key-pair json file.
39926 // This is a good way to export phrases for use in translation tools.
39927 this.phrasesAsJson = function(language) {
39929 for (var i=0; i<allEls.length; i++) {
39930 var el = allEls[i];
39936 for (var i=0; i<keys.length; i++) {
39938 var translated = "";
39939 if (language in allPhrases && key in allPhrases[language]) {
39940 translated = allPhrases[language][key];
39942 output[key] = translated;
39944 return JSON.stringify(output, null, 2);
39947 function getEls(nodeType) {
39948 var nodes = document.querySelectorAll(nodeType.selector);
39950 for (var i=0; i<nodes.length; i++) {
39951 var node = nodes[i];
39952 node.getKey = nodeType.getKey;
39953 node.setPhrase = nodeType.setPhrase;
39954 node.key = node.getKey();
39955 allPhrases[defaultLanguage][node.key] = node.key;
39963 <script>Translate.loadForeignPhrases("en",
39965 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
39966 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
39967 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
39968 "
<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).",
39969 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
39970 "Account": "Account",
39971 "Address": "Address",
39972 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
39973 "BIP32 Derivation Path": "BIP32 Derivation Path",
39974 "BIP32 Extended Key": "BIP32 Extended Key",
39975 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
39976 "BIP32 Root Key": "BIP32 Root Key",
39977 "BIP39 Mnemonic": "BIP39 Mnemonic",
39978 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
39979 "BIP39 Seed": "BIP39 Seed",
39980 "Base
10": "Base
10",
39981 "Base
6": "Base
6",
39982 "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.",
39983 "Binary": "Binary",
39984 "Bitcoin Core": "Bitcoin Core",
39985 "Bits Per Event": "Bits Per Event",
39986 "Block Explorers": "Block Explorers",
39987 "Can be used with": "Can be used with",
39991 "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.",
39992 "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.",
39993 "Entropy": "Entropy",
39994 "Entropy Type": "Entropy Type",
39995 "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.",
39996 "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>.",
39997 "Event Count": "Event Count",
39998 "External / Internal": "External / Internal",
39999 "Filtered Entropy": "Filtered Entropy",
40000 "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>",
40001 "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>.",
40002 "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>.",
40003 "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>",
40004 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
40005 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
40006 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
40007 "Get the source code from the repository
": "Get the source code from the repository
",
40009 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
40010 "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.
",
40011 "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.
",
40012 "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.
",
40013 "Libraries
": "Libraries
",
40014 "Mnemonic Language
": "Mnemonic Language
",
40015 "Mnemonic Length
": "Mnemonic Length
",
40016 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
40017 "More info
": "More info
",
40018 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
40019 "Mycelium Wallet
": "Mycelium Wallet
",
40020 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
40021 "Offline Usage
": "Offline Usage
",
40022 "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.",
40024 "Private Key": "Private Key",
40025 "Private Keys": "Private Keys",
40026 "Public Key": "Public Key",
40027 "Purpose": "Purpose",
40028 "Raw Binary": "Raw Binary",
40029 "Read more": "Read more",
40030 "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>",
40031 "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>",
40032 "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>",
40033 "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>",
40035 "Show more rows
": "Show more rows
",
40036 "Strength
": "Strength
",
40037 "Supply my own source of entropy
": "Supply my own source of entropy
",
40038 "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.
",
40039 "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>.",
40040 "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.",
40041 "This project is
100% open-source code": "This project is
100% open-source code",
40042 "Toggle": "Toggle",
40043 "Total Bits": "Total Bits",
40044 "Use hardened addresses": "Use hardened addresses",
40045 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
40046 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
40047 "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>.",
40048 "Valid entropy values include:": "Valid entropy values include:",
40049 "Warning": "Warning",
40050 "Word Count": "Word Count",
40051 "You are not a good source of entropy.": "You are not a good source of entropy.",
40052 "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).",
40053 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
40058 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40059 WORDLISTS["english"] = [
40060 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
40061 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
40062 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
40063 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
40064 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
40065 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
40066 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
40067 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
40068 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
40069 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
40070 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
40071 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
40072 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
40073 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
40074 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
40075 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
40076 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
40077 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
40078 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
40079 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
40080 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
40081 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
40082 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
40083 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
40084 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
40085 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
40086 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
40087 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
40088 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
40089 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
40090 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
40091 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
40092 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
40093 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
40094 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
40095 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
40096 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
40097 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
40098 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
40099 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
40100 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
40101 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
40102 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
40103 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
40104 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
40105 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
40106 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
40107 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
40108 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
40109 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
40110 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
40111 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
40112 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
40113 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
40114 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
40115 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
40116 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
40117 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
40118 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
40119 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
40120 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
40121 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
40122 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
40123 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
40124 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
40125 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
40126 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
40127 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
40128 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
40129 "film","filter","final","find","fine","finger","finish","fire","firm","first",
40130 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
40131 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
40132 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
40133 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
40134 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
40135 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
40136 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
40137 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
40138 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
40139 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
40140 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
40141 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
40142 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
40143 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
40144 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
40145 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
40146 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
40147 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
40148 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
40149 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
40150 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
40151 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
40152 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
40153 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
40154 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
40155 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
40156 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
40157 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
40158 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
40159 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
40160 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
40161 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
40162 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
40163 "liar","liberty","library","license","life","lift","light","like","limb","limit",
40164 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
40165 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
40166 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
40167 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
40168 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
40169 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
40170 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
40171 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
40172 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
40173 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
40174 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
40175 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
40176 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
40177 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
40178 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
40179 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
40180 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
40181 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
40182 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
40183 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
40184 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
40185 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
40186 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
40187 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
40188 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
40189 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
40190 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
40191 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
40192 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
40193 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
40194 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
40195 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
40196 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
40197 "prize","problem","process","produce","profit","program","project","promote","proof","property",
40198 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
40199 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
40200 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
40201 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
40202 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
40203 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
40204 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
40205 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
40206 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
40207 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
40208 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
40209 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
40210 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
40211 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
40212 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
40213 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
40214 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
40215 "scrub","sea","search","season","seat","second","secret","section","security","seed",
40216 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
40217 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
40218 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
40219 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
40220 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
40221 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
40222 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
40223 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
40224 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
40225 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
40226 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
40227 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
40228 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
40229 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
40230 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
40231 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
40232 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
40233 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
40234 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
40235 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
40236 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
40237 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
40238 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
40239 "thank","that","theme","then","theory","there","they","thing","this","thought",
40240 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
40241 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
40242 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
40243 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
40244 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
40245 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
40246 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
40247 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
40248 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
40249 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
40250 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
40251 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
40252 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
40253 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
40254 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
40255 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
40256 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
40257 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
40258 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
40259 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
40260 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
40261 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
40262 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
40263 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
40264 "yellow","you","young","youth","zebra","zero","zone","zoo"]
40266 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40267 WORDLISTS["japanese"] = [
40268 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
40269 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
40270 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
40271 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
40272 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
40273 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
40274 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
40275 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
40276 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
40277 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
40278 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
40279 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
40280 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
40281 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
40282 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
40283 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
40284 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
40285 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
40286 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
40287 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
40288 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
40289 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
40290 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
40291 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
40292 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
40293 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
40294 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
40295 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
40296 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
40297 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
40298 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
40299 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
40300 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
40301 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
40302 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
40303 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
40304 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
40305 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
40306 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
40307 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
40308 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
40309 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
40310 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
40311 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
40312 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
40313 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
40314 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
40315 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
40316 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
40317 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
40318 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
40319 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
40320 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
40321 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
40322 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
40323 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
40324 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
40325 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
40326 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
40327 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
40328 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
40329 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
40330 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
40331 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
40332 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
40333 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
40334 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
40335 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
40336 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
40337 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
40338 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
40339 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
40340 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
40341 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
40342 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
40343 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
40344 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
40345 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
40346 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
40347 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
40348 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
40349 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
40350 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
40351 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
40352 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
40353 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
40354 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
40355 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
40356 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
40357 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
40358 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
40359 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
40360 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
40361 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
40362 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
40363 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
40364 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
40365 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
40366 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
40367 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
40368 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
40369 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
40370 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
40371 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
40372 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
40373 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
40374 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
40375 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
40376 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
40377 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
40378 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
40379 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
40380 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
40381 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
40382 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
40383 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
40384 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
40385 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
40386 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
40387 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
40388 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
40389 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
40390 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
40391 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
40392 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
40393 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
40394 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
40395 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
40396 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
40397 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
40398 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
40399 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
40400 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
40401 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
40402 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
40403 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
40404 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
40405 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
40406 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
40407 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
40408 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
40409 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
40410 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
40411 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
40412 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
40413 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
40414 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
40415 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
40416 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
40417 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
40418 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
40419 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
40420 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
40421 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
40422 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
40423 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
40424 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
40425 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
40426 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
40427 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
40428 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
40429 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
40430 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
40431 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
40432 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
40433 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
40434 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
40435 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
40436 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
40437 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
40438 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
40439 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
40440 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
40441 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
40442 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
40443 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
40444 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
40445 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
40446 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
40447 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
40448 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
40449 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
40450 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
40451 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
40452 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
40453 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
40454 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
40455 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
40456 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
40457 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
40458 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
40459 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
40460 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
40461 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
40462 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
40463 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
40464 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
40465 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
40466 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
40467 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
40468 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
40469 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
40470 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
40471 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
40472 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
40474 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40475 WORDLISTS["spanish"] = [
40476 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
40477 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
40478 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
40479 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
40480 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
40481 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
40482 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
40483 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
40484 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
40485 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
40486 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
40487 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
40488 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
40489 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
40490 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
40491 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
40492 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
40493 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
40494 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
40495 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
40496 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
40497 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
40498 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
40499 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
40500 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
40501 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
40502 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
40503 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
40504 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
40505 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
40506 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
40507 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
40508 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
40509 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
40510 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
40511 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
40512 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
40513 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
40514 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
40515 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
40516 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
40517 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
40518 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
40519 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
40520 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
40521 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
40522 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
40523 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
40524 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
40525 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
40526 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
40527 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
40528 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
40529 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
40530 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
40531 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
40532 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
40533 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
40534 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
40535 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
40536 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
40537 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
40538 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
40539 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
40540 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
40541 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
40542 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
40543 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
40544 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
40545 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
40546 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
40547 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
40548 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
40549 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
40550 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
40551 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
40552 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
40553 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
40554 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
40555 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
40556 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
40557 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
40558 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
40559 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
40560 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
40561 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
40562 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
40563 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
40564 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
40565 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
40566 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
40567 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
40568 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
40569 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
40570 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
40571 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
40572 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
40573 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
40574 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
40575 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
40576 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
40577 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
40578 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
40579 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
40580 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
40581 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
40582 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
40583 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
40584 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
40585 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
40586 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
40587 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
40588 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
40589 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
40590 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
40591 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
40592 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
40593 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
40594 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
40595 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
40596 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
40597 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
40598 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
40599 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
40600 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
40601 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
40602 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
40603 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
40604 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
40605 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
40606 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
40607 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
40608 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
40609 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
40610 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
40611 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
40612 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
40613 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
40614 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
40615 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
40616 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
40617 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
40618 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
40619 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
40620 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
40621 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
40622 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
40623 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
40624 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
40625 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
40626 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
40627 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
40628 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
40629 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
40630 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
40631 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
40632 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
40633 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
40634 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
40635 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
40636 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
40637 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
40638 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
40639 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
40640 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
40641 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
40642 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
40643 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
40644 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
40645 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
40646 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
40647 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
40648 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
40649 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
40650 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
40651 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
40652 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
40653 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
40654 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
40655 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
40656 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
40657 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
40658 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
40659 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
40660 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
40661 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
40662 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
40663 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
40664 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
40665 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
40666 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
40667 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
40668 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
40669 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
40670 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
40671 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
40672 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
40673 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
40674 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
40675 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
40676 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
40677 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
40678 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
40679 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
40680 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
40682 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40683 WORDLISTS["chinese_simplified"] = [
40684 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
40685 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
40686 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
40687 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
40688 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
40689 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
40690 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
40691 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
40692 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
40693 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
40694 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
40695 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
40696 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
40697 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
40698 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
40699 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
40700 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
40701 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
40702 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
40703 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
40704 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
40705 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
40706 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
40707 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
40708 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
40709 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
40710 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
40711 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
40712 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
40713 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
40714 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
40715 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
40716 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
40717 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
40718 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
40719 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
40720 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
40721 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
40722 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
40723 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
40724 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
40725 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
40726 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
40727 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
40728 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
40729 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
40730 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
40731 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
40732 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
40733 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
40734 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
40735 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
40736 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
40737 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
40738 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
40739 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
40740 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
40741 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
40742 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
40743 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
40744 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
40745 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
40746 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
40747 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
40748 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
40749 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
40750 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
40751 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
40752 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
40753 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
40754 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
40755 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
40756 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
40757 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
40758 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
40759 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
40760 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
40761 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
40762 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
40763 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
40764 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
40765 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
40766 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
40767 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
40768 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
40769 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
40770 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
40771 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
40772 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
40773 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
40774 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
40775 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
40776 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
40777 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
40778 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
40779 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
40780 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
40781 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
40782 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
40783 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
40784 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
40785 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
40786 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
40787 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
40788 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
40789 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
40790 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
40791 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
40792 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
40793 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
40794 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
40795 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
40796 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
40797 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
40798 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
40799 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
40800 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
40801 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
40802 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
40803 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
40804 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
40805 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
40806 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
40807 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
40808 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
40809 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
40810 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
40811 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
40812 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
40813 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
40814 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
40815 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
40816 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
40817 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
40818 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
40819 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
40820 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
40821 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
40822 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
40823 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
40824 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
40825 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
40826 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
40827 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
40828 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
40829 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
40830 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
40831 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
40832 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
40833 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
40834 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
40835 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
40836 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
40837 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
40838 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
40839 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
40840 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
40841 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
40842 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
40843 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
40844 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
40845 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
40846 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
40847 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
40848 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
40849 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
40850 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
40851 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
40852 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
40853 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
40854 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
40855 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
40856 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
40857 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
40858 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
40859 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
40860 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
40861 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
40862 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
40863 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
40864 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
40865 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
40866 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
40867 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
40868 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
40869 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
40870 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
40871 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
40872 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
40873 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
40874 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
40875 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
40876 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
40877 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
40878 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
40879 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
40880 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
40881 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
40882 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
40883 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
40884 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
40885 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
40886 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
40887 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
40888 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
40890 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40891 WORDLISTS["chinese_traditional"] = [
40892 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
40893 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
40894 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
40895 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
40896 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
40897 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
40898 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
40899 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
40900 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
40901 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
40902 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
40903 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
40904 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
40905 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
40906 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
40907 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
40908 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
40909 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
40910 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
40911 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
40912 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
40913 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
40914 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
40915 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
40916 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
40917 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
40918 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
40919 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
40920 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
40921 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
40922 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
40923 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
40924 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
40925 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
40926 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
40927 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
40928 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
40929 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
40930 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
40931 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
40932 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
40933 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
40934 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
40935 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
40936 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
40937 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
40938 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
40939 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
40940 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
40941 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
40942 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
40943 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
40944 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
40945 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
40946 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
40947 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
40948 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
40949 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
40950 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
40951 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
40952 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
40953 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
40954 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
40955 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
40956 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
40957 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
40958 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
40959 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
40960 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
40961 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
40962 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
40963 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
40964 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
40965 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
40966 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
40967 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
40968 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
40969 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
40970 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
40971 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
40972 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
40973 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
40974 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
40975 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
40976 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
40977 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
40978 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
40979 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
40980 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
40981 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
40982 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
40983 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
40984 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
40985 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
40986 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
40987 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
40988 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
40989 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
40990 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
40991 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
40992 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
40993 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
40994 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
40995 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
40996 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
40997 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
40998 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
40999 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
41000 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
41001 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
41002 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
41003 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
41004 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
41005 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
41006 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
41007 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
41008 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
41009 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
41010 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
41011 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
41012 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
41013 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
41014 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
41015 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
41016 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
41017 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
41018 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
41019 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
41020 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
41021 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
41022 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
41023 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
41024 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
41025 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
41026 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
41027 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
41028 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
41029 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
41030 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
41031 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
41032 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
41033 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
41034 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
41035 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
41036 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
41037 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
41038 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
41039 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
41040 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
41041 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
41042 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
41043 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
41044 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
41045 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
41046 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
41047 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
41048 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
41049 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
41050 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
41051 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
41052 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
41053 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
41054 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
41055 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
41056 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
41057 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
41058 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
41059 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
41060 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
41061 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
41062 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
41063 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
41064 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
41065 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
41066 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
41067 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
41068 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
41069 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
41070 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
41071 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
41072 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
41073 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
41074 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
41075 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
41076 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
41077 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
41078 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
41079 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
41080 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
41081 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
41082 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
41083 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
41084 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
41085 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
41086 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
41087 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
41088 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
41089 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
41090 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
41091 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
41092 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
41093 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
41094 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
41095 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
41096 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
41098 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
41099 WORDLISTS["french"] = [
41100 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
41101 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
41102 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
41103 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
41104 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
41105 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
41106 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
41107 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
41108 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
41109 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
41110 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
41111 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
41112 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
41113 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
41114 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
41115 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
41116 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
41117 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
41118 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
41119 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
41120 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
41121 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
41122 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
41123 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
41124 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
41125 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
41126 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
41127 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
41128 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
41129 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
41130 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
41131 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
41132 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
41133 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
41134 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
41135 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
41136 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
41137 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
41138 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
41139 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
41140 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
41141 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
41142 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
41143 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
41144 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
41145 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
41146 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
41147 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
41148 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
41149 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
41150 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
41151 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
41152 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
41153 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
41154 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
41155 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
41156 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
41157 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
41158 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
41159 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
41160 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
41161 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
41162 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
41163 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
41164 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
41165 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
41166 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
41167 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
41168 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
41169 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
41170 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
41171 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
41172 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
41173 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
41174 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
41175 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
41176 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
41177 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
41178 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
41179 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
41180 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
41181 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
41182 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
41183 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
41184 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
41185 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
41186 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
41187 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
41188 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
41189 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
41190 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
41191 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
41192 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
41193 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
41194 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
41195 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
41196 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
41197 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
41198 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
41199 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
41200 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
41201 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
41202 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
41203 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
41204 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
41205 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
41206 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
41207 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
41208 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
41209 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
41210 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
41211 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
41212 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
41213 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
41214 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
41215 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
41216 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
41217 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
41218 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
41219 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
41220 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
41221 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
41222 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
41223 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
41224 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
41225 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
41226 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
41227 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
41228 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
41229 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
41230 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
41231 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
41232 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
41233 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
41234 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
41235 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
41236 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
41237 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
41238 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
41239 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
41240 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
41241 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
41242 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
41243 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
41244 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
41245 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
41246 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
41247 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
41248 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
41249 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
41250 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
41251 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
41252 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
41253 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
41254 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
41255 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
41256 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
41257 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
41258 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
41259 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
41260 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
41261 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
41262 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
41263 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
41264 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
41265 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
41266 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
41267 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
41268 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
41269 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
41270 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
41271 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
41272 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
41273 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
41274 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
41275 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
41276 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
41277 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
41278 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
41279 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
41280 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
41281 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
41282 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
41283 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
41284 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
41285 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
41286 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
41287 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
41288 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
41289 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
41290 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
41291 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
41292 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
41293 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
41294 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
41295 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
41296 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
41297 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
41298 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
41299 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
41300 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
41301 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
41302 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
41303 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
41304 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
41306 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
41307 WORDLISTS["italian"] = [
41308 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
41309 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
41310 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
41311 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
41312 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
41313 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
41314 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
41315 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
41316 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
41317 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
41318 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
41319 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
41320 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
41321 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
41322 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
41323 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
41324 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
41325 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
41326 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
41327 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
41328 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
41329 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
41330 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
41331 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
41332 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
41333 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
41334 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
41335 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
41336 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
41337 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
41338 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
41339 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
41340 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
41341 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
41342 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
41343 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
41344 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
41345 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
41346 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
41347 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
41348 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
41349 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
41350 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
41351 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
41352 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
41353 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
41354 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
41355 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
41356 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
41357 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
41358 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
41359 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
41360 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
41361 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
41362 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
41363 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
41364 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
41365 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
41366 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
41367 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
41368 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
41369 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
41370 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
41371 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
41372 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
41373 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
41374 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
41375 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
41376 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
41377 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
41378 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
41379 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
41380 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
41381 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
41382 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
41383 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
41384 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
41385 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
41386 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
41387 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
41388 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
41389 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
41390 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
41391 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
41392 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
41393 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
41394 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
41395 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
41396 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
41397 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
41398 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
41399 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
41400 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
41401 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
41402 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
41403 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
41404 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
41405 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
41406 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
41407 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
41408 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
41409 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
41410 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
41411 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
41412 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
41413 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
41414 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
41415 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
41416 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
41417 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
41418 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
41419 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
41420 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
41421 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
41422 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
41423 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
41424 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
41425 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
41426 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
41427 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
41428 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
41429 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
41430 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
41431 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
41432 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
41433 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
41434 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
41435 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
41436 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
41437 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
41438 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
41439 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
41440 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
41441 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
41442 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
41443 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
41444 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
41445 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
41446 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
41447 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
41448 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
41449 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
41450 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
41451 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
41452 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
41453 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
41454 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
41455 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
41456 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
41457 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
41458 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
41459 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
41460 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
41461 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
41462 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
41463 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
41464 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
41465 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
41466 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
41467 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
41468 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
41469 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
41470 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
41471 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
41472 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
41473 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
41474 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
41475 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
41476 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
41477 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
41478 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
41479 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
41480 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
41481 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
41482 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
41483 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
41484 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
41485 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
41486 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
41487 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
41488 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
41489 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
41490 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
41491 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
41492 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
41493 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
41494 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
41495 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
41496 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
41497 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
41498 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
41499 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
41500 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
41501 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
41502 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
41503 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
41504 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
41505 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
41506 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
41507 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
41508 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
41509 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
41510 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
41511 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
41512 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
41515 * Copyright (c)
2013 Pavol Rusnak
41517 * Permission is hereby granted, free of charge, to any person obtaining a copy of
41518 * this software and associated documentation files (the "Software"), to deal in
41519 * the Software without restriction, including without limitation the rights to
41520 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
41521 * of the Software, and to permit persons to whom the Software is furnished to do
41522 * so, subject to the following conditions:
41524 * The above copyright notice and this permission notice shall be included in all
41525 * copies or substantial portions of the Software.
41527 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
41528 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
41529 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
41530 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41531 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
41532 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
41536 * Javascript port from python by Ian Coleman
41538 * Requires code from sjcl
41539 * https://github.com/bitwiseshiftleft/sjcl
41542 var Mnemonic = function(language) {
41544 var PBKDF2_ROUNDS =
2048;
41550 var hmacSHA512 = function(key) {
41551 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
41552 this.encrypt = function() {
41553 return hasher.encrypt.apply(hasher, arguments);
41558 wordlist = WORDLISTS[language];
41559 if (wordlist.length != RADIX) {
41560 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
41565 self.generate = function(strength) {
41566 strength = strength ||
128;
41567 var r = strength %
32;
41569 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
41571 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
41572 if (!hasStrongCrypto) {
41573 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
41575 var buffer = new Uint8Array(strength /
8);
41576 var data = crypto.getRandomValues(buffer);
41577 return self.toMnemonic(data);
41580 self.toMnemonic = function(byteArray) {
41581 if (byteArray.length %
4 > 0) {
41582 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
41585 //h = hashlib.sha256(data).hexdigest()
41586 var data = byteArrayToWordArray(byteArray);
41587 var hash = sjcl.hash.sha256.hash(data);
41588 var h = sjcl.codec.hex.fromBits(hash);
41590 // b is a binary string, eg '
00111010101100...'
41591 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
41592 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
41594 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
41595 // c = bin(int(h,
16))[
2:].zfill(
256)
41596 // d = c[:len(data) *
8 /
32]
41597 var a = byteArrayToBinaryString(byteArray);
41598 var c = zfill(hexStringToBinaryString(h),
256);
41599 var d = c.substring(
0, byteArray.length *
8 /
32);
41600 // b = line1 + line2
41604 var blen = b.length /
11;
41605 for (var i=
0; i
<blen; i++) {
41606 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
41607 result.push(wordlist[idx]);
41609 return self.joinWords(result);
41612 self.check = function(mnemonic) {
41613 var mnemonic = self.splitWords(mnemonic);
41614 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
41617 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
41619 for (var i=
0; i
<mnemonic.length; i++) {
41620 var word = mnemonic[i];
41621 var wordIndex = wordlist.indexOf(word);
41622 if (wordIndex == -
1) {
41625 var binaryIndex = zfill(wordIndex.toString(
2),
11);
41626 idx.push(binaryIndex);
41628 var b = idx.join('');
41630 //d = b[:l /
33 *
32]
41632 var d = b.substring(
0, l /
33 *
32);
41633 var h = b.substring(l - l /
33, l);
41634 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
41635 var nd = binaryStringToWordArray(d);
41636 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
41637 var ndHash = sjcl.hash.sha256.hash(nd);
41638 var ndHex = sjcl.codec.hex.fromBits(ndHash);
41639 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
41640 var nh = ndBstr.substring(
0,l/
33);
41644 self.toSeed = function(mnemonic, passphrase) {
41645 passphrase = passphrase || '';
41646 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
41647 var mnemonicNormalized = self.normalizeString(mnemonic);
41648 passphrase = self.normalizeString(passphrase)
41649 passphrase =
"mnemonic" + passphrase;
41650 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
41651 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
41652 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
41653 var hashHex = sjcl.codec.hex.fromBits(result);
41657 self.splitWords = function(mnemonic) {
41658 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
41661 self.joinWords = function(words) {
41662 // Set space correctly depending on the language
41663 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
41665 if (language ==
"japanese") {
41666 space =
"\u3000"; // ideographic space
41668 return words.join(space);
41671 self.normalizeString = function(str) {
41672 if (typeof str.normalize ==
"function") {
41673 return str.normalize(
"NFKD");
41676 // TODO decide how to handle this in the future.
41677 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
41682 function byteArrayToWordArray(data) {
41684 for (var i=
0; i
<data.length/
4; i++) {
41686 v += data[i*
4 +
0] <<
8 *
3;
41687 v += data[i*
4 +
1] <<
8 *
2;
41688 v += data[i*
4 +
2] <<
8 *
1;
41689 v += data[i*
4 +
3] <<
8 *
0;
41695 function byteArrayToBinaryString(data) {
41697 for (var i=
0; i
<data.length; i++) {
41698 bin += zfill(data[i].toString(
2),
8);
41703 function hexStringToBinaryString(hexString) {
41705 for (var i=
0; i
<hexString.length; i++) {
41706 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
41708 return binaryString;
41711 function binaryStringToWordArray(binary) {
41712 var aLen = binary.length /
32;
41714 for (var i=
0; i
<aLen; i++) {
41715 var valueStr = binary.substring(
0,
32);
41716 var value = parseInt(valueStr,
2);
41718 binary = binary.slice(
32);
41723 // Pad a numeric string on the left with zero digits until the given width
41725 // Note this differs to the python implementation because it does not
41726 // handle numbers starting with a sign.
41727 function zfill(source, length) {
41728 source = source.toString();
41729 while (source.length < length) {
41730 source = '
0' + source;
41740 JavaScript BigInteger library version
0.9.1
41741 http://silentmatt.com/biginteger/
41743 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
41744 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
41745 Licensed under the MIT license.
41747 Support for arbitrary internal representation base was added by
41752 File: biginteger.js
41758 (function(exports) {
41762 An arbitrarily-large integer.
41764 <BigInteger> objects should be considered immutable. None of the "built-in"
41765 methods modify *this* or their arguments. All properties should be
41766 considered private.
41768 All the methods of
<BigInteger> instances can be called "statically". The
41769 static versions are convenient if you don't already have a
<BigInteger>
41772 As an example, these calls are equivalent.
41774 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
41775 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
41778 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
41781 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
41784 Constructor: BigInteger()
41785 Convert a value to a
<BigInteger>.
41787 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
41788 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
41789 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
41790 without a radix argument.
41792 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
41793 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
41794 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
41795 > var n3 = BigInteger(n2); // Return n2, unchanged
41797 The constructor form only takes an array and a sign. *n* must be an
41798 array of numbers in little-endian order, where each digit is between
0
41799 and BigInteger.base. The second parameter sets the sign: -
1 for
41800 negative, +
1 for positive, or
0 for zero. The array is *not copied and
41801 may be modified*. If the array contains only zeros, the sign parameter
41802 is ignored and is forced to zero.
41804 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
41808 n - Value to convert to a
<BigInteger>.
41812 A
<BigInteger> value.
41816 <parse>,
<BigInteger>
41818 function BigInteger(n, s, token) {
41819 if (token !== CONSTRUCT) {
41820 if (n instanceof BigInteger) {
41823 else if (typeof n === "undefined") {
41826 return BigInteger.parse(n);
41829 n = n || []; // Provide the nullary constructor for subclasses.
41830 while (n.length && !n[n.length -
1]) {
41834 this._s = n.length ? (s ||
1) :
0;
41837 BigInteger._construct = function(n, s) {
41838 return new BigInteger(n, s, CONSTRUCT);
41841 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
41842 // require base to be a power of
10.
10^
7 is the largest such power
41843 // that won't cause a precision loss when digits are multiplied.
41844 var BigInteger_base =
10000000;
41845 var BigInteger_base_log10 =
7;
41847 BigInteger.base = BigInteger_base;
41848 BigInteger.base_log10 = BigInteger_base_log10;
41850 var ZERO = new BigInteger([],
0, CONSTRUCT);
41853 BigInteger.ZERO = ZERO;
41855 var ONE = new BigInteger([
1],
1, CONSTRUCT);
41858 BigInteger.ONE = ONE;
41860 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
41862 //
<BigInteger> -
1.
41863 BigInteger.M_ONE = M_ONE;
41866 // Shortcut for
<ZERO>.
41867 BigInteger._0 = ZERO;
41870 // Shortcut for
<ONE>.
41871 BigInteger._1 = ONE;
41875 Array of
<BigIntegers> from
0 to
36.
41877 These are used internally for parsing, but useful when you need a "small"
41882 <ZERO>,
<ONE>,
<_0>,
<_1>
41884 BigInteger.small = [
41887 /* Assuming BigInteger_base
> 36 */
41888 new BigInteger( [
2],
1, CONSTRUCT),
41889 new BigInteger( [
3],
1, CONSTRUCT),
41890 new BigInteger( [
4],
1, CONSTRUCT),
41891 new BigInteger( [
5],
1, CONSTRUCT),
41892 new BigInteger( [
6],
1, CONSTRUCT),
41893 new BigInteger( [
7],
1, CONSTRUCT),
41894 new BigInteger( [
8],
1, CONSTRUCT),
41895 new BigInteger( [
9],
1, CONSTRUCT),
41896 new BigInteger([
10],
1, CONSTRUCT),
41897 new BigInteger([
11],
1, CONSTRUCT),
41898 new BigInteger([
12],
1, CONSTRUCT),
41899 new BigInteger([
13],
1, CONSTRUCT),
41900 new BigInteger([
14],
1, CONSTRUCT),
41901 new BigInteger([
15],
1, CONSTRUCT),
41902 new BigInteger([
16],
1, CONSTRUCT),
41903 new BigInteger([
17],
1, CONSTRUCT),
41904 new BigInteger([
18],
1, CONSTRUCT),
41905 new BigInteger([
19],
1, CONSTRUCT),
41906 new BigInteger([
20],
1, CONSTRUCT),
41907 new BigInteger([
21],
1, CONSTRUCT),
41908 new BigInteger([
22],
1, CONSTRUCT),
41909 new BigInteger([
23],
1, CONSTRUCT),
41910 new BigInteger([
24],
1, CONSTRUCT),
41911 new BigInteger([
25],
1, CONSTRUCT),
41912 new BigInteger([
26],
1, CONSTRUCT),
41913 new BigInteger([
27],
1, CONSTRUCT),
41914 new BigInteger([
28],
1, CONSTRUCT),
41915 new BigInteger([
29],
1, CONSTRUCT),
41916 new BigInteger([
30],
1, CONSTRUCT),
41917 new BigInteger([
31],
1, CONSTRUCT),
41918 new BigInteger([
32],
1, CONSTRUCT),
41919 new BigInteger([
33],
1, CONSTRUCT),
41920 new BigInteger([
34],
1, CONSTRUCT),
41921 new BigInteger([
35],
1, CONSTRUCT),
41922 new BigInteger([
36],
1, CONSTRUCT)
41925 // Used for parsing/radix conversion
41926 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
41930 Convert a
<BigInteger> to a string.
41932 When *base* is greater than
10, letters are upper case.
41936 base - Optional base to represent the number in (default is base
10).
41937 Must be between
2 and
36 inclusive, or an Error will be thrown.
41941 The string representation of the
<BigInteger>.
41943 BigInteger.prototype.toString = function(base) {
41944 base = +base ||
10;
41945 if (base <
2 || base
> 36) {
41946 throw new Error(
"illegal radix " + base +
".");
41948 if (this._s ===
0) {
41952 var str = this._s <
0 ?
"-" :
"";
41953 str += this._d[this._d.length -
1].toString();
41954 for (var i = this._d.length -
2; i
>=
0; i--) {
41955 var group = this._d[i].toString();
41956 while (group.length < BigInteger_base_log10) group = '
0' + group;
41962 var numerals = BigInteger.digits;
41963 base = BigInteger.small[base];
41964 var sign = this._s;
41966 var n = this.abs();
41970 while (n._s !==
0) {
41971 var divmod = n.divRem(base);
41974 // TODO: This could be changed to unshift instead of reversing at the end.
41975 // Benchmark both to compare speeds.
41976 digits.push(numerals[digit.valueOf()]);
41978 return (sign <
0 ? "-" : "") + digits.reverse().join("");
41982 // Verify strings for parsing
41983 BigInteger.radixRegex = [
42025 Parse a string into a
<BigInteger>.
42027 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
42028 *base* is not provided, it will be guessed based on the leading characters
42031 - "
0x" or "
0X": *base* =
16
42032 - "
0c" or "
0C": *base* =
8
42033 - "
0b" or "
0B": *base* =
2
42034 - else: *base* =
10
42036 If no base is provided, or *base* is
10, the number can be in exponential
42037 form. For example, these are all valid:
42039 > BigInteger.parse("
1e9"); // Same as "
1000000000"
42040 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
42041 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
42043 If any characters fall outside the range defined by the radix, an exception
42048 s - The string to parse.
42049 base - Optional radix (default is to guess based on *s*).
42053 a
<BigInteger> instance.
42055 BigInteger.parse = function(s, base) {
42056 // Expands a number in exponential form to decimal form.
42057 // expandExponential("-
13.441*
10^
5") === "
1344100";
42058 // expandExponential("
1.12300e-1") === "
0.112300";
42059 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
42060 function expandExponential(str) {
42061 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
42063 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
42066 var i = n.length + c;
42067 x = (l ? n : f).length;
42068 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
42069 var z = (new Array(c +
1)).join("
0");
42071 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
42076 if (typeof base === "undefined" || +base ===
10) {
42077 s = expandExponential(s);
42081 if (typeof base === "undefined") {
42082 prefixRE = '
0[xcb]';
42084 else if (base ==
16) {
42087 else if (base ==
8) {
42090 else if (base ==
2) {
42096 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
42098 var sign = parts[
1] || "+";
42099 var baseSection = parts[
2] || "";
42100 var digits = parts[
3] || "";
42102 if (typeof base === "undefined") {
42104 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
42107 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
42110 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
42117 else if (base <
2 || base
> 36) {
42118 throw new Error(
"Illegal radix " + base +
".");
42123 // Check for digits outside the range
42124 if (!(BigInteger.radixRegex[base].test(digits))) {
42125 throw new Error(
"Bad digit for radix " + base);
42128 // Strip leading zeros, and convert to array
42129 digits = digits.replace(/^
0+/,
"").split(
"");
42130 if (digits.length ===
0) {
42134 // Get the sign (we know it's not zero)
42135 sign = (sign ===
"-") ? -
1 :
1;
42140 while (digits.length
>= BigInteger_base_log10) {
42141 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
42143 d.push(parseInt(digits.join(''),
10));
42144 return new BigInteger(d, sign, CONSTRUCT);
42147 // Do the conversion
42149 base = BigInteger.small[base];
42150 var small = BigInteger.small;
42151 for (var i =
0; i < digits.length; i++) {
42152 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
42154 return new BigInteger(d._d, sign, CONSTRUCT);
42157 throw new Error("Invalid BigInteger format: " + s);
42163 Add two
<BigIntegers>.
42167 n - The number to add to *this*. Will be converted to a
<BigInteger>.
42171 The numbers added together.
42175 <subtract>,
<multiply>,
<quotient>,
<next>
42177 BigInteger.prototype.add = function(n) {
42178 if (this._s ===
0) {
42179 return BigInteger(n);
42186 if (this._s !== n._s) {
42188 return this.subtract(n);
42195 var sum = new Array(Math.max(al, bl) +
1);
42196 var size = Math.min(al, bl);
42200 for (var i =
0; i < size; i++) {
42201 digit = a[i] + b[i] + carry;
42202 sum[i] = digit % BigInteger_base;
42203 carry = (digit / BigInteger_base) |
0;
42209 for (i = size; carry && i < al; i++) {
42210 digit = a[i] + carry;
42211 sum[i] = digit % BigInteger_base;
42212 carry = (digit / BigInteger_base) |
0;
42218 for ( ; i < al; i++) {
42222 return new BigInteger(sum, this._s, CONSTRUCT);
42227 Get the additive inverse of a
<BigInteger>.
42231 A
<BigInteger> with the same magnatude, but with the opposite sign.
42237 BigInteger.prototype.negate = function() {
42238 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
42243 Get the absolute value of a
<BigInteger>.
42247 A
<BigInteger> with the same magnatude, but always positive (or zero).
42253 BigInteger.prototype.abs = function() {
42254 return (this._s <
0) ? this.negate() : this;
42259 Subtract two
<BigIntegers>.
42263 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
42267 The *n* subtracted from *this*.
42271 <add>,
<multiply>,
<quotient>,
<prev>
42273 BigInteger.prototype.subtract = function(n) {
42274 if (this._s ===
0) {
42275 return BigInteger(n).negate();
42282 if (this._s !== n._s) {
42284 return this.add(n);
42288 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
42290 m = new BigInteger(n._d,
1, CONSTRUCT);
42291 n = new BigInteger(this._d,
1, CONSTRUCT);
42294 // Both are positive =
> a - b
42295 var sign = m.compareAbs(n);
42299 else if (sign <
0) {
42311 var diff = new Array(al); // al
>= bl since a
> b
42316 for (i =
0; i < bl; i++) {
42317 digit = a[i] - borrow - b[i];
42319 digit += BigInteger_base;
42327 for (i = bl; i < al; i++) {
42328 digit = a[i] - borrow;
42330 digit += BigInteger_base;
42338 for ( ; i < al; i++) {
42342 return new BigInteger(diff, sign, CONSTRUCT);
42346 function addOne(n, sign) {
42348 var sum = a.slice();
42353 var digit = (a[i] ||
0) +
1;
42354 sum[i] = digit % BigInteger_base;
42355 if (digit <= BigInteger_base -
1) {
42361 return new BigInteger(sum, sign, CONSTRUCT);
42364 function subtractOne(n, sign) {
42366 var sum = a.slice();
42371 var digit = (a[i] ||
0) -
1;
42373 sum[i] = digit + BigInteger_base;
42382 return new BigInteger(sum, sign, CONSTRUCT);
42387 Get the next
<BigInteger> (add one).
42397 BigInteger.prototype.next = function() {
42402 return subtractOne(this, -
1);
42405 return addOne(this,
1);
42411 Get the previous
<BigInteger> (subtract one).
42421 BigInteger.prototype.prev = function() {
42426 return addOne(this, -
1);
42429 return subtractOne(this,
1);
42435 Function: compareAbs
42436 Compare the absolute value of two
<BigIntegers>.
42438 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
42442 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
42446 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
42452 BigInteger.prototype.compareAbs = function(n) {
42457 if (!(n instanceof BigInteger)) {
42458 if (!isFinite(n)) {
42459 return(isNaN(n) ? n : -
1);
42464 if (this._s ===
0) {
42465 return (n._s !==
0) ? -
1 :
0;
42471 var l = this._d.length;
42472 var nl = n._d.length;
42482 for (var i = l-
1; i
>=
0; i--) {
42483 if (a[i] !== b[i]) {
42484 return a[i] < b[i] ? -
1 :
1;
42493 Compare two
<BigIntegers>.
42497 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
42501 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
42505 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
42507 BigInteger.prototype.compare = function(n) {
42514 if (this._s ===
0) {
42518 if (this._s === n._s) { // both positive or both negative
42519 var cmp = this.compareAbs(n);
42520 return cmp * this._s;
42529 Return true iff *this* is either
1 or -
1.
42533 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
42537 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
42538 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
42540 BigInteger.prototype.isUnit = function() {
42541 return this === ONE ||
42543 (this._d.length ===
1 && this._d[
0] ===
1);
42548 Multiply two
<BigIntegers>.
42552 n - The number to multiply *this* by. Will be converted to a
42557 The numbers multiplied together.
42561 <add>,
<subtract>,
<quotient>,
<square>
42563 BigInteger.prototype.multiply = function(n) {
42564 // TODO: Consider adding Karatsuba multiplication for large numbers
42565 if (this._s ===
0) {
42573 if (this.isUnit()) {
42581 return this.negate();
42586 return this.square();
42589 var r = (this._d.length
>= n._d.length);
42590 var a = (r ? this : n)._d; // a will be longer than b
42591 var b = (r ? n : this)._d;
42596 var partial = new Array(pl);
42598 for (i =
0; i < pl; i++) {
42602 for (i =
0; i < bl; i++) {
42605 var jlimit = al + i;
42607 for (var j = i; j < jlimit; j++) {
42608 digit = partial[j] + bi * a[j - i] + carry;
42609 carry = (digit / BigInteger_base) |
0;
42610 partial[j] = (digit % BigInteger_base) |
0;
42613 digit = partial[j] + carry;
42614 carry = (digit / BigInteger_base) |
0;
42615 partial[j] = digit % BigInteger_base;
42618 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
42621 // Multiply a BigInteger by a single-digit native number
42622 // Assumes that this and n are
>=
0
42623 // This is not really intended to be used outside the library itself
42624 BigInteger.prototype.multiplySingleDigit = function(n) {
42625 if (n ===
0 || this._s ===
0) {
42633 if (this._d.length ===
1) {
42634 digit = this._d[
0] * n;
42635 if (digit
>= BigInteger_base) {
42636 return new BigInteger([(digit % BigInteger_base)|
0,
42637 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
42639 return new BigInteger([digit],
1, CONSTRUCT);
42643 return this.add(this);
42645 if (this.isUnit()) {
42646 return new BigInteger([n],
1, CONSTRUCT);
42653 var partial = new Array(pl);
42654 for (var i =
0; i < pl; i++) {
42659 for (var j =
0; j < al; j++) {
42660 digit = n * a[j] + carry;
42661 carry = (digit / BigInteger_base) |
0;
42662 partial[j] = (digit % BigInteger_base) |
0;
42665 partial[j] = carry;
42668 return new BigInteger(partial,
1, CONSTRUCT);
42673 Multiply a
<BigInteger> by itself.
42675 This is slightly faster than regular multiplication, since it removes the
42676 duplicated multiplcations.
42680 > this.multiply(this)
42685 BigInteger.prototype.square = function() {
42686 // Normally, squaring a
10-digit number would take
100 multiplications.
42687 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
42688 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
42689 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
42691 if (this._s ===
0) {
42694 if (this.isUnit()) {
42698 var digits = this._d;
42699 var length = digits.length;
42700 var imult1 = new Array(length + length +
1);
42701 var product, carry, k;
42704 // Calculate diagonal
42705 for (i =
0; i < length; i++) {
42707 product = digits[i] * digits[i];
42708 carry = (product / BigInteger_base) |
0;
42709 imult1[k] = product % BigInteger_base;
42710 imult1[k +
1] = carry;
42713 // Calculate repeating part
42714 for (i =
0; i < length; i++) {
42717 for (var j = i +
1; j < length; j++, k++) {
42718 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
42719 carry = (product / BigInteger_base) |
0;
42720 imult1[k] = product % BigInteger_base;
42723 var digit = carry + imult1[k];
42724 carry = (digit / BigInteger_base) |
0;
42725 imult1[k] = digit % BigInteger_base;
42726 imult1[k +
1] += carry;
42729 return new BigInteger(imult1,
1, CONSTRUCT);
42734 Divide two
<BigIntegers> and truncate towards zero.
42736 <quotient> throws an exception if *n* is zero.
42740 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
42744 The *this* / *n*, truncated to an integer.
42748 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
42750 BigInteger.prototype.quotient = function(n) {
42751 return this.divRem(n)[
0];
42756 Deprecated synonym for
<quotient>.
42758 BigInteger.prototype.divide = BigInteger.prototype.quotient;
42761 Function: remainder
42762 Calculate the remainder of two
<BigIntegers>.
42764 <remainder> throws an exception if *n* is zero.
42768 n - The remainder after *this* is divided *this* by *n*. Will be
42769 converted to a
<BigInteger>.
42777 <divRem>,
<quotient>
42779 BigInteger.prototype.remainder = function(n) {
42780 return this.divRem(n)[
1];
42785 Calculate the integer quotient and remainder of two
<BigIntegers>.
42787 <divRem> throws an exception if *n* is zero.
42791 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
42795 A two-element array containing the quotient and the remainder.
42799 is exactly equivalent to
42801 > [a.quotient(b), a.remainder(b)]
42803 except it is faster, because they are calculated at the same time.
42807 <quotient>,
<remainder>
42809 BigInteger.prototype.divRem = function(n) {
42812 throw new Error("Divide by zero");
42814 if (this._s ===
0) {
42815 return [ZERO, ZERO];
42817 if (n._d.length ===
1) {
42818 return this.divRemSmall(n._s * n._d[
0]);
42821 // Test for easy cases -- |n1| <= |n2|
42822 switch (this.compareAbs(n)) {
42823 case
0: // n1 == n2
42824 return [this._s === n._s ? ONE : M_ONE, ZERO];
42825 case -
1: // |n1| < |n2|
42826 return [ZERO, this];
42829 var sign = this._s * n._s;
42831 var b_digits = this._d;
42832 var b_index = b_digits.length;
42833 var digits = n._d.length;
42837 var part = new BigInteger([],
0, CONSTRUCT);
42840 part._d.unshift(b_digits[--b_index]);
42841 part = new BigInteger(part._d,
1, CONSTRUCT);
42843 if (part.compareAbs(n) <
0) {
42847 if (part._s ===
0) {
42851 var xlen = part._d.length, ylen = a._d.length;
42852 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
42853 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
42854 if (part._d.length
> a._d.length) {
42855 // The length of part._d can either match a._d length,
42856 // or exceed it by one.
42857 highx = (highx+
1)*BigInteger_base;
42859 guess = Math.ceil(highx/highy);
42862 var check = a.multiplySingleDigit(guess);
42863 if (check.compareAbs(part) <=
0) {
42873 var diff = part.subtract(check);
42874 part._d = diff._d.slice();
42877 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
42878 new BigInteger(part._d, this._s, CONSTRUCT)];
42881 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
42882 // [
1, BigInteger.base). It's not necessary to call this, since the
42883 // other division functions will call it if they are able to.
42884 BigInteger.prototype.divRemSmall = function(n) {
42888 throw new Error("Divide by zero");
42891 var n_s = n <
0 ? -
1 :
1;
42892 var sign = this._s * n_s;
42895 if (n <
1 || n
>= BigInteger_base) {
42896 throw new Error("Argument out of range");
42899 if (this._s ===
0) {
42900 return [ZERO, ZERO];
42903 if (n ===
1 || n === -
1) {
42904 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
42907 //
2 <= n < BigInteger_base
42909 // divide a single digit by a single digit
42910 if (this._d.length ===
1) {
42911 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
42912 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
42922 var digits = this._d.slice();
42923 var quot = new Array(digits.length);
42929 while (digits.length) {
42930 part = part * BigInteger_base + digits[digits.length -
1];
42934 diff = BigInteger_base * diff + part;
42941 guess = (part / n) |
0;
42944 var check = n * guess;
42945 diff = part - check;
42956 r = new BigInteger([diff],
1, CONSTRUCT);
42960 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
42965 Return true iff *this* is divisible by two.
42967 Note that
<BigInteger.ZERO
> is even.
42971 true if *this* is even, false otherwise.
42977 BigInteger.prototype.isEven = function() {
42978 var digits = this._d;
42979 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
42984 Return true iff *this* is not divisible by two.
42988 true if *this* is odd, false otherwise.
42994 BigInteger.prototype.isOdd = function() {
42995 return !this.isEven();
43000 Get the sign of a
<BigInteger>.
43010 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
43012 BigInteger.prototype.sign = function() {
43017 Function: isPositive
43018 Return true iff *this*
> 0.
43022 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
43026 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
43028 BigInteger.prototype.isPositive = function() {
43029 return this._s
> 0;
43033 Function: isNegative
43034 Return true iff *this* <
0.
43038 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
43042 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
43044 BigInteger.prototype.isNegative = function() {
43045 return this._s <
0;
43050 Return true iff *this* ==
0.
43054 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
43058 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
43060 BigInteger.prototype.isZero = function() {
43061 return this._s ===
0;
43066 Multiply a
<BigInteger> by a power of
10.
43068 This is equivalent to, but faster than
43071 > return this.multiply(BigInteger("
1e" + n));
43074 > return this.quotient(BigInteger("
1e" + -n));
43079 n - The power of
10 to multiply *this* by. *n* is converted to a
43080 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
43081 (
0x7FFFFFFF), or an exception will be thrown.
43085 *this* * (
10 ** *n*), truncated to an integer if necessary.
43091 BigInteger.prototype.exp10 = function(n) {
43096 if (Math.abs(n)
> Number(MAX_EXP)) {
43097 throw new Error("exponent too large in BigInteger.exp10");
43099 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
43100 if (this._s ===
0) {
43104 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
43106 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
43112 k = k.multiplySingleDigit(Math.pow(
10, n));
43113 return (this._s <
0 ? k.negate() : k);
43114 } else if (-n
>= this._d.length*BigInteger_base_log10) {
43117 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
43119 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
43122 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
43128 Raise a
<BigInteger> to a power.
43130 In this implementation,
0**
0 is
1.
43134 n - The exponent to raise *this* by. *n* must be no greater than
43135 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
43139 *this* raised to the *nth* power.
43145 BigInteger.prototype.pow = function(n) {
43146 if (this.isUnit()) {
43151 return BigInteger(n).isOdd() ? this : this.negate();
43159 else if (n._s <
0) {
43160 if (this._s ===
0) {
43161 throw new Error(
"Divide by zero");
43167 if (this._s ===
0) {
43174 if (n.compareAbs(MAX_EXP)
> 0) {
43175 throw new Error(
"exponent too large in BigInteger.pow");
43179 var two = BigInteger.small[
2];
43181 while (n.isPositive()) {
43183 aux = aux.multiply(x);
43189 n = n.quotient(two);
43197 Raise a
<BigInteger> to a power (mod m).
43199 Because it is reduced by a modulus,
<modPow> is not limited by
43200 <BigInteger.MAX_EXP
> like
<pow>.
43204 exponent - The exponent to raise *this* by. Must be positive.
43205 modulus - The modulus.
43209 *this* ^ *exponent* (mod *modulus*).
43215 BigInteger.prototype.modPow = function(exponent, modulus) {
43219 while (exponent.isPositive()) {
43220 if (exponent.isOdd()) {
43221 result = result.multiply(base).remainder(modulus);
43224 exponent = exponent.quotient(BigInteger.small[
2]);
43225 if (exponent.isPositive()) {
43226 base = base.square().remainder(modulus);
43235 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
43237 This is equivalent to
43239 > Math.log(this.toJSValue())
43241 but handles values outside of the native number range.
43251 BigInteger.prototype.log = function() {
43253 case
0: return -Infinity;
43254 case -
1: return NaN;
43255 default: // Fall through.
43258 var l = this._d.length;
43260 if (l*BigInteger_base_log10 <
30) {
43261 return Math.log(this.valueOf());
43264 var N = Math.ceil(
30/BigInteger_base_log10);
43265 var firstNdigits = this._d.slice(l - N);
43266 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
43271 Convert a
<BigInteger> to a native JavaScript integer.
43273 This is called automatically by JavaScipt to convert a
<BigInteger> to a
43278 > parseInt(this.toString(),
10)
43282 <toString>,
<toJSValue>
43284 BigInteger.prototype.valueOf = function() {
43285 return parseInt(this.toString(),
10);
43289 Function: toJSValue
43290 Convert a
<BigInteger> to a native JavaScript integer.
43292 This is the same as valueOf, but more explicitly named.
43296 > parseInt(this.toString(),
10)
43300 <toString>,
<valueOf>
43302 BigInteger.prototype.toJSValue = function() {
43303 return parseInt(this.toString(),
10);
43306 var MAX_EXP = BigInteger(
0x7FFFFFFF);
43307 // Constant: MAX_EXP
43308 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
43309 BigInteger.MAX_EXP = MAX_EXP;
43312 function makeUnary(fn) {
43313 return function(a) {
43314 return fn.call(BigInteger(a));
43318 function makeBinary(fn) {
43319 return function(a, b) {
43320 return fn.call(BigInteger(a), BigInteger(b));
43324 function makeTrinary(fn) {
43325 return function(a, b, c) {
43326 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
43332 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
43333 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
43334 var trinary = ["modPow"];
43336 for (i =
0; i < unary.length; i++) {
43338 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
43341 for (i =
0; i < binary.length; i++) {
43343 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
43346 for (i =
0; i < trinary.length; i++) {
43348 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
43351 BigInteger.exp10 = function(x, n) {
43352 return BigInteger(x).exp10(n);
43357 exports.BigInteger = BigInteger;
43358 })(typeof exports !== 'undefined' ? exports : this);
43360 <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){
43361 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;
43363 },{}],
2:[function(require,module,exports){
43364 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;
43366 },{"./scoring":
6}],
3:[function(require,module,exports){
43367 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(","),
43368 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(","),
43369 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(","),
43370 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(","),
43371 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;
43373 },{}],
4:[function(require,module,exports){
43374 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;
43376 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
43377 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;
43379 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
43380 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;
43382 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
43383 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;
43387 //# sourceMappingURL=zxcvbn.js.map
43390 * Detects entropy from a string.
43397 * hexadecimal [
0-
9A-F]
43398 * card [A2-
9TJQK][CDHS]
43400 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
43401 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
43405 window.Entropy = new (function() {
43407 var TWO = new BigInteger(
2);
43409 // matchers returns an array of the matched events for each type of entropy.
43411 // matchers.binary("
010") returns ["
0", "
1", "
0"]
43412 // matchers.binary("a10") returns ["
1", "
0"]
43413 // matchers.hex("a10") returns ["a", "
1", "
0"]
43415 binary: function(str) {
43416 return str.match(/[
0-
1]/gi) || [];
43418 base6: function(str) {
43419 return str.match(/[
0-
5]/gi) || [];
43421 dice: function(str) {
43422 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
43424 base10: function(str) {
43425 return str.match(/[
0-
9]/gi) || [];
43427 hex: function(str) {
43428 return str.match(/[
0-
9A-F]/gi) || [];
43430 card: function(str) {
43431 // Format is NumberSuit, eg
43432 // AH ace of hearts
43433 //
8C eight of clubs
43434 // TD ten of diamonds
43435 // JS jack of spades
43436 // QH queen of hearts
43437 // KC king of clubs
43438 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
43442 // Convert array of cards from ["ac", "
4d", "ks"]
43443 // to numbers between
0 and
51 [
0,
16,
51]
43444 function convertCardsToInts(cards) {
43446 var values = "a23456789tjqk";
43447 var suits = "cdhs";
43448 for (var i=
0; i
<cards.length; i++) {
43449 var card = cards[i].toLowerCase();
43450 var value = card[
0];
43451 var suit = card[
1];
43452 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
43458 this.fromString = function(rawEntropyStr) {
43459 // Find type of entropy being used (binary, hex, dice etc)
43460 var base = getBase(rawEntropyStr);
43461 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
43462 // This is done by changing all
6s to
0s
43463 if (base.str ==
"dice") {
43466 for (var i=
0; i
<base.parts.length; i++) {
43467 var c = base.parts[i];
43468 if (
"12345".indexOf(c)
> -
1) {
43469 newParts[i] = base.parts[i];
43470 newInts[i] = base.ints[i];
43477 base.str = "base
6 (dice)";
43478 base.ints = newInts;
43479 base.parts = newParts;
43480 base.matcher = matchers.base6;
43482 // Detect empty entropy
43483 if (base.parts.length ==
0) {
43491 // Convert base.ints to BigInteger.
43492 // Due to using unusual bases, eg cards of base52, this is not as simple as
43493 // using BigInteger.parse()
43494 var entropyInt = BigInteger.ZERO;
43495 for (var i=base.ints.length-
1; i
>=
0; i--) {
43496 var thisInt = BigInteger.parse(base.ints[i]);
43497 var power = (base.ints.length -
1) - i;
43498 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
43499 entropyInt = entropyInt.add(additionalEntropy);
43501 // Convert entropy to binary
43502 var entropyBin = entropyInt.toString(
2);
43503 // If the first integer is small, it must be padded with zeros.
43504 // Otherwise the chance of the first bit being
1 is
100%, which is
43505 // obviously incorrect.
43506 // This is not perfect for non-
2^n bases.
43507 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
43508 while (entropyBin.length < expectedBits) {
43509 entropyBin = "
0" + entropyBin;
43511 // Calculate the number of bits per event
43512 var bitsPerEvent = Math.log2(base.asInt);
43513 // Cards binary must be handled differently, since they're not replaced
43514 if (base.asInt ==
52) {
43515 var cardEntropy = processCardEntropy(base.parts);
43516 entropyBin = cardEntropy.binaryStr;
43517 bitsPerEvent = cardEntropy.bitsPerEvent;
43519 // Supply a 'filtered' entropy string for display purposes
43520 var entropyClean = base.parts.join("");
43521 var entropyHtml = base.parts.join("");
43522 if (base.asInt ==
52) {
43523 entropyClean = base.parts.join(" ").toUpperCase();
43524 entropyClean = entropyClean.replace(/C/g, "\u2663");
43525 entropyClean = entropyClean.replace(/D/g, "\u2666");
43526 entropyClean = entropyClean.replace(/H/g, "\u2665");
43527 entropyClean = entropyClean.replace(/S/g, "\u2660");
43528 entropyHtml = base.parts.join(" ").toUpperCase();
43529 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
43530 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
43531 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
43532 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
43534 // Return the result
43536 binaryStr: entropyBin,
43537 cleanStr: entropyClean,
43538 cleanHtml: entropyHtml,
43539 bitsPerEvent: bitsPerEvent,
43545 function getSortedDeck() {
43547 var suits = "CDHS
";
43548 var values = "A23456789TJQK
";
43549 for (var i=0; i<suits.length; i++) {
43550 for (var j=0; j<values.length; j++) {
43551 s.push(values[j]+suits[i]);
43557 function getBase(str) {
43558 // Need to get the lowest base for the supplied entropy.
43559 // This prevents interpreting, say, dice rolls as hexadecimal.
43560 var binaryMatches = matchers.binary(str);
43561 var hexMatches = matchers.hex(str);
43562 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
43563 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
43564 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
43567 parts: binaryMatches,
43568 matcher: matchers.binary,
43573 var cardMatches = matchers.card(str);
43574 if (cardMatches.length >= hexMatches.length / 2) {
43575 var ints = convertCardsToInts(cardMatches);
43578 parts: cardMatches,
43579 matcher: matchers.card,
43584 var diceMatches = matchers.dice(str);
43585 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
43586 var ints = diceMatches.map(function(i) { return parseInt(i) });
43589 parts: diceMatches,
43590 matcher: matchers.dice,
43595 var base6Matches = matchers.base6(str);
43596 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
43597 var ints = base6Matches.map(function(i) { return parseInt(i) });
43600 parts: base6Matches,
43601 matcher: matchers.base6,
43606 var base10Matches = matchers.base10(str);
43607 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
43608 var ints = base10Matches.map(function(i) { return parseInt(i) });
43611 parts: base10Matches,
43612 matcher: matchers.base10,
43617 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
43621 matcher: matchers.hex,
43623 str:
"hexadecimal",
43627 // Assume cards are NOT replaced.
43628 // Additional entropy decreases as more cards are used. This means
43629 // total possible entropy is measured using n!, not base^n.
43630 // eg the second last card can be only one of two, not one of fifty two
43631 // so the added entropy for that card is only one bit at most
43632 function processCardEntropy(cards) {
43633 // Track how many instances of each card have been used, and thus
43634 // how many decks are in use.
43635 var cardCounts = {};
43636 var numberOfDecks =
0;
43637 // Work out number of decks by max(duplicates)
43638 for (var i=
0; i
<cards.length; i++) {
43639 // Get the card that was drawn
43640 var cardLower = cards[i];
43641 var card = cardLower.toUpperCase();
43642 // Initialize the count for this card if needed
43643 if (!(card in cardCounts)) {
43644 cardCounts[card] =
0;
43646 cardCounts[card] +=
1;
43647 // See if this is max(duplicates)
43648 if (cardCounts[card]
> numberOfDecks) {
43649 numberOfDecks = cardCounts[card];
43652 // Work out the total number of bits for this many decks
43653 // See http://crypto.stackexchange.com/q/
41886
43654 var gainedBits =
0;
43655 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
43656 // which becomes infinity for numberOfDecks
> 4
43657 for (var i=
1; i<=
52*numberOfDecks; i++) {
43658 gainedBits = gainedBits + Math.log2(i);
43660 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
43661 var maxBits = gainedBits - lostBits;
43662 // Convert the drawn cards to a binary representation.
43663 // The exact technique for doing this is unclear.
43665 // http://crypto.stackexchange.com/a/
41896
43666 //
"I even doubt that this is well defined (only the average entropy
43667 // is, I believe)."
43669 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
43670 //
"The binary representation can be the first log(permutations,2) bits
43671 // of the sha-2 hash of the normalized deck string."
43673 // In this specific implementation, the first N bits of the hash of the
43674 // normalized cards string is being used. Uppercase, no spaces; eg
43675 // sha256(
"AH8DQSTC2H")
43676 var totalCards = numberOfDecks *
52;
43677 var percentUsed = cards.length / totalCards;
43678 // Calculate the average number of bits of entropy for the number of
43680 var numberOfBits = Math.floor(maxBits * percentUsed);
43681 // Create a normalized string of the selected cards
43682 var normalizedCards = cards.join(
"").toUpperCase();
43683 // Convert to binary using the SHA256 hash of the normalized cards.
43684 // If the number of bits is more than
256, multiple hashes
43685 // are used until the required number of bits is reached.
43686 var entropyBin =
"";
43687 var iterations =
0;
43688 while (entropyBin.length < numberOfBits) {
43689 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
43690 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
43691 for (var i=
0; i
<hashHex.length; i++) {
43692 var decimal = parseInt(hashHex[i],
16);
43693 var binary = decimal.toString(
2);
43694 while (binary.length <
4) {
43695 binary =
"0" + binary;
43697 entropyBin = entropyBin + binary;
43699 iterations = iterations +
1;
43701 // Truncate to the appropriate number of bits.
43702 entropyBin = entropyBin.substring(
0, numberOfBits);
43703 // Get the number of bits per event
43704 bitsPerEvent = maxBits / totalCards;
43706 binaryStr: entropyBin,
43707 bitsPerEvent: bitsPerEvent,
43711 // Polyfill for Math.log2
43712 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
43713 Math.log2 = Math.log2 || function(x) {
43714 // The polyfill isn't good enough because of the poor accuracy of
43716 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
43717 // So instead use the BigInteger library to get it right.
43718 return BigInteger.log(x) / BigInteger.log(
2);
43721 // Depends on BigInteger
43722 function factorial(n) {
43726 f = BigInteger.ONE;
43727 for (var i=
1; i<=n; i++) {
43728 f = f.multiply(new BigInteger(i));
43735 <script>(function() {
43737 // mnemonics is populated as required by getLanguage
43738 var mnemonics = { "english": new Mnemonic("english") };
43739 var mnemonic = mnemonics["english"];
43741 var bip32RootKey = null;
43742 var bip32ExtendedKey = null;
43743 var network = bitcoin.networks.bitcoin;
43744 var addressRowTemplate = $("#address-row-template");
43746 var showIndex = true;
43747 var showAddress = true;
43748 var showPubKey = true;
43749 var showPrivKey = true;
43750 var showQr = false;
43752 var entropyChangeTimeoutEvent = null;
43753 var phraseChangeTimeoutEvent = null;
43754 var rootKeyChangedTimeoutEvent = null;
43756 var generationProcesses = [];
43759 DOM.network = $(".network");
43760 DOM.bip32Client = $("#bip32-client");
43761 DOM.phraseNetwork = $("#network-phrase");
43762 DOM.useEntropy = $(".use-entropy");
43763 DOM.entropyContainer = $(".entropy-container");
43764 DOM.entropy = $(".entropy");
43765 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
43766 DOM.entropyType = DOM.entropyContainer.find(".type");
43767 DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
43768 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
43769 DOM.entropyBits = DOM.entropyContainer.find(".bits");
43770 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
43771 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
43772 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
43773 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
43774 DOM.phrase = $(".phrase");
43775 DOM.passphrase = $(".passphrase");
43776 DOM.generateContainer = $(".generate-container");
43777 DOM.generate = $(".generate");
43778 DOM.seed = $(".seed");
43779 DOM.rootKey = $(".root-key");
43780 DOM.extendedPrivKey = $(".extended-priv-key");
43781 DOM.extendedPubKey = $(".extended-pub-key");
43782 DOM.bip32tab = $("#bip32-tab");
43783 DOM.bip44tab = $("#bip44-tab");
43784 DOM.bip32panel = $("#bip32");
43785 DOM.bip44panel = $("#bip44");
43786 DOM.bip32path = $("#bip32-path");
43787 DOM.bip44path = $("#bip44-path");
43788 DOM.bip44purpose = $("#bip44 .purpose");
43789 DOM.bip44coin = $("#bip44 .coin");
43790 DOM.bip44account = $("#bip44 .account");
43791 DOM.bip44accountXprv = $("#bip44 .account-xprv");
43792 DOM.bip44accountXpub = $("#bip44 .account-xpub");
43793 DOM.bip44change = $("#bip44 .change");
43794 DOM.generatedStrength = $(".generate-container .strength");
43795 DOM.hardenedAddresses = $(".hardened-addresses");
43796 DOM.addresses = $(".addresses");
43797 DOM.rowsToAdd = $(".rows-to-add");
43798 DOM.more = $(".more");
43799 DOM.feedback = $(".feedback");
43800 DOM.tab = $(".derivation-type a");
43801 DOM.indexToggle = $(".index-toggle");
43802 DOM.addressToggle = $(".address-toggle");
43803 DOM.publicKeyToggle = $(".public-key-toggle");
43804 DOM.privateKeyToggle = $(".private-key-toggle");
43805 DOM.languages = $(".languages a");
43806 DOM.qrContainer = $(".qr-container");
43807 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
43808 DOM.qrImage = DOM.qrContainer.find(".qr-image");
43809 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
43810 DOM.showQrEls = $("[data-show-qr]");
43814 DOM.network.on("change", networkChanged);
43815 DOM.bip32Client.on("change", bip32ClientChanged);
43816 DOM.useEntropy.on("change", setEntropyVisibility);
43817 DOM.entropy.on("input", delayedEntropyChanged);
43818 DOM.entropyMnemonicLength.on("change", entropyChanged);
43819 DOM.phrase.on("input", delayedPhraseChanged);
43820 DOM.passphrase.on("input", delayedPhraseChanged);
43821 DOM.generate.on("click", generateClicked);
43822 DOM.more.on("click", showMore);
43823 DOM.rootKey.on("input", delayedRootKeyChanged);
43824 DOM.bip32path.on("input", calcForDerivationPath);
43825 DOM.bip44purpose.on("input", calcForDerivationPath);
43826 DOM.bip44coin.on("input", calcForDerivationPath);
43827 DOM.bip44account.on("input", calcForDerivationPath);
43828 DOM.bip44change.on("input", calcForDerivationPath);
43829 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
43830 DOM.hardenedAddresses.on("change", calcForDerivationPath);
43831 DOM.indexToggle.on("click", toggleIndexes);
43832 DOM.addressToggle.on("click", toggleAddresses);
43833 DOM.publicKeyToggle.on("click", togglePublicKeys);
43834 DOM.privateKeyToggle.on("click", togglePrivateKeys);
43835 DOM.languages.on("click", languageChanged);
43836 setQrEvents(DOM.showQrEls);
43839 hideValidationError();
43840 populateNetworkSelect();
43841 populateClientSelect();
43846 function networkChanged(e) {
43847 var networkIndex = e.target.value;
43848 networks[networkIndex].onSelect();
43849 if (seed != null) {
43857 function bip32ClientChanged(e) {
43858 var clientIndex = DOM.bip32Client.val();
43859 if (clientIndex == "custom") {
43860 DOM.bip32path.prop("readonly", false);
43863 DOM.bip32path.prop("readonly", true);
43864 clients[clientIndex].onSelect();
43865 if (seed != null) {
43874 function setEntropyVisibility() {
43875 if (isUsingOwnEntropy()) {
43876 DOM.entropyContainer.removeClass("hidden");
43877 DOM.generateContainer.addClass("hidden");
43878 DOM.phrase.prop("readonly", true);
43879 DOM.entropy.focus();
43883 DOM.entropyContainer.addClass("hidden");
43884 DOM.generateContainer.removeClass("hidden");
43885 DOM.phrase.prop("readonly", false);
43890 function delayedPhraseChanged() {
43891 hideValidationError();
43893 if (phraseChangeTimeoutEvent != null) {
43894 clearTimeout(phraseChangeTimeoutEvent);
43896 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
43899 function phraseChanged() {
43901 hideValidationError();
43902 setMnemonicLanguage();
43903 // Get the mnemonic phrase
43904 var phrase = DOM.phrase.val();
43905 var errorText = findPhraseErrors(phrase);
43907 showValidationError(errorText);
43910 // Calculate and display
43911 var passphrase = DOM.passphrase.val();
43912 calcBip32RootKeyFromSeed(phrase, passphrase);
43913 calcForDerivationPath();
43917 function delayedEntropyChanged() {
43918 hideValidationError();
43920 if (entropyChangeTimeoutEvent != null) {
43921 clearTimeout(entropyChangeTimeoutEvent);
43923 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
43926 function entropyChanged() {
43927 // If blank entropy, clear mnemonic, addresses, errors
43928 if (DOM.entropy.val().trim().length ==
0) {
43930 clearEntropyFeedback();
43931 DOM.phrase.val("");
43932 showValidationError("Blank entropy");
43935 // Get the current phrase to detect changes
43936 var phrase = DOM.phrase.val();
43937 // Set the phrase from the entropy
43938 setMnemonicFromEntropy();
43939 // Recalc addresses if the phrase has changed
43940 var newPhrase = DOM.phrase.val();
43941 if (newPhrase != phrase) {
43942 if (newPhrase.length ==
0) {
43954 function delayedRootKeyChanged() {
43955 // Warn if there is an existing mnemonic or passphrase.
43956 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
43957 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
43958 DOM.rootKey.val(bip32RootKey);
43962 hideValidationError();
43964 // Clear existing mnemonic and passphrase
43965 DOM.phrase.val(
"");
43966 DOM.passphrase.val(
"");
43968 if (rootKeyChangedTimeoutEvent != null) {
43969 clearTimeout(rootKeyChangedTimeoutEvent);
43971 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
43974 function rootKeyChanged() {
43976 hideValidationError();
43977 // Validate the root key TODO
43978 var rootKeyBase58 = DOM.rootKey.val();
43979 var errorText = validateRootKey(rootKeyBase58);
43981 showValidationError(errorText);
43984 // Calculate and display
43985 calcBip32RootKeyFromBase58(rootKeyBase58);
43986 calcForDerivationPath();
43989 function calcForDerivationPath() {
43991 clearAddressesList();
43992 hideValidationError();
43993 // Get the derivation path
43994 var derivationPath = getDerivationPath();
43995 var errorText = findDerivationPathErrors(derivationPath);
43997 showValidationError(errorText);
44000 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
44001 if (bip44TabSelected()) {
44002 displayBip44Info();
44004 displayBip32Info();
44008 function generateClicked() {
44009 if (isUsingOwnEntropy()) {
44014 setTimeout(function() {
44015 setMnemonicLanguage();
44016 var phrase = generateRandomPhrase();
44024 function languageChanged() {
44025 setTimeout(function() {
44026 setMnemonicLanguage();
44027 if (DOM.phrase.val().length
> 0) {
44028 var newPhrase = convertPhraseToNewLanguage();
44029 DOM.phrase.val(newPhrase);
44033 DOM.generate.trigger(
"click");
44038 function toggleIndexes() {
44039 showIndex = !showIndex;
44040 $(
"td.index span").toggleClass(
"invisible");
44043 function toggleAddresses() {
44044 showAddress = !showAddress;
44045 $(
"td.address span").toggleClass(
"invisible");
44048 function togglePublicKeys() {
44049 showPubKey = !showPubKey;
44050 $(
"td.pubkey span").toggleClass(
"invisible");
44053 function togglePrivateKeys() {
44054 showPrivKey = !showPrivKey;
44055 $(
"td.privkey span").toggleClass(
"invisible");
44060 function generateRandomPhrase() {
44061 if (!hasStrongRandom()) {
44062 var errorText =
"This browser does not support strong randomness";
44063 showValidationError(errorText);
44066 var numWords = parseInt(DOM.generatedStrength.val());
44067 var strength = numWords /
3 *
32;
44068 var words = mnemonic.generate(strength);
44069 DOM.phrase.val(words);
44073 function calcBip32RootKeyFromSeed(phrase, passphrase) {
44074 seed = mnemonic.toSeed(phrase, passphrase);
44075 bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
44078 function calcBip32RootKeyFromBase58(rootKeyBase58) {
44079 bip32RootKey = bitcoin.HDNode.fromBase58(rootKeyBase58, network);
44082 function calcBip32ExtendedKey(path) {
44083 // Check there's a root key to derive from
44084 if (!bip32RootKey) {
44085 return bip32RootKey;
44087 var extendedKey = bip32RootKey;
44088 // Derive the key from the path
44089 var pathBits = path.split(
"/");
44090 for (var i=
0; i
<pathBits.length; i++) {
44091 var bit = pathBits[i];
44092 var index = parseInt(bit);
44093 if (isNaN(index)) {
44096 var hardened = bit[bit.length-
1] ==
"'";
44097 var isPriv =
"privKey" in extendedKey;
44098 var invalidDerivationPath = hardened && !isPriv;
44099 if (invalidDerivationPath) {
44100 extendedKey = null;
44102 else if (hardened) {
44103 extendedKey = extendedKey.deriveHardened(index);
44106 extendedKey = extendedKey.derive(index);
44112 function showValidationError(errorText) {
44118 function hideValidationError() {
44124 function findPhraseErrors(phrase) {
44125 // Preprocess the words
44126 phrase = mnemonic.normalizeString(phrase);
44127 var words = phraseToWordArray(phrase);
44128 // Detect blank phrase
44129 if (words.length ==
0) {
44130 return
"Blank mnemonic";
44133 for (var i=
0; i
<words.length; i++) {
44134 var word = words[i];
44135 var language = getLanguage();
44136 if (WORDLISTS[language].indexOf(word) == -
1) {
44137 console.log(
"Finding closest match to " + word);
44138 var nearestWord = findNearestWord(word);
44139 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
44142 // Check the words are valid
44143 var properPhrase = wordArrayToPhrase(words);
44144 var isValid = mnemonic.check(properPhrase);
44146 return
"Invalid mnemonic";
44151 function validateRootKey(rootKeyBase58) {
44153 bitcoin.HDNode.fromBase58(rootKeyBase58);
44156 return
"Invalid root key";
44161 function getDerivationPath() {
44162 if (bip44TabSelected()) {
44163 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
44164 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
44165 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
44166 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
44168 path += purpose +
"'/";
44169 path += coin +
"'/";
44170 path += account +
"'/";
44172 DOM.bip44path.val(path);
44173 var derivationPath = DOM.bip44path.val();
44174 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
44175 return derivationPath;
44177 else if (bip32TabSelected()) {
44178 var derivationPath = DOM.bip32path.val();
44179 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
44180 return derivationPath;
44183 console.log(
"Unknown derivation path");
44187 function findDerivationPathErrors(path) {
44188 // TODO is not perfect but is better than nothing
44190 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
44192 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
44193 var maxDepth =
255; // TODO verify this!!
44194 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
44195 if (path[
0] !=
"m") {
44196 return
"First character must be 'm'";
44198 if (path.length
> 1) {
44199 if (path[
1] !=
"/") {
44200 return
"Separator must be '/'";
44202 var indexes = path.split(
"/");
44203 if (indexes.length
> maxDepth) {
44204 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
44206 for (var depth =
1; depth
<indexes.length; depth++) {
44207 var index = indexes[depth];
44208 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
44209 if (invalidChars.length
> 0) {
44210 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
44212 var indexValue = parseInt(index.replace(
"'",
""));
44213 if (isNaN(depth)) {
44214 return
"Invalid number at depth " + depth;
44216 if (indexValue
> maxIndexValue) {
44217 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
44221 // Check root key exists or else derivation path is useless!
44222 if (!bip32RootKey) {
44223 return "No root key";
44225 // Check no hardened derivation path when using xpub keys
44226 var hardened = path.indexOf("'")
> -
1;
44227 var isXpubkey = !("privKey" in bip32RootKey);
44228 if (hardened && isXpubkey) {
44229 return "Hardened derivation path is invalid with xpub key";
44234 function displayBip44Info() {
44235 // Get the derivation path for the account
44236 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
44237 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
44238 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
44240 path += purpose + "'/";
44241 path += coin + "'/";
44242 path += account + "'/";
44243 // Calculate the account extended keys
44244 var accountExtendedKey = calcBip32ExtendedKey(path);
44245 var accountXprv = accountExtendedKey.toBase58();
44246 var accountXpub = accountExtendedKey.toBase58(false);
44247 // Display the extended keys
44248 DOM.bip44accountXprv.val(accountXprv);
44249 DOM.bip44accountXpub.val(accountXpub);
44252 function displayBip32Info() {
44254 DOM.seed.val(seed);
44255 var rootKey = bip32RootKey.toBase58();
44256 DOM.rootKey.val(rootKey);
44257 var xprvkeyB58 = "NA";
44258 if (bip32ExtendedKey.privKey) {
44259 xprvkeyB58 = bip32ExtendedKey.toBase58();
44261 var extendedPrivKey = xprvkeyB58;
44262 DOM.extendedPrivKey.val(extendedPrivKey);
44263 var extendedPubKey = bip32ExtendedKey.toBase58(false);
44264 DOM.extendedPubKey.val(extendedPubKey);
44265 // Display the addresses and privkeys
44266 clearAddressesList();
44267 displayAddresses(
0,
20);
44270 function displayAddresses(start, total) {
44271 generationProcesses.push(new (function() {
44275 this.stop = function() {
44276 for (var i=
0; i
<rows.length; i++) {
44277 rows[i].shouldGenerate = false;
44281 for (var i=
0; i
<total; i++) {
44282 var index = i + start;
44283 rows.push(new TableRow(index));
44289 function TableRow(index) {
44292 this.shouldGenerate = true;
44293 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
44299 function calculateValues() {
44300 setTimeout(function() {
44301 if (!self.shouldGenerate) {
44305 if (useHardenedAddresses) {
44306 key = bip32ExtendedKey.deriveHardened(index);
44309 key = bip32ExtendedKey.derive(index);
44311 var address = key.getAddress().toString();
44312 var privkey =
"NA";
44314 privkey = key.privKey.toWIF(network);
44316 var pubkey = key.pubKey.toHex();
44317 var indexText = getDerivationPath() +
"/" + index;
44318 if (useHardenedAddresses) {
44319 indexText = indexText +
"'";
44321 // Ethereum values are different
44322 if (networks[DOM.network.val()].name ==
"Ethereum") {
44323 var privKeyBuffer = key.privKey.d.toBuffer();
44324 privkey = privKeyBuffer.toString('hex');
44325 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
44326 var hexAddress = addressBuffer.toString('hex');
44327 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
44328 address = ethUtil.addHexPrefix(checksumAddress);
44329 privkey = ethUtil.addHexPrefix(privkey);
44330 pubkey = ethUtil.addHexPrefix(pubkey);
44332 // Ripple values are different
44333 if (networks[DOM.network.val()].name ==
"Ripple") {
44334 privkey = convertRipplePriv(privkey);
44335 address = convertRippleAdrr(address);
44337 addAddressToList(indexText, address, pubkey, privkey);
44345 function showMore() {
44346 var start = DOM.addresses.children().length;
44347 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
44348 if (isNaN(rowsToAdd)) {
44350 DOM.rowsToAdd.val(
"20");
44352 if (rowsToAdd
> 200) {
44353 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
44354 msg +=
"Do you want to continue?";
44355 if (!confirm(msg)) {
44359 displayAddresses(start, rowsToAdd);
44362 function clearDisplay() {
44363 clearAddressesList();
44365 hideValidationError();
44368 function clearAddressesList() {
44369 DOM.addresses.empty();
44373 function stopGenerating() {
44374 while (generationProcesses.length
> 0) {
44375 var generation = generationProcesses.shift();
44380 function clearKey() {
44381 DOM.rootKey.val(
"");
44382 DOM.extendedPrivKey.val(
"");
44383 DOM.extendedPubKey.val(
"");
44386 function addAddressToList(indexText, address, pubkey, privkey) {
44387 var row = $(addressRowTemplate.html());
44389 var indexCell = row.find(
".index span");
44390 var addressCell = row.find(
".address span");
44391 var pubkeyCell = row.find(
".pubkey span");
44392 var privkeyCell = row.find(
".privkey span");
44394 indexCell.text(indexText);
44395 addressCell.text(address);
44396 pubkeyCell.text(pubkey);
44397 privkeyCell.text(privkey);
44400 indexCell.addClass(
"invisible");
44402 if (!showAddress) {
44403 addressCell.addClass(
"invisible");
44406 pubkeyCell.addClass(
"invisible");
44408 if (!showPrivKey) {
44409 privkeyCell.addClass(
"invisible");
44411 DOM.addresses.append(row);
44412 var rowShowQrEls = row.find(
"[data-show-qr]");
44413 setQrEvents(rowShowQrEls);
44416 function hasStrongRandom() {
44417 return 'crypto' in window && window['crypto'] !== null;
44420 function disableForms() {
44421 $(
"form").on(
"submit", function(e) {
44422 e.preventDefault();
44426 function parseIntNoNaN(val, defaultVal) {
44427 var v = parseInt(val);
44434 function showPending() {
44436 .text(
"Calculating...")
44440 function findNearestWord(word) {
44441 var language = getLanguage();
44442 var words = WORDLISTS[language];
44443 var minDistance =
99;
44444 var closestWord = words[
0];
44445 for (var i=
0; i
<words.length; i++) {
44446 var comparedTo = words[i];
44447 if (comparedTo.indexOf(word) ==
0) {
44450 var distance = Levenshtein.get(word, comparedTo);
44451 if (distance < minDistance) {
44452 closestWord = comparedTo;
44453 minDistance = distance;
44456 return closestWord;
44459 function hidePending() {
44465 function populateNetworkSelect() {
44466 for (var i=
0; i
<networks.length; i++) {
44467 var network = networks[i];
44468 var option = $(
"<option>");
44469 option.attr(
"value", i);
44470 option.text(network.name);
44471 DOM.phraseNetwork.append(option);
44475 function populateClientSelect() {
44476 for (var i=
0; i
<clients.length; i++) {
44477 var client = clients[i];
44478 var option = $(
"<option>");
44479 option.attr(
"value", i);
44480 option.text(client.name);
44481 DOM.bip32Client.append(option);
44485 function getLanguage() {
44486 var defaultLanguage =
"english";
44487 // Try to get from existing phrase
44488 var language = getLanguageFromPhrase();
44489 // Try to get from url if not from phrase
44490 if (language.length ==
0) {
44491 language = getLanguageFromUrl();
44493 // Default to English if no other option
44494 if (language.length ==
0) {
44495 language = defaultLanguage;
44500 function getLanguageFromPhrase(phrase) {
44501 // Check if how many words from existing phrase match a language.
44504 phrase = DOM.phrase.val();
44506 if (phrase.length
> 0) {
44507 var words = phraseToWordArray(phrase);
44508 var languageMatches = {};
44509 for (l in WORDLISTS) {
44510 // Track how many words match in this language
44511 languageMatches[l] =
0;
44512 for (var i=
0; i
<words.length; i++) {
44513 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
44514 if (wordInLanguage) {
44515 languageMatches[l]++;
44518 // Find languages with most word matches.
44519 // This is made difficult due to commonalities between Chinese
44520 // simplified vs traditional.
44521 var mostMatches =
0;
44522 var mostMatchedLanguages = [];
44523 for (var l in languageMatches) {
44524 var numMatches = languageMatches[l];
44525 if (numMatches
> mostMatches) {
44526 mostMatches = numMatches;
44527 mostMatchedLanguages = [l];
44529 else if (numMatches == mostMatches) {
44530 mostMatchedLanguages.push(l);
44534 if (mostMatchedLanguages.length
> 0) {
44535 // Use first language and warn if multiple detected
44536 language = mostMatchedLanguages[
0];
44537 if (mostMatchedLanguages.length
> 1) {
44538 console.warn(
"Multiple possible languages");
44539 console.warn(mostMatchedLanguages);
44546 function getLanguageFromUrl() {
44547 for (var language in WORDLISTS) {
44548 if (window.location.hash.indexOf(language)
> -
1) {
44555 function setMnemonicLanguage() {
44556 var language = getLanguage();
44557 // Load the bip39 mnemonic generator for this language if required
44558 if (!(language in mnemonics)) {
44559 mnemonics[language] = new Mnemonic(language);
44561 mnemonic = mnemonics[language];
44564 function convertPhraseToNewLanguage() {
44565 var oldLanguage = getLanguageFromPhrase();
44566 var newLanguage = getLanguageFromUrl();
44567 var oldPhrase = DOM.phrase.val();
44568 var oldWords = phraseToWordArray(oldPhrase);
44570 for (var i=
0; i
<oldWords.length; i++) {
44571 var oldWord = oldWords[i];
44572 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
44573 var newWord = WORDLISTS[newLanguage][index];
44574 newWords.push(newWord);
44576 newPhrase = wordArrayToPhrase(newWords);
44580 // TODO look at jsbip39 - mnemonic.splitWords
44581 function phraseToWordArray(phrase) {
44582 var words = phrase.split(/\s/g);
44584 for (var i=
0; i
<words.length; i++) {
44585 var word = words[i];
44586 if (word.length
> 0) {
44587 noBlanks.push(word);
44593 // TODO look at jsbip39 - mnemonic.joinWords
44594 function wordArrayToPhrase(words) {
44595 var phrase = words.join(
" ");
44596 var language = getLanguageFromPhrase(phrase);
44597 if (language ==
"japanese") {
44598 phrase = words.join(
"\u3000");
44603 function isUsingOwnEntropy() {
44604 return DOM.useEntropy.prop(
"checked");
44607 function setMnemonicFromEntropy() {
44608 clearEntropyFeedback();
44609 // Get entropy value
44610 var entropyStr = DOM.entropy.val();
44611 // Work out minimum base for entropy
44612 var entropy = Entropy.fromString(entropyStr);
44613 if (entropy.binaryStr.length ==
0) {
44616 // Show entropy details
44617 showEntropyFeedback(entropy);
44618 // Use entropy hash if not using raw entropy
44619 var bits = entropy.binaryStr;
44620 var mnemonicLength = DOM.entropyMnemonicLength.val();
44621 if (mnemonicLength !=
"raw") {
44622 // Get bits by hashing entropy with SHA256
44623 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
44624 var hex = sjcl.codec.hex.fromBits(hash);
44625 bits = BigInteger.parse(hex,
16).toString(
2);
44626 while (bits.length %
256 !=
0) {
44629 // Truncate hash to suit number of words
44630 mnemonicLength = parseInt(mnemonicLength);
44631 var numberOfBits =
32 * mnemonicLength /
3;
44632 bits = bits.substring(
0, numberOfBits);
44634 // Discard trailing entropy
44635 var bitsToUse = Math.floor(bits.length /
32) *
32;
44636 var start = bits.length - bitsToUse;
44637 var binaryStr = bits.substring(start);
44638 // Convert entropy string to numeric array
44639 var entropyArr = [];
44640 for (var i=
0; i
<binaryStr.length /
8; i++) {
44641 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
44642 var entropyByte = parseInt(byteAsBits,
2);
44643 entropyArr.push(entropyByte)
44645 // Convert entropy array to mnemonic
44646 var phrase = mnemonic.toMnemonic(entropyArr);
44647 // Set the mnemonic in the UI
44648 DOM.phrase.val(phrase);
44651 function clearEntropyFeedback() {
44652 DOM.entropyCrackTime.text(
"...");
44653 DOM.entropyType.text(
"");
44654 DOM.entropyWordCount.text(
"0");
44655 DOM.entropyEventCount.text(
"0");
44656 DOM.entropyBitsPerEvent.text(
"0");
44657 DOM.entropyBits.text(
"0");
44658 DOM.entropyFiltered.html(
" ");
44659 DOM.entropyBinary.html(
" ");
44662 function showEntropyFeedback(entropy) {
44663 var numberOfBits = entropy.binaryStr.length;
44664 var timeToCrack =
"unknown";
44666 var z = zxcvbn(entropy.base.parts.join(
""));
44667 timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
44668 if (z.feedback.warning !=
"") {
44669 timeToCrack = timeToCrack +
" - " + z.feedback.warning;
44673 console.log(
"Error detecting entropy strength with zxcvbn:");
44676 var entropyTypeStr = getEntropyTypeStr(entropy);
44677 var wordCount = Math.floor(numberOfBits /
32) *
3;
44678 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
44679 DOM.entropyFiltered.html(entropy.cleanHtml);
44680 DOM.entropyType.text(entropyTypeStr);
44681 DOM.entropyCrackTime.text(timeToCrack);
44682 DOM.entropyEventCount.text(entropy.base.ints.length);
44683 DOM.entropyBits.text(numberOfBits);
44684 DOM.entropyWordCount.text(wordCount);
44685 DOM.entropyBinary.text(entropy.binaryStr);
44686 DOM.entropyBitsPerEvent.text(bitsPerEvent);
44689 function getEntropyTypeStr(entropy) {
44690 var typeStr = entropy.base.str;
44691 // Add some detail if these are cards
44692 if (entropy.base.asInt ==
52) {
44693 var cardDetail = []; // array of message strings
44694 // Detect duplicates
44696 var dupeTracker = {};
44697 for (var i=
0; i
<entropy.base.parts.length; i++) {
44698 var card = entropy.base.parts[i];
44699 var cardUpper = card.toUpperCase();
44700 if (cardUpper in dupeTracker) {
44703 dupeTracker[cardUpper] = true;
44705 if (dupes.length
> 0) {
44706 var dupeWord =
"duplicates";
44707 if (dupes.length ==
1) {
44708 dupeWord =
"duplicate";
44710 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
44711 if (dupes.length
> 3) {
44714 cardDetail.push(msg);
44716 // Detect full deck
44717 var uniqueCards = [];
44718 for (var uniqueCard in dupeTracker) {
44719 uniqueCards.push(uniqueCard);
44721 if (uniqueCards.length ==
52) {
44722 cardDetail.unshift(
"full deck");
44724 // Detect missing cards
44725 var values =
"A23456789TJQK";
44726 var suits =
"CDHS";
44727 var missingCards = [];
44728 for (var i=
0; i
<suits.length; i++) {
44729 for (var j=
0; j
<values.length; j++) {
44730 var card = values[j] + suits[i];
44731 if (!(card in dupeTracker)) {
44732 missingCards.push(card);
44736 // Display missing cards if six or less, ie clearly going for full deck
44737 if (missingCards.length
> 0 && missingCards.length <=
6) {
44738 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
44739 if (missingCards.length
> 3) {
44742 cardDetail.push(msg);
44744 // Add card details to typeStr
44745 if (cardDetail.length
> 0) {
44746 typeStr +=
" (" + cardDetail.join(
", ") +
")";
44752 function setQrEvents(els) {
44753 els.on(
"mouseenter", createQr);
44754 els.on(
"mouseleave", destroyQr);
44755 els.on(
"click", toggleQr);
44758 function createQr(e) {
44759 var content = e.target.textContent || e.target.value;
44762 DOM.qrImage.qrcode({width: size, height: size, text: content});
44764 DOM.qrHider.addClass(
"hidden");
44767 DOM.qrHider.removeClass(
"hidden");
44769 DOM.qrContainer.removeClass(
"hidden");
44773 function destroyQr() {
44774 DOM.qrImage.text(
"");
44775 DOM.qrContainer.addClass(
"hidden");
44778 function toggleQr() {
44780 DOM.qrHider.toggleClass(
"hidden");
44781 DOM.qrHint.toggleClass(
"hidden");
44784 function bip44TabSelected() {
44785 return DOM.bip44tab.hasClass(
"active");
44788 function bip32TabSelected() {
44789 return DOM.bip32tab.hasClass(
"active");
44795 onSelect: function() {
44796 network = bitcoin.networks.bitcoin;
44797 DOM.bip44coin.val(
0);
44801 name:
"Bitcoin Testnet",
44802 onSelect: function() {
44803 network = bitcoin.networks.testnet;
44804 DOM.bip44coin.val(
1);
44809 onSelect: function() {
44810 network = bitcoin.networks.clam;
44811 DOM.bip44coin.val(
23);
44816 onSelect: function() {
44817 network = bitcoin.networks.dogecoin;
44818 DOM.bip44coin.val(
3);
44823 onSelect: function() {
44824 network = bitcoin.networks.dash;
44825 DOM.bip44coin.val(
5);
44829 name:
"DASH Testnet",
44830 onSelect: function() {
44831 network = bitcoin.networks.dashtn;
44832 DOM.bip44coin.val(
1);
44837 onSelect: function() {
44838 network = bitcoin.networks.bitcoin;
44839 DOM.bip44coin.val(
60);
44844 onSelect: function() {
44845 network = bitcoin.networks.game;
44846 DOM.bip44coin.val(
101);
44851 onSelect: function() {
44852 network = bitcoin.networks.jumbucks;
44853 DOM.bip44coin.val(
26);
44858 onSelect: function() {
44859 network = bitcoin.networks.litecoin;
44860 DOM.bip44coin.val(
2);
44865 onSelect: function() {
44866 network = bitcoin.networks.namecoin;
44867 DOM.bip44coin.val(
7);
44872 onSelect: function() {
44873 network = bitcoin.networks.peercoin;
44874 DOM.bip44coin.val(
6);
44879 onSelect: function() {
44880 network = bitcoin.networks.bitcoin;
44881 DOM.bip44coin.val(
144);
44885 name:
"ShadowCash",
44886 onSelect: function() {
44887 network = bitcoin.networks.shadow;
44888 DOM.bip44coin.val(
35);
44892 name:
"ShadowCash Testnet",
44893 onSelect: function() {
44894 network = bitcoin.networks.shadowtn;
44895 DOM.bip44coin.val(
1);
44900 onSelect: function() {
44901 network = bitcoin.networks.slimcoin;
44902 DOM.bip44coin.val(
63);
44906 name:
"Slimcoin Testnet",
44907 onSelect: function() {
44908 network = bitcoin.networks.slimcointn;
44909 DOM.bip44coin.val(
111);
44914 onSelect: function() {
44915 network = bitcoin.networks.viacoin;
44916 DOM.bip44coin.val(
14);
44920 name:
"Viacoin Testnet",
44921 onSelect: function() {
44922 network = bitcoin.networks.viacointestnet;
44923 DOM.bip44coin.val(
1);
44930 name:
"Bitcoin Core",
44931 onSelect: function() {
44932 DOM.bip32path.val(
"m/0'/0'");
44933 DOM.hardenedAddresses.prop('checked', true);
44937 name:
"blockchain.info",
44938 onSelect: function() {
44939 DOM.bip32path.val(
"m/44'/0'/0'");
44940 DOM.hardenedAddresses.prop('checked', false);
44944 name:
"MultiBit HD",
44945 onSelect: function() {
44946 DOM.bip32path.val(
"m/0'/0");
44947 DOM.hardenedAddresses.prop('checked', false);