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
.0</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
>Strength
</label>
173 <div class=
"strength 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
>Word Count
</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.game = {
19917 public:
0x0488b21e,
19918 private:
0x0488ade4
19925 bitcoin.networks.namecoin = {
19927 public:
0x0488b21e,
19928 private:
0x0488ade4
19931 //scriptHash:
0x10,
19935 bitcoin.networks.peercoin = {
19937 public:
0x0488b21e,
19938 private:
0x0488ade4
19941 //scriptHash:
0x10,
19945 bitcoin.networks.slimcoin = {
19947 public:
0xef6adf10,
19948 private:
0xef69ea80
19955 bitcoin.networks.slimcointn = {
19957 public:
0x043587CF,
19958 private:
0x04358394
19966 <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){
19967 (function (global){
19970 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
19971 // original notice:
19974 * The buffer module from node.js, for the browser.
19976 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
19979 function compare(a, b) {
19987 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
19988 if (a[i] !== b[i]) {
20003 function isBuffer(b) {
20004 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
20005 return global.Buffer.isBuffer(b);
20007 return !!(b != null && b._isBuffer);
20010 // based on node assert, original notice:
20012 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
20014 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
20016 // Originally from narwhal.js (http://narwhaljs.org)
20017 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
20019 // Permission is hereby granted, free of charge, to any person obtaining a copy
20020 // of this software and associated documentation files (the 'Software'), to
20021 // deal in the Software without restriction, including without limitation the
20022 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
20023 // sell copies of the Software, and to permit persons to whom the Software is
20024 // furnished to do so, subject to the following conditions:
20026 // The above copyright notice and this permission notice shall be included in
20027 // all copies or substantial portions of the Software.
20029 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20030 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20031 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20032 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20033 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20034 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20036 var util = require('util/');
20037 var hasOwn = Object.prototype.hasOwnProperty;
20038 var pSlice = Array.prototype.slice;
20039 var functionsHaveNames = (function () {
20040 return function foo() {}.name === 'foo';
20042 function pToString (obj) {
20043 return Object.prototype.toString.call(obj);
20045 function isView(arrbuf) {
20046 if (isBuffer(arrbuf)) {
20049 if (typeof global.ArrayBuffer !== 'function') {
20052 if (typeof ArrayBuffer.isView === 'function') {
20053 return ArrayBuffer.isView(arrbuf);
20058 if (arrbuf instanceof DataView) {
20061 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
20066 //
1. The assert module provides functions that throw
20067 // AssertionError's when particular conditions are not met. The
20068 // assert module must conform to the following interface.
20070 var assert = module.exports = ok;
20072 //
2. The AssertionError is defined in assert.
20073 // new assert.AssertionError({ message: message,
20075 // expected: expected })
20077 var regex = /\s*function\s+([^\(\s]*)\s*/;
20078 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
20079 function getName(func) {
20080 if (!util.isFunction(func)) {
20083 if (functionsHaveNames) {
20086 var str = func.toString();
20087 var match = str.match(regex);
20088 return match && match[
1];
20090 assert.AssertionError = function AssertionError(options) {
20091 this.name = 'AssertionError';
20092 this.actual = options.actual;
20093 this.expected = options.expected;
20094 this.operator = options.operator;
20095 if (options.message) {
20096 this.message = options.message;
20097 this.generatedMessage = false;
20099 this.message = getMessage(this);
20100 this.generatedMessage = true;
20102 var stackStartFunction = options.stackStartFunction || fail;
20103 if (Error.captureStackTrace) {
20104 Error.captureStackTrace(this, stackStartFunction);
20106 // non v8 browsers so we can have a stacktrace
20107 var err = new Error();
20109 var out = err.stack;
20111 // try to strip useless frames
20112 var fn_name = getName(stackStartFunction);
20113 var idx = out.indexOf('\n' + fn_name);
20115 // once we have located the function frame
20116 // we need to strip out everything before it (and its line)
20117 var next_line = out.indexOf('\n', idx +
1);
20118 out = out.substring(next_line +
1);
20126 // assert.AssertionError instanceof Error
20127 util.inherits(assert.AssertionError, Error);
20129 function truncate(s, n) {
20130 if (typeof s === 'string') {
20131 return s.length < n ? s : s.slice(
0, n);
20136 function inspect(something) {
20137 if (functionsHaveNames || !util.isFunction(something)) {
20138 return util.inspect(something);
20140 var rawname = getName(something);
20141 var name = rawname ? ': ' + rawname : '';
20142 return '[Function' + name + ']';
20144 function getMessage(self) {
20145 return truncate(inspect(self.actual),
128) + ' ' +
20146 self.operator + ' ' +
20147 truncate(inspect(self.expected),
128);
20150 // At present only the three keys mentioned above are used and
20151 // understood by the spec. Implementations or sub modules can pass
20152 // other keys to the AssertionError's constructor - they will be
20155 //
3. All of the following functions must throw an AssertionError
20156 // when a corresponding condition is not met, with a message that
20157 // may be undefined if not provided. All assertion methods provide
20158 // both the actual and expected values to the assertion error for
20159 // display purposes.
20161 function fail(actual, expected, message, operator, stackStartFunction) {
20162 throw new assert.AssertionError({
20165 expected: expected,
20166 operator: operator,
20167 stackStartFunction: stackStartFunction
20171 // EXTENSION! allows for well behaved errors defined elsewhere.
20172 assert.fail = fail;
20174 //
4. Pure assertion tests whether a value is truthy, as determined
20176 // assert.ok(guard, message_opt);
20177 // This statement is equivalent to assert.equal(true, !!guard,
20178 // message_opt);. To test strictly for the value true, use
20179 // assert.strictEqual(true, guard, message_opt);.
20181 function ok(value, message) {
20182 if (!value) fail(value, true, message, '==', assert.ok);
20186 //
5. The equality assertion tests shallow, coercive equality with
20188 // assert.equal(actual, expected, message_opt);
20190 assert.equal = function equal(actual, expected, message) {
20191 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
20194 //
6. The non-equality assertion tests for whether two objects are not equal
20195 // with != assert.notEqual(actual, expected, message_opt);
20197 assert.notEqual = function notEqual(actual, expected, message) {
20198 if (actual == expected) {
20199 fail(actual, expected, message, '!=', assert.notEqual);
20203 //
7. The equivalence assertion tests a deep equality relation.
20204 // assert.deepEqual(actual, expected, message_opt);
20206 assert.deepEqual = function deepEqual(actual, expected, message) {
20207 if (!_deepEqual(actual, expected, false)) {
20208 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
20212 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
20213 if (!_deepEqual(actual, expected, true)) {
20214 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
20218 function _deepEqual(actual, expected, strict, memos) {
20219 //
7.1. All identical values are equivalent, as determined by ===.
20220 if (actual === expected) {
20222 } else if (isBuffer(actual) && isBuffer(expected)) {
20223 return compare(actual, expected) ===
0;
20225 //
7.2. If the expected value is a Date object, the actual value is
20226 // equivalent if it is also a Date object that refers to the same time.
20227 } else if (util.isDate(actual) && util.isDate(expected)) {
20228 return actual.getTime() === expected.getTime();
20230 //
7.3 If the expected value is a RegExp object, the actual value is
20231 // equivalent if it is also a RegExp object with the same source and
20232 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
20233 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
20234 return actual.source === expected.source &&
20235 actual.global === expected.global &&
20236 actual.multiline === expected.multiline &&
20237 actual.lastIndex === expected.lastIndex &&
20238 actual.ignoreCase === expected.ignoreCase;
20240 //
7.4. Other pairs that do not both pass typeof value == 'object',
20241 // equivalence is determined by ==.
20242 } else if ((actual === null || typeof actual !== 'object') &&
20243 (expected === null || typeof expected !== 'object')) {
20244 return strict ? actual === expected : actual == expected;
20246 // If both values are instances of typed arrays, wrap their underlying
20247 // ArrayBuffers in a Buffer each to increase performance
20248 // This optimization requires the arrays to have the same type as checked by
20249 // Object.prototype.toString (aka pToString). Never perform binary
20250 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
20251 // bit patterns are not identical.
20252 } else if (isView(actual) && isView(expected) &&
20253 pToString(actual) === pToString(expected) &&
20254 !(actual instanceof Float32Array ||
20255 actual instanceof Float64Array)) {
20256 return compare(new Uint8Array(actual.buffer),
20257 new Uint8Array(expected.buffer)) ===
0;
20259 //
7.5 For all other Object pairs, including Array objects, equivalence is
20260 // determined by having the same number of owned properties (as verified
20261 // with Object.prototype.hasOwnProperty.call), the same set of keys
20262 // (although not necessarily the same order), equivalent values for every
20263 // corresponding key, and an identical 'prototype' property. Note: this
20264 // accounts for both named and indexed properties on Arrays.
20265 } else if (isBuffer(actual) !== isBuffer(expected)) {
20268 memos = memos || {actual: [], expected: []};
20270 var actualIndex = memos.actual.indexOf(actual);
20271 if (actualIndex !== -
1) {
20272 if (actualIndex === memos.expected.indexOf(expected)) {
20277 memos.actual.push(actual);
20278 memos.expected.push(expected);
20280 return objEquiv(actual, expected, strict, memos);
20284 function isArguments(object) {
20285 return Object.prototype.toString.call(object) == '[object Arguments]';
20288 function objEquiv(a, b, strict, actualVisitedObjects) {
20289 if (a === null || a === undefined || b === null || b === undefined)
20291 // if one is a primitive, the other must be same
20292 if (util.isPrimitive(a) || util.isPrimitive(b))
20294 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
20296 var aIsArgs = isArguments(a);
20297 var bIsArgs = isArguments(b);
20298 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
20301 a = pSlice.call(a);
20302 b = pSlice.call(b);
20303 return _deepEqual(a, b, strict);
20305 var ka = objectKeys(a);
20306 var kb = objectKeys(b);
20308 // having the same number of owned properties (keys incorporates
20310 if (ka.length !== kb.length)
20312 //the same set of keys (although not necessarily the same order),
20315 //~~~cheap key test
20316 for (i = ka.length -
1; i
>=
0; i--) {
20317 if (ka[i] !== kb[i])
20320 //equivalent values for every corresponding key, and
20321 //~~~possibly expensive deep test
20322 for (i = ka.length -
1; i
>=
0; i--) {
20324 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
20330 //
8. The non-equivalence assertion tests for any deep inequality.
20331 // assert.notDeepEqual(actual, expected, message_opt);
20333 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
20334 if (_deepEqual(actual, expected, false)) {
20335 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
20339 assert.notDeepStrictEqual = notDeepStrictEqual;
20340 function notDeepStrictEqual(actual, expected, message) {
20341 if (_deepEqual(actual, expected, true)) {
20342 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
20347 //
9. The strict equality assertion tests strict equality, as determined by ===.
20348 // assert.strictEqual(actual, expected, message_opt);
20350 assert.strictEqual = function strictEqual(actual, expected, message) {
20351 if (actual !== expected) {
20352 fail(actual, expected, message, '===', assert.strictEqual);
20356 //
10. The strict non-equality assertion tests for strict inequality, as
20357 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
20359 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
20360 if (actual === expected) {
20361 fail(actual, expected, message, '!==', assert.notStrictEqual);
20365 function expectedException(actual, expected) {
20366 if (!actual || !expected) {
20370 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
20371 return expected.test(actual);
20375 if (actual instanceof expected) {
20379 // Ignore. The instanceof check doesn't work for arrow functions.
20382 if (Error.isPrototypeOf(expected)) {
20386 return expected.call({}, actual) === true;
20389 function _tryBlock(block) {
20399 function _throws(shouldThrow, block, expected, message) {
20402 if (typeof block !== 'function') {
20403 throw new TypeError('"block" argument must be a function');
20406 if (typeof expected === 'string') {
20407 message = expected;
20411 actual = _tryBlock(block);
20413 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
20414 (message ? ' ' + message : '.');
20416 if (shouldThrow && !actual) {
20417 fail(actual, expected, 'Missing expected exception' + message);
20420 var userProvidedMessage = typeof message === 'string';
20421 var isUnwantedException = !shouldThrow && util.isError(actual);
20422 var isUnexpectedException = !shouldThrow && actual && !expected;
20424 if ((isUnwantedException &&
20425 userProvidedMessage &&
20426 expectedException(actual, expected)) ||
20427 isUnexpectedException) {
20428 fail(actual, expected, 'Got unwanted exception' + message);
20431 if ((shouldThrow && actual && expected &&
20432 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
20437 //
11. Expected to throw an error:
20438 // assert.throws(block, Error_opt, message_opt);
20440 assert.throws = function(block, /*optional*/error, /*optional*/message) {
20441 _throws(true, block, error, message);
20444 // EXTENSION! This is annoying to write outside this module.
20445 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
20446 _throws(false, block, error, message);
20449 assert.ifError = function(err) { if (err) throw err; };
20451 var objectKeys = Object.keys || function (obj) {
20453 for (var key in obj) {
20454 if (hasOwn.call(obj, key)) keys.push(key);
20459 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
20460 },{"util/":
30}],
2:[function(require,module,exports){
20463 exports.byteLength = byteLength
20464 exports.toByteArray = toByteArray
20465 exports.fromByteArray = fromByteArray
20469 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
20471 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
20472 for (var i =
0, len = code.length; i < len; ++i) {
20473 lookup[i] = code[i]
20474 revLookup[code.charCodeAt(i)] = i
20477 revLookup['-'.charCodeAt(
0)] =
62
20478 revLookup['_'.charCodeAt(
0)] =
63
20480 function placeHoldersCount (b64) {
20481 var len = b64.length
20483 throw new Error('Invalid string. Length must be a multiple of
4')
20486 // the number of equal signs (place holders)
20487 // if there are two placeholders, than the two characters before it
20488 // represent one byte
20489 // if there is only one, then the three characters before it represent
2 bytes
20490 // this is just a cheap hack to not do indexOf twice
20491 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
20494 function byteLength (b64) {
20495 // base64 is
4/
3 + up to two characters of the original data
20496 return b64.length *
3 /
4 - placeHoldersCount(b64)
20499 function toByteArray (b64) {
20500 var i, j, l, tmp, placeHolders, arr
20501 var len = b64.length
20502 placeHolders = placeHoldersCount(b64)
20504 arr = new Arr(len *
3 /
4 - placeHolders)
20506 // if there are placeholders, only get up to the last complete
4 chars
20507 l = placeHolders
> 0 ? len -
4 : len
20511 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
20512 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
20513 arr[L++] = (tmp
>> 16) &
0xFF
20514 arr[L++] = (tmp
>> 8) &
0xFF
20515 arr[L++] = tmp &
0xFF
20518 if (placeHolders ===
2) {
20519 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
20520 arr[L++] = tmp &
0xFF
20521 } else if (placeHolders ===
1) {
20522 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
20523 arr[L++] = (tmp
>> 8) &
0xFF
20524 arr[L++] = tmp &
0xFF
20530 function tripletToBase64 (num) {
20531 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
20534 function encodeChunk (uint8, start, end) {
20537 for (var i = start; i < end; i +=
3) {
20538 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
20539 output.push(tripletToBase64(tmp))
20541 return output.join('')
20544 function fromByteArray (uint8) {
20546 var len = uint8.length
20547 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
20550 var maxChunkLength =
16383 // must be multiple of
3
20552 // go through the array every three bytes, we'll deal with trailing stuff later
20553 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
20554 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
20557 // pad the end with zeros, but make sure to not forget the extra bytes
20558 if (extraBytes ===
1) {
20559 tmp = uint8[len -
1]
20560 output += lookup[tmp
>> 2]
20561 output += lookup[(tmp <<
4) &
0x3F]
20563 } else if (extraBytes ===
2) {
20564 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
20565 output += lookup[tmp
>> 10]
20566 output += lookup[(tmp
>> 4) &
0x3F]
20567 output += lookup[(tmp <<
2) &
0x3F]
20573 return parts.join('')
20576 },{}],
3:[function(require,module,exports){
20578 },{}],
4:[function(require,module,exports){
20579 (function (global){
20582 var buffer = require('buffer');
20583 var Buffer = buffer.Buffer;
20584 var SlowBuffer = buffer.SlowBuffer;
20585 var MAX_LEN = buffer.kMaxLength ||
2147483647;
20586 exports.alloc = function alloc(size, fill, encoding) {
20587 if (typeof Buffer.alloc === 'function') {
20588 return Buffer.alloc(size, fill, encoding);
20590 if (typeof encoding === 'number') {
20591 throw new TypeError('encoding must not be number');
20593 if (typeof size !== 'number') {
20594 throw new TypeError('size must be a number');
20596 if (size
> MAX_LEN) {
20597 throw new RangeError('size is too large');
20599 var enc = encoding;
20601 if (_fill === undefined) {
20605 var buf = new Buffer(size);
20606 if (typeof _fill === 'string') {
20607 var fillBuf = new Buffer(_fill, enc);
20608 var flen = fillBuf.length;
20610 while (++i < size) {
20611 buf[i] = fillBuf[i % flen];
20618 exports.allocUnsafe = function allocUnsafe(size) {
20619 if (typeof Buffer.allocUnsafe === 'function') {
20620 return Buffer.allocUnsafe(size);
20622 if (typeof size !== 'number') {
20623 throw new TypeError('size must be a number');
20625 if (size
> MAX_LEN) {
20626 throw new RangeError('size is too large');
20628 return new Buffer(size);
20630 exports.from = function from(value, encodingOrOffset, length) {
20631 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
20632 return Buffer.from(value, encodingOrOffset, length);
20634 if (typeof value === 'number') {
20635 throw new TypeError('"value" argument must not be a number');
20637 if (typeof value === 'string') {
20638 return new Buffer(value, encodingOrOffset);
20640 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
20641 var offset = encodingOrOffset;
20642 if (arguments.length ===
1) {
20643 return new Buffer(value);
20645 if (typeof offset === 'undefined') {
20649 if (typeof len === 'undefined') {
20650 len = value.byteLength - offset;
20652 if (offset
>= value.byteLength) {
20653 throw new RangeError('\'offset\' is out of bounds');
20655 if (len
> value.byteLength - offset) {
20656 throw new RangeError('\'length\' is out of bounds');
20658 return new Buffer(value.slice(offset, offset + len));
20660 if (Buffer.isBuffer(value)) {
20661 var out = new Buffer(value.length);
20662 value.copy(out,
0,
0, value.length);
20666 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
20667 return new Buffer(value);
20669 if (value.type === 'Buffer' && Array.isArray(value.data)) {
20670 return new Buffer(value.data);
20674 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
20676 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
20677 if (typeof Buffer.allocUnsafeSlow === 'function') {
20678 return Buffer.allocUnsafeSlow(size);
20680 if (typeof size !== 'number') {
20681 throw new TypeError('size must be a number');
20683 if (size
>= MAX_LEN) {
20684 throw new RangeError('size is too large');
20686 return new SlowBuffer(size);
20689 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
20690 },{"buffer":
5}],
5:[function(require,module,exports){
20692 * The buffer module from node.js, for the browser.
20694 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
20697 /* eslint-disable no-proto */
20701 var base64 = require('base64-js')
20702 var ieee754 = require('ieee754')
20704 exports.Buffer = Buffer
20705 exports.SlowBuffer = SlowBuffer
20706 exports.INSPECT_MAX_BYTES =
50
20708 var K_MAX_LENGTH =
0x7fffffff
20709 exports.kMaxLength = K_MAX_LENGTH
20712 * If `Buffer.TYPED_ARRAY_SUPPORT`:
20713 * === true Use Uint8Array implementation (fastest)
20714 * === false Print warning and recommend using `buffer` v4.x which has an Object
20715 * implementation (most compatible, even IE6)
20717 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
20718 * Opera
11.6+, iOS
4.2+.
20720 * We report that the browser does not support typed arrays if the are not subclassable
20721 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
20722 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
20723 * for __proto__ and has a buggy typed array implementation.
20725 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
20727 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
20728 typeof console.error === 'function') {
20730 'This browser lacks typed array (Uint8Array) support which is required by ' +
20731 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
20735 function typedArraySupport () {
20736 // Can typed array instances can be augmented?
20738 var arr = new Uint8Array(
1)
20739 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
20740 return arr.foo() ===
42
20746 function createBuffer (length) {
20747 if (length
> K_MAX_LENGTH) {
20748 throw new RangeError('Invalid typed array length')
20750 // Return an augmented `Uint8Array` instance
20751 var buf = new Uint8Array(length)
20752 buf.__proto__ = Buffer.prototype
20757 * The Buffer constructor returns instances of `Uint8Array` that have their
20758 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
20759 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
20760 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
20761 * returns a single octet.
20763 * The `Uint8Array` prototype remains unmodified.
20766 function Buffer (arg, encodingOrOffset, length) {
20768 if (typeof arg === 'number') {
20769 if (typeof encodingOrOffset === 'string') {
20771 'If encoding is specified then the first argument must be a string'
20774 return allocUnsafe(arg)
20776 return from(arg, encodingOrOffset, length)
20779 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
20780 if (typeof Symbol !== 'undefined' && Symbol.species &&
20781 Buffer[Symbol.species] === Buffer) {
20782 Object.defineProperty(Buffer, Symbol.species, {
20784 configurable: true,
20790 Buffer.poolSize =
8192 // not used by this implementation
20792 function from (value, encodingOrOffset, length) {
20793 if (typeof value === 'number') {
20794 throw new TypeError('"value" argument must not be a number')
20797 if (value instanceof ArrayBuffer) {
20798 return fromArrayBuffer(value, encodingOrOffset, length)
20801 if (typeof value === 'string') {
20802 return fromString(value, encodingOrOffset)
20805 return fromObject(value)
20809 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
20810 * if value is a number.
20811 * Buffer.from(str[, encoding])
20812 * Buffer.from(array)
20813 * Buffer.from(buffer)
20814 * Buffer.from(arrayBuffer[, byteOffset[, length]])
20816 Buffer.from = function (value, encodingOrOffset, length) {
20817 return from(value, encodingOrOffset, length)
20820 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
20821 // https://github.com/feross/buffer/pull/
148
20822 Buffer.prototype.__proto__ = Uint8Array.prototype
20823 Buffer.__proto__ = Uint8Array
20825 function assertSize (size) {
20826 if (typeof size !== 'number') {
20827 throw new TypeError('"size" argument must be a number')
20828 } else if (size <
0) {
20829 throw new RangeError('"size" argument must not be negative')
20833 function alloc (size, fill, encoding) {
20836 return createBuffer(size)
20838 if (fill !== undefined) {
20839 // Only pay attention to encoding if it's a string. This
20840 // prevents accidentally sending in a number that would
20841 // be interpretted as a start offset.
20842 return typeof encoding === 'string'
20843 ? createBuffer(size).fill(fill, encoding)
20844 : createBuffer(size).fill(fill)
20846 return createBuffer(size)
20850 * Creates a new filled Buffer instance.
20851 * alloc(size[, fill[, encoding]])
20853 Buffer.alloc = function (size, fill, encoding) {
20854 return alloc(size, fill, encoding)
20857 function allocUnsafe (size) {
20859 return createBuffer(size <
0 ?
0 : checked(size) |
0)
20863 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
20865 Buffer.allocUnsafe = function (size) {
20866 return allocUnsafe(size)
20869 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
20871 Buffer.allocUnsafeSlow = function (size) {
20872 return allocUnsafe(size)
20875 function fromString (string, encoding) {
20876 if (typeof encoding !== 'string' || encoding === '') {
20880 if (!Buffer.isEncoding(encoding)) {
20881 throw new TypeError('"encoding" must be a valid string encoding')
20884 var length = byteLength(string, encoding) |
0
20885 var buf = createBuffer(length)
20887 var actual = buf.write(string, encoding)
20889 if (actual !== length) {
20890 // Writing a hex string, for example, that contains invalid characters will
20891 // cause everything after the first invalid character to be ignored. (e.g.
20892 // 'abxxcd' will be treated as 'ab')
20893 buf = buf.slice(
0, actual)
20899 function fromArrayLike (array) {
20900 var length = array.length <
0 ?
0 : checked(array.length) |
0
20901 var buf = createBuffer(length)
20902 for (var i =
0; i < length; i +=
1) {
20903 buf[i] = array[i] &
255
20908 function fromArrayBuffer (array, byteOffset, length) {
20909 if (byteOffset <
0 || array.byteLength < byteOffset) {
20910 throw new RangeError('\'offset\' is out of bounds')
20913 if (array.byteLength < byteOffset + (length ||
0)) {
20914 throw new RangeError('\'length\' is out of bounds')
20918 if (byteOffset === undefined && length === undefined) {
20919 buf = new Uint8Array(array)
20920 } else if (length === undefined) {
20921 buf = new Uint8Array(array, byteOffset)
20923 buf = new Uint8Array(array, byteOffset, length)
20926 // Return an augmented `Uint8Array` instance
20927 buf.__proto__ = Buffer.prototype
20931 function fromObject (obj) {
20932 if (Buffer.isBuffer(obj)) {
20933 var len = checked(obj.length) |
0
20934 var buf = createBuffer(len)
20936 if (buf.length ===
0) {
20940 obj.copy(buf,
0,
0, len)
20945 if (ArrayBuffer.isView(obj) || 'length' in obj) {
20946 if (typeof obj.length !== 'number' || isnan(obj.length)) {
20947 return createBuffer(
0)
20949 return fromArrayLike(obj)
20952 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
20953 return fromArrayLike(obj.data)
20957 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
20960 function checked (length) {
20961 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
20962 // length is NaN (which is otherwise coerced to zero.)
20963 if (length
>= K_MAX_LENGTH) {
20964 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
20965 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
20970 function SlowBuffer (length) {
20971 if (+length != length) { // eslint-disable-line eqeqeq
20974 return Buffer.alloc(+length)
20977 Buffer.isBuffer = function isBuffer (b) {
20978 return b != null && b._isBuffer === true
20981 Buffer.compare = function compare (a, b) {
20982 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
20983 throw new TypeError('Arguments must be Buffers')
20986 if (a === b) return
0
20991 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
20992 if (a[i] !== b[i]) {
20999 if (x < y) return -
1
21000 if (y < x) return
1
21004 Buffer.isEncoding = function isEncoding (encoding) {
21005 switch (String(encoding).toLowerCase()) {
21023 Buffer.concat = function concat (list, length) {
21024 if (!Array.isArray(list)) {
21025 throw new TypeError('"list" argument must be an Array of Buffers')
21028 if (list.length ===
0) {
21029 return Buffer.alloc(
0)
21033 if (length === undefined) {
21035 for (i =
0; i < list.length; ++i) {
21036 length += list[i].length
21040 var buffer = Buffer.allocUnsafe(length)
21042 for (i =
0; i < list.length; ++i) {
21044 if (!Buffer.isBuffer(buf)) {
21045 throw new TypeError('"list" argument must be an Array of Buffers')
21047 buf.copy(buffer, pos)
21053 function byteLength (string, encoding) {
21054 if (Buffer.isBuffer(string)) {
21055 return string.length
21057 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
21058 return string.byteLength
21060 if (typeof string !== 'string') {
21061 string = '' + string
21064 var len = string.length
21065 if (len ===
0) return
0
21067 // Use a for loop to avoid recursion
21068 var loweredCase = false
21070 switch (encoding) {
21078 return utf8ToBytes(string).length
21087 return base64ToBytes(string).length
21089 if (loweredCase) return utf8ToBytes(string).length // assume utf8
21090 encoding = ('' + encoding).toLowerCase()
21095 Buffer.byteLength = byteLength
21097 function slowToString (encoding, start, end) {
21098 var loweredCase = false
21100 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
21101 // property of a typed array.
21103 // This behaves neither like String nor Uint8Array in that we set start/end
21104 // to their upper/lower bounds if the value passed is out of range.
21105 // undefined is handled specially as per ECMA-
262 6th Edition,
21106 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
21107 if (start === undefined || start <
0) {
21110 // Return early if start
> this.length. Done here to prevent potential uint32
21111 // coercion fail below.
21112 if (start
> this.length) {
21116 if (end === undefined || end
> this.length) {
21124 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
21128 if (end <= start) {
21132 if (!encoding) encoding = 'utf8'
21135 switch (encoding) {
21137 return hexSlice(this, start, end)
21141 return utf8Slice(this, start, end)
21144 return asciiSlice(this, start, end)
21148 return latin1Slice(this, start, end)
21151 return base64Slice(this, start, end)
21157 return utf16leSlice(this, start, end)
21160 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
21161 encoding = (encoding + '').toLowerCase()
21167 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
21168 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
21169 // reliably in a browserify context because there could be multiple different
21170 // copies of the 'buffer' package in use. This method works even for Buffer
21171 // instances that were created from another copy of the `buffer` package.
21172 // See: https://github.com/feross/buffer/issues/
154
21173 Buffer.prototype._isBuffer = true
21175 function swap (b, n, m) {
21181 Buffer.prototype.swap16 = function swap16 () {
21182 var len = this.length
21183 if (len %
2 !==
0) {
21184 throw new RangeError('Buffer size must be a multiple of
16-bits')
21186 for (var i =
0; i < len; i +=
2) {
21187 swap(this, i, i +
1)
21192 Buffer.prototype.swap32 = function swap32 () {
21193 var len = this.length
21194 if (len %
4 !==
0) {
21195 throw new RangeError('Buffer size must be a multiple of
32-bits')
21197 for (var i =
0; i < len; i +=
4) {
21198 swap(this, i, i +
3)
21199 swap(this, i +
1, i +
2)
21204 Buffer.prototype.swap64 = function swap64 () {
21205 var len = this.length
21206 if (len %
8 !==
0) {
21207 throw new RangeError('Buffer size must be a multiple of
64-bits')
21209 for (var i =
0; i < len; i +=
8) {
21210 swap(this, i, i +
7)
21211 swap(this, i +
1, i +
6)
21212 swap(this, i +
2, i +
5)
21213 swap(this, i +
3, i +
4)
21218 Buffer.prototype.toString = function toString () {
21219 var length = this.length
21220 if (length ===
0) return ''
21221 if (arguments.length ===
0) return utf8Slice(this,
0, length)
21222 return slowToString.apply(this, arguments)
21225 Buffer.prototype.equals = function equals (b) {
21226 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
21227 if (this === b) return true
21228 return Buffer.compare(this, b) ===
0
21231 Buffer.prototype.inspect = function inspect () {
21233 var max = exports.INSPECT_MAX_BYTES
21234 if (this.length
> 0) {
21235 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
21236 if (this.length
> max) str += ' ... '
21238 return '
<Buffer ' + str + '
>'
21241 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
21242 if (!Buffer.isBuffer(target)) {
21243 throw new TypeError('Argument must be a Buffer')
21246 if (start === undefined) {
21249 if (end === undefined) {
21250 end = target ? target.length :
0
21252 if (thisStart === undefined) {
21255 if (thisEnd === undefined) {
21256 thisEnd = this.length
21259 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
21260 throw new RangeError('out of range index')
21263 if (thisStart
>= thisEnd && start
>= end) {
21266 if (thisStart
>= thisEnd) {
21269 if (start
>= end) {
21278 if (this === target) return
0
21280 var x = thisEnd - thisStart
21281 var y = end - start
21282 var len = Math.min(x, y)
21284 var thisCopy = this.slice(thisStart, thisEnd)
21285 var targetCopy = target.slice(start, end)
21287 for (var i =
0; i < len; ++i) {
21288 if (thisCopy[i] !== targetCopy[i]) {
21295 if (x < y) return -
1
21296 if (y < x) return
1
21300 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
21301 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
21304 // - buffer - a Buffer to search
21305 // - val - a string, Buffer, or number
21306 // - byteOffset - an index into `buffer`; will be clamped to an int32
21307 // - encoding - an optional encoding, relevant is val is a string
21308 // - dir - true for indexOf, false for lastIndexOf
21309 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
21310 // Empty buffer means no match
21311 if (buffer.length ===
0) return -
1
21313 // Normalize byteOffset
21314 if (typeof byteOffset === 'string') {
21315 encoding = byteOffset
21317 } else if (byteOffset
> 0x7fffffff) {
21318 byteOffset =
0x7fffffff
21319 } else if (byteOffset < -
0x80000000) {
21320 byteOffset = -
0x80000000
21322 byteOffset = +byteOffset // Coerce to Number.
21323 if (isNaN(byteOffset)) {
21324 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
21325 byteOffset = dir ?
0 : (buffer.length -
1)
21328 // Normalize byteOffset: negative offsets start from the end of the buffer
21329 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
21330 if (byteOffset
>= buffer.length) {
21332 else byteOffset = buffer.length -
1
21333 } else if (byteOffset <
0) {
21334 if (dir) byteOffset =
0
21339 if (typeof val === 'string') {
21340 val = Buffer.from(val, encoding)
21343 // Finally, search either indexOf (if dir is true) or lastIndexOf
21344 if (Buffer.isBuffer(val)) {
21345 // Special case: looking for empty string/buffer always fails
21346 if (val.length ===
0) {
21349 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
21350 } else if (typeof val === 'number') {
21351 val = val &
0xFF // Search for a byte value [
0-
255]
21352 if (typeof Uint8Array.prototype.indexOf === 'function') {
21354 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
21356 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
21359 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
21362 throw new TypeError('val must be string, number or Buffer')
21365 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
21367 var arrLength = arr.length
21368 var valLength = val.length
21370 if (encoding !== undefined) {
21371 encoding = String(encoding).toLowerCase()
21372 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
21373 encoding === 'utf16le' || encoding === 'utf-
16le') {
21374 if (arr.length <
2 || val.length <
2) {
21384 function read (buf, i) {
21385 if (indexSize ===
1) {
21388 return buf.readUInt16BE(i * indexSize)
21394 var foundIndex = -
1
21395 for (i = byteOffset; i < arrLength; i++) {
21396 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
21397 if (foundIndex === -
1) foundIndex = i
21398 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
21400 if (foundIndex !== -
1) i -= i - foundIndex
21405 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
21406 for (i = byteOffset; i
>=
0; i--) {
21408 for (var j =
0; j < valLength; j++) {
21409 if (read(arr, i + j) !== read(val, j)) {
21414 if (found) return i
21421 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
21422 return this.indexOf(val, byteOffset, encoding) !== -
1
21425 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
21426 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
21429 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
21430 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
21433 function hexWrite (buf, string, offset, length) {
21434 offset = Number(offset) ||
0
21435 var remaining = buf.length - offset
21439 length = Number(length)
21440 if (length
> remaining) {
21445 // must be an even number of digits
21446 var strLen = string.length
21447 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
21449 if (length
> strLen /
2) {
21450 length = strLen /
2
21452 for (var i =
0; i < length; ++i) {
21453 var parsed = parseInt(string.substr(i *
2,
2),
16)
21454 if (isNaN(parsed)) return i
21455 buf[offset + i] = parsed
21460 function utf8Write (buf, string, offset, length) {
21461 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
21464 function asciiWrite (buf, string, offset, length) {
21465 return blitBuffer(asciiToBytes(string), buf, offset, length)
21468 function latin1Write (buf, string, offset, length) {
21469 return asciiWrite(buf, string, offset, length)
21472 function base64Write (buf, string, offset, length) {
21473 return blitBuffer(base64ToBytes(string), buf, offset, length)
21476 function ucs2Write (buf, string, offset, length) {
21477 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
21480 Buffer.prototype.write = function write (string, offset, length, encoding) {
21481 // Buffer#write(string)
21482 if (offset === undefined) {
21484 length = this.length
21486 // Buffer#write(string, encoding)
21487 } else if (length === undefined && typeof offset === 'string') {
21489 length = this.length
21491 // Buffer#write(string, offset[, length][, encoding])
21492 } else if (isFinite(offset)) {
21493 offset = offset
>>> 0
21494 if (isFinite(length)) {
21495 length = length
>>> 0
21496 if (encoding === undefined) encoding = 'utf8'
21503 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
21507 var remaining = this.length - offset
21508 if (length === undefined || length
> remaining) length = remaining
21510 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
21511 throw new RangeError('Attempt to write outside buffer bounds')
21514 if (!encoding) encoding = 'utf8'
21516 var loweredCase = false
21518 switch (encoding) {
21520 return hexWrite(this, string, offset, length)
21524 return utf8Write(this, string, offset, length)
21527 return asciiWrite(this, string, offset, length)
21531 return latin1Write(this, string, offset, length)
21534 // Warning: maxLength not taken into account in base64Write
21535 return base64Write(this, string, offset, length)
21541 return ucs2Write(this, string, offset, length)
21544 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
21545 encoding = ('' + encoding).toLowerCase()
21551 Buffer.prototype.toJSON = function toJSON () {
21554 data: Array.prototype.slice.call(this._arr || this,
0)
21558 function base64Slice (buf, start, end) {
21559 if (start ===
0 && end === buf.length) {
21560 return base64.fromByteArray(buf)
21562 return base64.fromByteArray(buf.slice(start, end))
21566 function utf8Slice (buf, start, end) {
21567 end = Math.min(buf.length, end)
21572 var firstByte = buf[i]
21573 var codePoint = null
21574 var bytesPerSequence = (firstByte
> 0xEF) ?
4
21575 : (firstByte
> 0xDF) ?
3
21576 : (firstByte
> 0xBF) ?
2
21579 if (i + bytesPerSequence <= end) {
21580 var secondByte, thirdByte, fourthByte, tempCodePoint
21582 switch (bytesPerSequence) {
21584 if (firstByte <
0x80) {
21585 codePoint = firstByte
21589 secondByte = buf[i +
1]
21590 if ((secondByte &
0xC0) ===
0x80) {
21591 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
21592 if (tempCodePoint
> 0x7F) {
21593 codePoint = tempCodePoint
21598 secondByte = buf[i +
1]
21599 thirdByte = buf[i +
2]
21600 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
21601 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
21602 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
21603 codePoint = tempCodePoint
21608 secondByte = buf[i +
1]
21609 thirdByte = buf[i +
2]
21610 fourthByte = buf[i +
3]
21611 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
21612 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
21613 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
21614 codePoint = tempCodePoint
21620 if (codePoint === null) {
21621 // we did not generate a valid codePoint so insert a
21622 // replacement char (U+FFFD) and advance only
1 byte
21624 bytesPerSequence =
1
21625 } else if (codePoint
> 0xFFFF) {
21626 // encode to utf16 (surrogate pair dance)
21627 codePoint -=
0x10000
21628 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
21629 codePoint =
0xDC00 | codePoint &
0x3FF
21632 res.push(codePoint)
21633 i += bytesPerSequence
21636 return decodeCodePointsArray(res)
21639 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
21640 // the lowest limit is Chrome, with
0x10000 args.
21641 // We go
1 magnitude less, for safety
21642 var MAX_ARGUMENTS_LENGTH =
0x1000
21644 function decodeCodePointsArray (codePoints) {
21645 var len = codePoints.length
21646 if (len <= MAX_ARGUMENTS_LENGTH) {
21647 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
21650 // Decode in chunks to avoid
"call stack size exceeded".
21654 res += String.fromCharCode.apply(
21656 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
21662 function asciiSlice (buf, start, end) {
21664 end = Math.min(buf.length, end)
21666 for (var i = start; i < end; ++i) {
21667 ret += String.fromCharCode(buf[i] &
0x7F)
21672 function latin1Slice (buf, start, end) {
21674 end = Math.min(buf.length, end)
21676 for (var i = start; i < end; ++i) {
21677 ret += String.fromCharCode(buf[i])
21682 function hexSlice (buf, start, end) {
21683 var len = buf.length
21685 if (!start || start <
0) start =
0
21686 if (!end || end <
0 || end
> len) end = len
21689 for (var i = start; i < end; ++i) {
21690 out += toHex(buf[i])
21695 function utf16leSlice (buf, start, end) {
21696 var bytes = buf.slice(start, end)
21698 for (var i =
0; i < bytes.length; i +=
2) {
21699 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
21704 Buffer.prototype.slice = function slice (start, end) {
21705 var len = this.length
21707 end = end === undefined ? len : ~~end
21711 if (start <
0) start =
0
21712 } else if (start
> len) {
21718 if (end <
0) end =
0
21719 } else if (end
> len) {
21723 if (end < start) end = start
21725 var newBuf = this.subarray(start, end)
21726 // Return an augmented `Uint8Array` instance
21727 newBuf.__proto__ = Buffer.prototype
21732 * Need to make sure that buffer isn't trying to write out of bounds.
21734 function checkOffset (offset, ext, length) {
21735 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
21736 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
21739 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
21740 offset = offset
>>> 0
21741 byteLength = byteLength
>>> 0
21742 if (!noAssert) checkOffset(offset, byteLength, this.length)
21744 var val = this[offset]
21747 while (++i < byteLength && (mul *=
0x100)) {
21748 val += this[offset + i] * mul
21754 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
21755 offset = offset
>>> 0
21756 byteLength = byteLength
>>> 0
21758 checkOffset(offset, byteLength, this.length)
21761 var val = this[offset + --byteLength]
21763 while (byteLength
> 0 && (mul *=
0x100)) {
21764 val += this[offset + --byteLength] * mul
21770 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
21771 offset = offset
>>> 0
21772 if (!noAssert) checkOffset(offset,
1, this.length)
21773 return this[offset]
21776 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
21777 offset = offset
>>> 0
21778 if (!noAssert) checkOffset(offset,
2, this.length)
21779 return this[offset] | (this[offset +
1] <<
8)
21782 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
21783 offset = offset
>>> 0
21784 if (!noAssert) checkOffset(offset,
2, this.length)
21785 return (this[offset] <<
8) | this[offset +
1]
21788 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
21789 offset = offset
>>> 0
21790 if (!noAssert) checkOffset(offset,
4, this.length)
21792 return ((this[offset]) |
21793 (this[offset +
1] <<
8) |
21794 (this[offset +
2] <<
16)) +
21795 (this[offset +
3] *
0x1000000)
21798 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
21799 offset = offset
>>> 0
21800 if (!noAssert) checkOffset(offset,
4, this.length)
21802 return (this[offset] *
0x1000000) +
21803 ((this[offset +
1] <<
16) |
21804 (this[offset +
2] <<
8) |
21808 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
21809 offset = offset
>>> 0
21810 byteLength = byteLength
>>> 0
21811 if (!noAssert) checkOffset(offset, byteLength, this.length)
21813 var val = this[offset]
21816 while (++i < byteLength && (mul *=
0x100)) {
21817 val += this[offset + i] * mul
21821 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
21826 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
21827 offset = offset
>>> 0
21828 byteLength = byteLength
>>> 0
21829 if (!noAssert) checkOffset(offset, byteLength, this.length)
21833 var val = this[offset + --i]
21834 while (i
> 0 && (mul *=
0x100)) {
21835 val += this[offset + --i] * mul
21839 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
21844 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
21845 offset = offset
>>> 0
21846 if (!noAssert) checkOffset(offset,
1, this.length)
21847 if (!(this[offset] &
0x80)) return (this[offset])
21848 return ((
0xff - this[offset] +
1) * -
1)
21851 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
21852 offset = offset
>>> 0
21853 if (!noAssert) checkOffset(offset,
2, this.length)
21854 var val = this[offset] | (this[offset +
1] <<
8)
21855 return (val &
0x8000) ? val |
0xFFFF0000 : val
21858 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
21859 offset = offset
>>> 0
21860 if (!noAssert) checkOffset(offset,
2, this.length)
21861 var val = this[offset +
1] | (this[offset] <<
8)
21862 return (val &
0x8000) ? val |
0xFFFF0000 : val
21865 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
21866 offset = offset
>>> 0
21867 if (!noAssert) checkOffset(offset,
4, this.length)
21869 return (this[offset]) |
21870 (this[offset +
1] <<
8) |
21871 (this[offset +
2] <<
16) |
21872 (this[offset +
3] <<
24)
21875 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
21876 offset = offset
>>> 0
21877 if (!noAssert) checkOffset(offset,
4, this.length)
21879 return (this[offset] <<
24) |
21880 (this[offset +
1] <<
16) |
21881 (this[offset +
2] <<
8) |
21885 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
21886 offset = offset
>>> 0
21887 if (!noAssert) checkOffset(offset,
4, this.length)
21888 return ieee754.read(this, offset, true,
23,
4)
21891 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
21892 offset = offset
>>> 0
21893 if (!noAssert) checkOffset(offset,
4, this.length)
21894 return ieee754.read(this, offset, false,
23,
4)
21897 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
21898 offset = offset
>>> 0
21899 if (!noAssert) checkOffset(offset,
8, this.length)
21900 return ieee754.read(this, offset, true,
52,
8)
21903 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
21904 offset = offset
>>> 0
21905 if (!noAssert) checkOffset(offset,
8, this.length)
21906 return ieee754.read(this, offset, false,
52,
8)
21909 function checkInt (buf, value, offset, ext, max, min) {
21910 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
21911 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
21912 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
21915 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
21917 offset = offset
>>> 0
21918 byteLength = byteLength
>>> 0
21920 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
21921 checkInt(this, value, offset, byteLength, maxBytes,
0)
21926 this[offset] = value &
0xFF
21927 while (++i < byteLength && (mul *=
0x100)) {
21928 this[offset + i] = (value / mul) &
0xFF
21931 return offset + byteLength
21934 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
21936 offset = offset
>>> 0
21937 byteLength = byteLength
>>> 0
21939 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
21940 checkInt(this, value, offset, byteLength, maxBytes,
0)
21943 var i = byteLength -
1
21945 this[offset + i] = value &
0xFF
21946 while (--i
>=
0 && (mul *=
0x100)) {
21947 this[offset + i] = (value / mul) &
0xFF
21950 return offset + byteLength
21953 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
21955 offset = offset
>>> 0
21956 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
21957 this[offset] = (value &
0xff)
21961 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
21963 offset = offset
>>> 0
21964 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
21965 this[offset] = (value &
0xff)
21966 this[offset +
1] = (value
>>> 8)
21970 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
21972 offset = offset
>>> 0
21973 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
21974 this[offset] = (value
>>> 8)
21975 this[offset +
1] = (value &
0xff)
21979 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
21981 offset = offset
>>> 0
21982 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
21983 this[offset +
3] = (value
>>> 24)
21984 this[offset +
2] = (value
>>> 16)
21985 this[offset +
1] = (value
>>> 8)
21986 this[offset] = (value &
0xff)
21990 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
21992 offset = offset
>>> 0
21993 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
21994 this[offset] = (value
>>> 24)
21995 this[offset +
1] = (value
>>> 16)
21996 this[offset +
2] = (value
>>> 8)
21997 this[offset +
3] = (value &
0xff)
22001 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
22003 offset = offset
>>> 0
22005 var limit = Math.pow(
2, (
8 * byteLength) -
1)
22007 checkInt(this, value, offset, byteLength, limit -
1, -limit)
22013 this[offset] = value &
0xFF
22014 while (++i < byteLength && (mul *=
0x100)) {
22015 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
22018 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
22021 return offset + byteLength
22024 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
22026 offset = offset
>>> 0
22028 var limit = Math.pow(
2, (
8 * byteLength) -
1)
22030 checkInt(this, value, offset, byteLength, limit -
1, -limit)
22033 var i = byteLength -
1
22036 this[offset + i] = value &
0xFF
22037 while (--i
>=
0 && (mul *=
0x100)) {
22038 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
22041 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
22044 return offset + byteLength
22047 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
22049 offset = offset
>>> 0
22050 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
22051 if (value <
0) value =
0xff + value +
1
22052 this[offset] = (value &
0xff)
22056 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
22058 offset = offset
>>> 0
22059 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
22060 this[offset] = (value &
0xff)
22061 this[offset +
1] = (value
>>> 8)
22065 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
22067 offset = offset
>>> 0
22068 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
22069 this[offset] = (value
>>> 8)
22070 this[offset +
1] = (value &
0xff)
22074 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
22076 offset = offset
>>> 0
22077 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
22078 this[offset] = (value &
0xff)
22079 this[offset +
1] = (value
>>> 8)
22080 this[offset +
2] = (value
>>> 16)
22081 this[offset +
3] = (value
>>> 24)
22085 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
22087 offset = offset
>>> 0
22088 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
22089 if (value <
0) value =
0xffffffff + value +
1
22090 this[offset] = (value
>>> 24)
22091 this[offset +
1] = (value
>>> 16)
22092 this[offset +
2] = (value
>>> 8)
22093 this[offset +
3] = (value &
0xff)
22097 function checkIEEE754 (buf, value, offset, ext, max, min) {
22098 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
22099 if (offset <
0) throw new RangeError('Index out of range')
22102 function writeFloat (buf, value, offset, littleEndian, noAssert) {
22104 offset = offset
>>> 0
22106 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
22108 ieee754.write(buf, value, offset, littleEndian,
23,
4)
22112 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
22113 return writeFloat(this, value, offset, true, noAssert)
22116 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
22117 return writeFloat(this, value, offset, false, noAssert)
22120 function writeDouble (buf, value, offset, littleEndian, noAssert) {
22122 offset = offset
>>> 0
22124 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
22126 ieee754.write(buf, value, offset, littleEndian,
52,
8)
22130 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
22131 return writeDouble(this, value, offset, true, noAssert)
22134 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
22135 return writeDouble(this, value, offset, false, noAssert)
22138 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
22139 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
22140 if (!start) start =
0
22141 if (!end && end !==
0) end = this.length
22142 if (targetStart
>= target.length) targetStart = target.length
22143 if (!targetStart) targetStart =
0
22144 if (end
> 0 && end < start) end = start
22146 // Copy
0 bytes; we're done
22147 if (end === start) return
0
22148 if (target.length ===
0 || this.length ===
0) return
0
22150 // Fatal error conditions
22151 if (targetStart <
0) {
22152 throw new RangeError('targetStart out of bounds')
22154 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
22155 if (end <
0) throw new RangeError('sourceEnd out of bounds')
22158 if (end
> this.length) end = this.length
22159 if (target.length - targetStart < end - start) {
22160 end = target.length - targetStart + start
22163 var len = end - start
22166 if (this === target && start < targetStart && targetStart < end) {
22167 // descending copy from end
22168 for (i = len -
1; i
>=
0; --i) {
22169 target[i + targetStart] = this[i + start]
22171 } else if (len <
1000) {
22172 // ascending copy from start
22173 for (i =
0; i < len; ++i) {
22174 target[i + targetStart] = this[i + start]
22177 Uint8Array.prototype.set.call(
22179 this.subarray(start, start + len),
22188 // buffer.fill(number[, offset[, end]])
22189 // buffer.fill(buffer[, offset[, end]])
22190 // buffer.fill(string[, offset[, end]][, encoding])
22191 Buffer.prototype.fill = function fill (val, start, end, encoding) {
22192 // Handle string cases:
22193 if (typeof val === 'string') {
22194 if (typeof start === 'string') {
22198 } else if (typeof end === 'string') {
22202 if (val.length ===
1) {
22203 var code = val.charCodeAt(
0)
22208 if (encoding !== undefined && typeof encoding !== 'string') {
22209 throw new TypeError('encoding must be a string')
22211 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
22212 throw new TypeError('Unknown encoding: ' + encoding)
22214 } else if (typeof val === 'number') {
22218 // Invalid ranges are not set to a default, so can range check early.
22219 if (start <
0 || this.length < start || this.length < end) {
22220 throw new RangeError('Out of range index')
22223 if (end <= start) {
22227 start = start
>>> 0
22228 end = end === undefined ? this.length : end
>>> 0
22233 if (typeof val === 'number') {
22234 for (i = start; i < end; ++i) {
22238 var bytes = Buffer.isBuffer(val)
22240 : new Buffer(val, encoding)
22241 var len = bytes.length
22242 for (i =
0; i < end - start; ++i) {
22243 this[i + start] = bytes[i % len]
22250 // HELPER FUNCTIONS
22251 // ================
22253 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
22255 function base64clean (str) {
22256 // Node strips out invalid characters like \n and \t from the string, base64-js does not
22257 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
22258 // Node converts strings with length <
2 to ''
22259 if (str.length <
2) return ''
22260 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
22261 while (str.length %
4 !==
0) {
22267 function stringtrim (str) {
22268 if (str.trim) return str.trim()
22269 return str.replace(/^\s+|\s+$/g, '')
22272 function toHex (n) {
22273 if (n <
16) return '
0' + n.toString(
16)
22274 return n.toString(
16)
22277 function utf8ToBytes (string, units) {
22278 units = units || Infinity
22280 var length = string.length
22281 var leadSurrogate = null
22284 for (var i =
0; i < length; ++i) {
22285 codePoint = string.charCodeAt(i)
22287 // is surrogate component
22288 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
22289 // last char was a lead
22290 if (!leadSurrogate) {
22292 if (codePoint
> 0xDBFF) {
22293 // unexpected trail
22294 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22296 } else if (i +
1 === length) {
22298 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22303 leadSurrogate = codePoint
22308 //
2 leads in a row
22309 if (codePoint <
0xDC00) {
22310 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22311 leadSurrogate = codePoint
22315 // valid surrogate pair
22316 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
22317 } else if (leadSurrogate) {
22318 // valid bmp char, but last char was a lead
22319 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22322 leadSurrogate = null
22325 if (codePoint <
0x80) {
22326 if ((units -=
1) <
0) break
22327 bytes.push(codePoint)
22328 } else if (codePoint <
0x800) {
22329 if ((units -=
2) <
0) break
22331 codePoint
>> 0x6 |
0xC0,
22332 codePoint &
0x3F |
0x80
22334 } else if (codePoint <
0x10000) {
22335 if ((units -=
3) <
0) break
22337 codePoint
>> 0xC |
0xE0,
22338 codePoint
>> 0x6 &
0x3F |
0x80,
22339 codePoint &
0x3F |
0x80
22341 } else if (codePoint <
0x110000) {
22342 if ((units -=
4) <
0) break
22344 codePoint
>> 0x12 |
0xF0,
22345 codePoint
>> 0xC &
0x3F |
0x80,
22346 codePoint
>> 0x6 &
0x3F |
0x80,
22347 codePoint &
0x3F |
0x80
22350 throw new Error('Invalid code point')
22357 function asciiToBytes (str) {
22359 for (var i =
0; i < str.length; ++i) {
22360 // Node's code seems to be doing this and not &
0x7F..
22361 byteArray.push(str.charCodeAt(i) &
0xFF)
22366 function utf16leToBytes (str, units) {
22369 for (var i =
0; i < str.length; ++i) {
22370 if ((units -=
2) <
0) break
22372 c = str.charCodeAt(i)
22382 function base64ToBytes (str) {
22383 return base64.toByteArray(base64clean(str))
22386 function blitBuffer (src, dst, offset, length) {
22387 for (var i =
0; i < length; ++i) {
22388 if ((i + offset
>= dst.length) || (i
>= src.length)) break
22389 dst[i + offset] = src[i]
22394 function isnan (val) {
22395 return val !== val // eslint-disable-line no-self-compare
22398 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
22399 (function (Buffer){
22400 // Copyright Joyent, Inc. and other Node contributors.
22402 // Permission is hereby granted, free of charge, to any person obtaining a
22403 // copy of this software and associated documentation files (the
22404 // "Software"), to deal in the Software without restriction, including
22405 // without limitation the rights to use, copy, modify, merge, publish,
22406 // distribute, sublicense, and/or sell copies of the Software, and to permit
22407 // persons to whom the Software is furnished to do so, subject to the
22408 // following conditions:
22410 // The above copyright notice and this permission notice shall be included
22411 // in all copies or substantial portions of the Software.
22413 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22414 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22415 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22416 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22417 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22418 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22419 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22421 // NOTE: These type checking functions intentionally don't use `instanceof`
22422 // because it is fragile and can be easily faked with `Object.create()`.
22424 function isArray(arg) {
22425 if (Array.isArray) {
22426 return Array.isArray(arg);
22428 return objectToString(arg) === '[object Array]';
22430 exports.isArray = isArray;
22432 function isBoolean(arg) {
22433 return typeof arg === 'boolean';
22435 exports.isBoolean = isBoolean;
22437 function isNull(arg) {
22438 return arg === null;
22440 exports.isNull = isNull;
22442 function isNullOrUndefined(arg) {
22443 return arg == null;
22445 exports.isNullOrUndefined = isNullOrUndefined;
22447 function isNumber(arg) {
22448 return typeof arg === 'number';
22450 exports.isNumber = isNumber;
22452 function isString(arg) {
22453 return typeof arg === 'string';
22455 exports.isString = isString;
22457 function isSymbol(arg) {
22458 return typeof arg === 'symbol';
22460 exports.isSymbol = isSymbol;
22462 function isUndefined(arg) {
22463 return arg === void
0;
22465 exports.isUndefined = isUndefined;
22467 function isRegExp(re) {
22468 return objectToString(re) === '[object RegExp]';
22470 exports.isRegExp = isRegExp;
22472 function isObject(arg) {
22473 return typeof arg === 'object' && arg !== null;
22475 exports.isObject = isObject;
22477 function isDate(d) {
22478 return objectToString(d) === '[object Date]';
22480 exports.isDate = isDate;
22482 function isError(e) {
22483 return (objectToString(e) === '[object Error]' || e instanceof Error);
22485 exports.isError = isError;
22487 function isFunction(arg) {
22488 return typeof arg === 'function';
22490 exports.isFunction = isFunction;
22492 function isPrimitive(arg) {
22493 return arg === null ||
22494 typeof arg === 'boolean' ||
22495 typeof arg === 'number' ||
22496 typeof arg === 'string' ||
22497 typeof arg === 'symbol' || // ES6 symbol
22498 typeof arg === 'undefined';
22500 exports.isPrimitive = isPrimitive;
22502 exports.isBuffer = Buffer.isBuffer;
22504 function objectToString(o) {
22505 return Object.prototype.toString.call(o);
22508 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
22509 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
22510 // Copyright Joyent, Inc. and other Node contributors.
22512 // Permission is hereby granted, free of charge, to any person obtaining a
22513 // copy of this software and associated documentation files (the
22514 // "Software"), to deal in the Software without restriction, including
22515 // without limitation the rights to use, copy, modify, merge, publish,
22516 // distribute, sublicense, and/or sell copies of the Software, and to permit
22517 // persons to whom the Software is furnished to do so, subject to the
22518 // following conditions:
22520 // The above copyright notice and this permission notice shall be included
22521 // in all copies or substantial portions of the Software.
22523 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22524 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22525 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22526 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22527 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22528 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22529 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22531 function EventEmitter() {
22532 this._events = this._events || {};
22533 this._maxListeners = this._maxListeners || undefined;
22535 module.exports = EventEmitter;
22537 // Backwards-compat with node
0.10.x
22538 EventEmitter.EventEmitter = EventEmitter;
22540 EventEmitter.prototype._events = undefined;
22541 EventEmitter.prototype._maxListeners = undefined;
22543 // By default EventEmitters will print a warning if more than
10 listeners are
22544 // added to it. This is a useful default which helps finding memory leaks.
22545 EventEmitter.defaultMaxListeners =
10;
22547 // Obviously not all Emitters should be limited to
10. This function allows
22548 // that to be increased. Set to zero for unlimited.
22549 EventEmitter.prototype.setMaxListeners = function(n) {
22550 if (!isNumber(n) || n <
0 || isNaN(n))
22551 throw TypeError('n must be a positive number');
22552 this._maxListeners = n;
22556 EventEmitter.prototype.emit = function(type) {
22557 var er, handler, len, args, i, listeners;
22562 // If there is no 'error' event listener then throw.
22563 if (type === 'error') {
22564 if (!this._events.error ||
22565 (isObject(this._events.error) && !this._events.error.length)) {
22567 if (er instanceof Error) {
22568 throw er; // Unhandled 'error' event
22570 // At least give some kind of context to the user
22571 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
22578 handler = this._events[type];
22580 if (isUndefined(handler))
22583 if (isFunction(handler)) {
22584 switch (arguments.length) {
22587 handler.call(this);
22590 handler.call(this, arguments[
1]);
22593 handler.call(this, arguments[
1], arguments[
2]);
22597 args = Array.prototype.slice.call(arguments,
1);
22598 handler.apply(this, args);
22600 } else if (isObject(handler)) {
22601 args = Array.prototype.slice.call(arguments,
1);
22602 listeners = handler.slice();
22603 len = listeners.length;
22604 for (i =
0; i < len; i++)
22605 listeners[i].apply(this, args);
22611 EventEmitter.prototype.addListener = function(type, listener) {
22614 if (!isFunction(listener))
22615 throw TypeError('listener must be a function');
22620 // To avoid recursion in the case that type === "newListener"! Before
22621 // adding it to the listeners, first emit "newListener".
22622 if (this._events.newListener)
22623 this.emit('newListener', type,
22624 isFunction(listener.listener) ?
22625 listener.listener : listener);
22627 if (!this._events[type])
22628 // Optimize the case of one listener. Don't need the extra array object.
22629 this._events[type] = listener;
22630 else if (isObject(this._events[type]))
22631 // If we've already got an array, just append.
22632 this._events[type].push(listener);
22634 // Adding the second element, need to change to array.
22635 this._events[type] = [this._events[type], listener];
22637 // Check for listener leak
22638 if (isObject(this._events[type]) && !this._events[type].warned) {
22639 if (!isUndefined(this._maxListeners)) {
22640 m = this._maxListeners;
22642 m = EventEmitter.defaultMaxListeners;
22645 if (m && m
> 0 && this._events[type].length
> m) {
22646 this._events[type].warned = true;
22647 console.error('(node) warning: possible EventEmitter memory ' +
22648 'leak detected. %d listeners added. ' +
22649 'Use emitter.setMaxListeners() to increase limit.',
22650 this._events[type].length);
22651 if (typeof console.trace === 'function') {
22652 // not supported in IE
10
22661 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
22663 EventEmitter.prototype.once = function(type, listener) {
22664 if (!isFunction(listener))
22665 throw TypeError('listener must be a function');
22670 this.removeListener(type, g);
22674 listener.apply(this, arguments);
22678 g.listener = listener;
22684 // emits a 'removeListener' event iff the listener was removed
22685 EventEmitter.prototype.removeListener = function(type, listener) {
22686 var list, position, length, i;
22688 if (!isFunction(listener))
22689 throw TypeError('listener must be a function');
22691 if (!this._events || !this._events[type])
22694 list = this._events[type];
22695 length = list.length;
22698 if (list === listener ||
22699 (isFunction(list.listener) && list.listener === listener)) {
22700 delete this._events[type];
22701 if (this._events.removeListener)
22702 this.emit('removeListener', type, listener);
22704 } else if (isObject(list)) {
22705 for (i = length; i--
> 0;) {
22706 if (list[i] === listener ||
22707 (list[i].listener && list[i].listener === listener)) {
22716 if (list.length ===
1) {
22718 delete this._events[type];
22720 list.splice(position,
1);
22723 if (this._events.removeListener)
22724 this.emit('removeListener', type, listener);
22730 EventEmitter.prototype.removeAllListeners = function(type) {
22731 var key, listeners;
22736 // not listening for removeListener, no need to emit
22737 if (!this._events.removeListener) {
22738 if (arguments.length ===
0)
22740 else if (this._events[type])
22741 delete this._events[type];
22745 // emit removeListener for all listeners on all events
22746 if (arguments.length ===
0) {
22747 for (key in this._events) {
22748 if (key === 'removeListener') continue;
22749 this.removeAllListeners(key);
22751 this.removeAllListeners('removeListener');
22756 listeners = this._events[type];
22758 if (isFunction(listeners)) {
22759 this.removeListener(type, listeners);
22760 } else if (listeners) {
22762 while (listeners.length)
22763 this.removeListener(type, listeners[listeners.length -
1]);
22765 delete this._events[type];
22770 EventEmitter.prototype.listeners = function(type) {
22772 if (!this._events || !this._events[type])
22774 else if (isFunction(this._events[type]))
22775 ret = [this._events[type]];
22777 ret = this._events[type].slice();
22781 EventEmitter.prototype.listenerCount = function(type) {
22782 if (this._events) {
22783 var evlistener = this._events[type];
22785 if (isFunction(evlistener))
22787 else if (evlistener)
22788 return evlistener.length;
22793 EventEmitter.listenerCount = function(emitter, type) {
22794 return emitter.listenerCount(type);
22797 function isFunction(arg) {
22798 return typeof arg === 'function';
22801 function isNumber(arg) {
22802 return typeof arg === 'number';
22805 function isObject(arg) {
22806 return typeof arg === 'object' && arg !== null;
22809 function isUndefined(arg) {
22810 return arg === void
0;
22813 },{}],
8:[function(require,module,exports){
22814 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
22816 var eLen = nBytes *
8 - mLen -
1
22817 var eMax = (
1 << eLen) -
1
22818 var eBias = eMax
>> 1
22820 var i = isLE ? (nBytes -
1) :
0
22821 var d = isLE ? -
1 :
1
22822 var s = buffer[offset + i]
22826 e = s & ((
1 << (-nBits)) -
1)
22829 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
22831 m = e & ((
1 << (-nBits)) -
1)
22834 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
22838 } else if (e === eMax) {
22839 return m ? NaN : ((s ? -
1 :
1) * Infinity)
22841 m = m + Math.pow(
2, mLen)
22844 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
22847 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
22849 var eLen = nBytes *
8 - mLen -
1
22850 var eMax = (
1 << eLen) -
1
22851 var eBias = eMax
>> 1
22852 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
22853 var i = isLE ?
0 : (nBytes -
1)
22854 var d = isLE ?
1 : -
1
22855 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
22857 value = Math.abs(value)
22859 if (isNaN(value) || value === Infinity) {
22860 m = isNaN(value) ?
1 :
0
22863 e = Math.floor(Math.log(value) / Math.LN2)
22864 if (value * (c = Math.pow(
2, -e)) <
1) {
22868 if (e + eBias
>=
1) {
22871 value += rt * Math.pow(
2,
1 - eBias)
22873 if (value * c
>=
2) {
22878 if (e + eBias
>= eMax) {
22881 } else if (e + eBias
>=
1) {
22882 m = (value * c -
1) * Math.pow(
2, mLen)
22885 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
22890 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
22892 e = (e << mLen) | m
22894 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
22896 buffer[offset + i - d] |= s *
128
22899 },{}],
9:[function(require,module,exports){
22900 if (typeof Object.create === 'function') {
22901 // implementation from standard node.js 'util' module
22902 module.exports = function inherits(ctor, superCtor) {
22903 ctor.super_ = superCtor
22904 ctor.prototype = Object.create(superCtor.prototype, {
22914 // old school shim for old browsers
22915 module.exports = function inherits(ctor, superCtor) {
22916 ctor.super_ = superCtor
22917 var TempCtor = function () {}
22918 TempCtor.prototype = superCtor.prototype
22919 ctor.prototype = new TempCtor()
22920 ctor.prototype.constructor = ctor
22924 },{}],
10:[function(require,module,exports){
22926 * Determine if an object is a Buffer
22928 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22932 // The _isBuffer check is for Safari
5-
7 support, because it's missing
22933 // Object.prototype.constructor. Remove this eventually
22934 module.exports = function (obj) {
22935 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
22938 function isBuffer (obj) {
22939 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
22942 // For Node v0.10 support. Remove this eventually.
22943 function isSlowBuffer (obj) {
22944 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
22947 },{}],
11:[function(require,module,exports){
22948 var toString = {}.toString;
22950 module.exports = Array.isArray || function (arr) {
22951 return toString.call(arr) == '[object Array]';
22954 },{}],
12:[function(require,module,exports){
22955 (function (process){
22958 if (!process.version ||
22959 process.version.indexOf('v0.') ===
0 ||
22960 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
22961 module.exports = nextTick;
22963 module.exports = process.nextTick;
22966 function nextTick(fn, arg1, arg2, arg3) {
22967 if (typeof fn !== 'function') {
22968 throw new TypeError('"callback" argument must be a function');
22970 var len = arguments.length;
22975 return process.nextTick(fn);
22977 return process.nextTick(function afterTickOne() {
22978 fn.call(null, arg1);
22981 return process.nextTick(function afterTickTwo() {
22982 fn.call(null, arg1, arg2);
22985 return process.nextTick(function afterTickThree() {
22986 fn.call(null, arg1, arg2, arg3);
22989 args = new Array(len -
1);
22991 while (i < args.length) {
22992 args[i++] = arguments[i];
22994 return process.nextTick(function afterTick() {
22995 fn.apply(null, args);
23000 }).call(this,require('_process'))
23001 },{"_process":
13}],
13:[function(require,module,exports){
23002 // shim for using process in browser
23003 var process = module.exports = {};
23005 // cached from whatever global is present so that test runners that stub it
23006 // don't break things. But we need to wrap it in a try catch in case it is
23007 // wrapped in strict mode code which doesn't define any globals. It's inside a
23008 // function because try/catches deoptimize in certain engines.
23010 var cachedSetTimeout;
23011 var cachedClearTimeout;
23013 function defaultSetTimout() {
23014 throw new Error('setTimeout has not been defined');
23016 function defaultClearTimeout () {
23017 throw new Error('clearTimeout has not been defined');
23021 if (typeof setTimeout === 'function') {
23022 cachedSetTimeout = setTimeout;
23024 cachedSetTimeout = defaultSetTimout;
23027 cachedSetTimeout = defaultSetTimout;
23030 if (typeof clearTimeout === 'function') {
23031 cachedClearTimeout = clearTimeout;
23033 cachedClearTimeout = defaultClearTimeout;
23036 cachedClearTimeout = defaultClearTimeout;
23039 function runTimeout(fun) {
23040 if (cachedSetTimeout === setTimeout) {
23041 //normal enviroments in sane situations
23042 return setTimeout(fun,
0);
23044 // if setTimeout wasn't available but was latter defined
23045 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
23046 cachedSetTimeout = setTimeout;
23047 return setTimeout(fun,
0);
23050 // when when somebody has screwed with setTimeout but no I.E. maddness
23051 return cachedSetTimeout(fun,
0);
23054 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
23055 return cachedSetTimeout.call(null, fun,
0);
23057 // 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
23058 return cachedSetTimeout.call(this, fun,
0);
23064 function runClearTimeout(marker) {
23065 if (cachedClearTimeout === clearTimeout) {
23066 //normal enviroments in sane situations
23067 return clearTimeout(marker);
23069 // if clearTimeout wasn't available but was latter defined
23070 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
23071 cachedClearTimeout = clearTimeout;
23072 return clearTimeout(marker);
23075 // when when somebody has screwed with setTimeout but no I.E. maddness
23076 return cachedClearTimeout(marker);
23079 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
23080 return cachedClearTimeout.call(null, marker);
23082 // 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.
23083 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
23084 return cachedClearTimeout.call(this, marker);
23092 var draining = false;
23094 var queueIndex = -
1;
23096 function cleanUpNextTick() {
23097 if (!draining || !currentQueue) {
23101 if (currentQueue.length) {
23102 queue = currentQueue.concat(queue);
23106 if (queue.length) {
23111 function drainQueue() {
23115 var timeout = runTimeout(cleanUpNextTick);
23118 var len = queue.length;
23120 currentQueue = queue;
23122 while (++queueIndex < len) {
23123 if (currentQueue) {
23124 currentQueue[queueIndex].run();
23128 len = queue.length;
23130 currentQueue = null;
23132 runClearTimeout(timeout);
23135 process.nextTick = function (fun) {
23136 var args = new Array(arguments.length -
1);
23137 if (arguments.length
> 1) {
23138 for (var i =
1; i < arguments.length; i++) {
23139 args[i -
1] = arguments[i];
23142 queue.push(new Item(fun, args));
23143 if (queue.length ===
1 && !draining) {
23144 runTimeout(drainQueue);
23148 // v8 likes predictible objects
23149 function Item(fun, array) {
23151 this.array = array;
23153 Item.prototype.run = function () {
23154 this.fun.apply(null, this.array);
23156 process.title = 'browser';
23157 process.browser = true;
23160 process.version = ''; // empty string to avoid regexp issues
23161 process.versions = {};
23166 process.addListener = noop;
23167 process.once = noop;
23168 process.off = noop;
23169 process.removeListener = noop;
23170 process.removeAllListeners = noop;
23171 process.emit = noop;
23173 process.binding = function (name) {
23174 throw new Error('process.binding is not supported');
23177 process.cwd = function () { return '/' };
23178 process.chdir = function (dir) {
23179 throw new Error('process.chdir is not supported');
23181 process.umask = function() { return
0; };
23183 },{}],
14:[function(require,module,exports){
23184 module.exports = require(
"./lib/_stream_duplex.js")
23186 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
23187 // a duplex stream is just a stream that is both readable and writable.
23188 // Since JS doesn't have multiple prototypal inheritance, this class
23189 // prototypally inherits from Readable, and then parasitically from
23196 var objectKeys = Object.keys || function (obj) {
23198 for (var key in obj) {
23204 module.exports = Duplex;
23207 var processNextTick = require('process-nextick-args');
23211 var util = require('core-util-is');
23212 util.inherits = require('inherits');
23215 var Readable = require('./_stream_readable');
23216 var Writable = require('./_stream_writable');
23218 util.inherits(Duplex, Readable);
23220 var keys = objectKeys(Writable.prototype);
23221 for (var v =
0; v < keys.length; v++) {
23222 var method = keys[v];
23223 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
23226 function Duplex(options) {
23227 if (!(this instanceof Duplex)) return new Duplex(options);
23229 Readable.call(this, options);
23230 Writable.call(this, options);
23232 if (options && options.readable === false) this.readable = false;
23234 if (options && options.writable === false) this.writable = false;
23236 this.allowHalfOpen = true;
23237 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
23239 this.once('end', onend);
23242 // the no-half-open enforcer
23244 // if we allow half-open state, or if the writable side ended,
23246 if (this.allowHalfOpen || this._writableState.ended) return;
23248 // no more data can be written.
23249 // But allow more writes to happen in this tick.
23250 processNextTick(onEndNT, this);
23253 function onEndNT(self) {
23257 function forEach(xs, f) {
23258 for (var i =
0, l = xs.length; i < l; i++) {
23262 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
23263 // a passthrough stream.
23264 // basically just the most minimal sort of Transform stream.
23265 // Every written chunk gets output as-is.
23269 module.exports = PassThrough;
23271 var Transform = require('./_stream_transform');
23274 var util = require('core-util-is');
23275 util.inherits = require('inherits');
23278 util.inherits(PassThrough, Transform);
23280 function PassThrough(options) {
23281 if (!(this instanceof PassThrough)) return new PassThrough(options);
23283 Transform.call(this, options);
23286 PassThrough.prototype._transform = function (chunk, encoding, cb) {
23289 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
23290 (function (process){
23293 module.exports = Readable;
23296 var processNextTick = require('process-nextick-args');
23300 var isArray = require('isarray');
23307 Readable.ReadableState = ReadableState;
23310 var EE = require('events').EventEmitter;
23312 var EElistenerCount = function (emitter, type) {
23313 return emitter.listeners(type).length;
23321 Stream = require('st' + 'ream');
23322 } catch (_) {} finally {
23323 if (!Stream) Stream = require('events').EventEmitter;
23328 var Buffer = require('buffer').Buffer;
23330 var bufferShim = require('buffer-shims');
23334 var util = require('core-util-is');
23335 util.inherits = require('inherits');
23339 var debugUtil = require('util');
23340 var debug = void
0;
23341 if (debugUtil && debugUtil.debuglog) {
23342 debug = debugUtil.debuglog('stream');
23344 debug = function () {};
23348 var BufferList = require('./internal/streams/BufferList');
23351 util.inherits(Readable, Stream);
23353 function prependListener(emitter, event, fn) {
23354 // Sadly this is not cacheable as some libraries bundle their own
23355 // event emitter implementation with them.
23356 if (typeof emitter.prependListener === 'function') {
23357 return emitter.prependListener(event, fn);
23359 // This is a hack to make sure that our error handler is attached before any
23360 // userland ones. NEVER DO THIS. This is here only because this code needs
23361 // to continue to work with older versions of Node.js that do not include
23362 // the prependListener() method. The goal is to eventually remove this hack.
23363 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]];
23367 function ReadableState(options, stream) {
23368 Duplex = Duplex || require('./_stream_duplex');
23370 options = options || {};
23372 // object stream flag. Used to make read(n) ignore n and to
23373 // make all the buffer merging and length checks go away
23374 this.objectMode = !!options.objectMode;
23376 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
23378 // the point at which it stops calling _read() to fill the buffer
23379 // Note:
0 is a valid value, means "don't call _read preemptively ever"
23380 var hwm = options.highWaterMark;
23381 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
23382 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
23385 this.highWaterMark = ~ ~this.highWaterMark;
23387 // A linked list is used to store data chunks instead of an array because the
23388 // linked list can remove elements from the beginning faster than
23390 this.buffer = new BufferList();
23393 this.pipesCount =
0;
23394 this.flowing = null;
23395 this.ended = false;
23396 this.endEmitted = false;
23397 this.reading = false;
23399 // a flag to be able to tell if the onwrite cb is called immediately,
23400 // or on a later tick. We set this to true at first, because any
23401 // actions that shouldn't happen until "later" should generally also
23402 // not happen before the first write call.
23405 // whenever we return null, then we set a flag to say
23406 // that we're awaiting a 'readable' event emission.
23407 this.needReadable = false;
23408 this.emittedReadable = false;
23409 this.readableListening = false;
23410 this.resumeScheduled = false;
23412 // Crypto is kind of old and crusty. Historically, its default string
23413 // encoding is 'binary' so we have to make this configurable.
23414 // Everything else in the universe uses 'utf8', though.
23415 this.defaultEncoding = options.defaultEncoding || 'utf8';
23417 // when piping, we only care about 'readable' events that happen
23418 // after read()ing all the bytes and not getting any pushback.
23419 this.ranOut = false;
23421 // the number of writers that are awaiting a drain event in .pipe()s
23422 this.awaitDrain =
0;
23424 // if true, a maybeReadMore has been scheduled
23425 this.readingMore = false;
23427 this.decoder = null;
23428 this.encoding = null;
23429 if (options.encoding) {
23430 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
23431 this.decoder = new StringDecoder(options.encoding);
23432 this.encoding = options.encoding;
23436 function Readable(options) {
23437 Duplex = Duplex || require('./_stream_duplex');
23439 if (!(this instanceof Readable)) return new Readable(options);
23441 this._readableState = new ReadableState(options, this);
23444 this.readable = true;
23446 if (options && typeof options.read === 'function') this._read = options.read;
23451 // Manually shove something into the read() buffer.
23452 // This returns true if the highWaterMark has not been hit yet,
23453 // similar to how Writable.write() returns true if you should
23454 // write() some more.
23455 Readable.prototype.push = function (chunk, encoding) {
23456 var state = this._readableState;
23458 if (!state.objectMode && typeof chunk === 'string') {
23459 encoding = encoding || state.defaultEncoding;
23460 if (encoding !== state.encoding) {
23461 chunk = bufferShim.from(chunk, encoding);
23466 return readableAddChunk(this, state, chunk, encoding, false);
23469 // Unshift should *always* be something directly out of read()
23470 Readable.prototype.unshift = function (chunk) {
23471 var state = this._readableState;
23472 return readableAddChunk(this, state, chunk, '', true);
23475 Readable.prototype.isPaused = function () {
23476 return this._readableState.flowing === false;
23479 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
23480 var er = chunkInvalid(state, chunk);
23482 stream.emit('error', er);
23483 } else if (chunk === null) {
23484 state.reading = false;
23485 onEofChunk(stream, state);
23486 } else if (state.objectMode || chunk && chunk.length
> 0) {
23487 if (state.ended && !addToFront) {
23488 var e = new Error('stream.push() after EOF');
23489 stream.emit('error', e);
23490 } else if (state.endEmitted && addToFront) {
23491 var _e = new Error('stream.unshift() after end event');
23492 stream.emit('error', _e);
23495 if (state.decoder && !addToFront && !encoding) {
23496 chunk = state.decoder.write(chunk);
23497 skipAdd = !state.objectMode && chunk.length ===
0;
23500 if (!addToFront) state.reading = false;
23502 // Don't add to the buffer if we've decoded to an empty string chunk and
23503 // we're not in object mode
23505 // if we want the data now, just emit it.
23506 if (state.flowing && state.length ===
0 && !state.sync) {
23507 stream.emit('data', chunk);
23510 // update the buffer info.
23511 state.length += state.objectMode ?
1 : chunk.length;
23512 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
23514 if (state.needReadable) emitReadable(stream);
23518 maybeReadMore(stream, state);
23520 } else if (!addToFront) {
23521 state.reading = false;
23524 return needMoreData(state);
23527 // if it's past the high water mark, we can push in some more.
23528 // Also, if we have no data yet, we can stand some
23529 // more bytes. This is to work around cases where hwm=
0,
23530 // such as the repl. Also, if the push() triggered a
23531 // readable event, and the user called read(largeNumber) such that
23532 // needReadable was set, then we ought to push more, so that another
23533 // 'readable' event will be triggered.
23534 function needMoreData(state) {
23535 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
23538 // backwards compatibility.
23539 Readable.prototype.setEncoding = function (enc) {
23540 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
23541 this._readableState.decoder = new StringDecoder(enc);
23542 this._readableState.encoding = enc;
23546 // Don't raise the hwm
> 8MB
23547 var MAX_HWM =
0x800000;
23548 function computeNewHighWaterMark(n) {
23549 if (n
>= MAX_HWM) {
23552 // Get the next highest power of
2 to prevent increasing hwm excessively in
23565 // This function is designed to be inlinable, so please take care when making
23566 // changes to the function body.
23567 function howMuchToRead(n, state) {
23568 if (n <=
0 || state.length ===
0 && state.ended) return
0;
23569 if (state.objectMode) return
1;
23571 // Only flow one buffer at a time
23572 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
23574 // If we're asking for more than the current hwm, then raise the hwm.
23575 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
23576 if (n <= state.length) return n;
23577 // Don't have enough
23578 if (!state.ended) {
23579 state.needReadable = true;
23582 return state.length;
23585 // you can override either this method, or the async _read(n) below.
23586 Readable.prototype.read = function (n) {
23588 n = parseInt(n,
10);
23589 var state = this._readableState;
23592 if (n !==
0) state.emittedReadable = false;
23594 // if we're doing read(
0) to trigger a readable event, but we
23595 // already have a bunch of data in the buffer, then just trigger
23596 // the 'readable' event and move on.
23597 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
23598 debug('read: emitReadable', state.length, state.ended);
23599 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
23603 n = howMuchToRead(n, state);
23605 // if we've ended, and we're now clear, then finish it up.
23606 if (n ===
0 && state.ended) {
23607 if (state.length ===
0) endReadable(this);
23611 // All the actual chunk generation logic needs to be
23612 // *below* the call to _read. The reason is that in certain
23613 // synthetic stream cases, such as passthrough streams, _read
23614 // may be a completely synchronous operation which may change
23615 // the state of the read buffer, providing enough data when
23616 // before there was *not* enough.
23618 // So, the steps are:
23619 //
1. Figure out what the state of things will be after we do
23620 // a read from the buffer.
23622 //
2. If that resulting state will trigger a _read, then call _read.
23623 // Note that this may be asynchronous, or synchronous. Yes, it is
23624 // deeply ugly to write APIs this way, but that still doesn't mean
23625 // that the Readable class should behave improperly, as streams are
23626 // designed to be sync/async agnostic.
23627 // Take note if the _read call is sync or async (ie, if the read call
23628 // has returned yet), so that we know whether or not it's safe to emit
23631 //
3. Actually pull the requested chunks out of the buffer and return.
23633 // if we need a readable event, then we need to do some reading.
23634 var doRead = state.needReadable;
23635 debug('need readable', doRead);
23637 // if we currently have less than the highWaterMark, then also read some
23638 if (state.length ===
0 || state.length - n < state.highWaterMark) {
23640 debug('length less than watermark', doRead);
23643 // however, if we've ended, then there's no point, and if we're already
23644 // reading, then it's unnecessary.
23645 if (state.ended || state.reading) {
23647 debug('reading or ended', doRead);
23648 } else if (doRead) {
23650 state.reading = true;
23652 // if the length is currently zero, then we *need* a readable event.
23653 if (state.length ===
0) state.needReadable = true;
23654 // call internal read method
23655 this._read(state.highWaterMark);
23656 state.sync = false;
23657 // If _read pushed data synchronously, then `reading` will be false,
23658 // and we need to re-evaluate how much data we can return to the user.
23659 if (!state.reading) n = howMuchToRead(nOrig, state);
23663 if (n
> 0) ret = fromList(n, state);else ret = null;
23665 if (ret === null) {
23666 state.needReadable = true;
23672 if (state.length ===
0) {
23673 // If we have nothing in the buffer, then we want to know
23674 // as soon as we *do* get something into the buffer.
23675 if (!state.ended) state.needReadable = true;
23677 // If we tried to read() past the EOF, then emit end on the next tick.
23678 if (nOrig !== n && state.ended) endReadable(this);
23681 if (ret !== null) this.emit('data', ret);
23686 function chunkInvalid(state, chunk) {
23688 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
23689 er = new TypeError('Invalid non-string/buffer chunk');
23694 function onEofChunk(stream, state) {
23695 if (state.ended) return;
23696 if (state.decoder) {
23697 var chunk = state.decoder.end();
23698 if (chunk && chunk.length) {
23699 state.buffer.push(chunk);
23700 state.length += state.objectMode ?
1 : chunk.length;
23703 state.ended = true;
23705 // emit 'readable' now to make sure it gets picked up.
23706 emitReadable(stream);
23709 // Don't emit readable right away in sync mode, because this can trigger
23710 // another read() call =
> stack overflow. This way, it might trigger
23711 // a nextTick recursion warning, but that's not so bad.
23712 function emitReadable(stream) {
23713 var state = stream._readableState;
23714 state.needReadable = false;
23715 if (!state.emittedReadable) {
23716 debug('emitReadable', state.flowing);
23717 state.emittedReadable = true;
23718 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
23722 function emitReadable_(stream) {
23723 debug('emit readable');
23724 stream.emit('readable');
23728 // at this point, the user has presumably seen the 'readable' event,
23729 // and called read() to consume some data. that may have triggered
23730 // in turn another _read(n) call, in which case reading = true if
23731 // it's in progress.
23732 // However, if we're not ended, or reading, and the length < hwm,
23733 // then go ahead and try to read some more preemptively.
23734 function maybeReadMore(stream, state) {
23735 if (!state.readingMore) {
23736 state.readingMore = true;
23737 processNextTick(maybeReadMore_, stream, state);
23741 function maybeReadMore_(stream, state) {
23742 var len = state.length;
23743 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
23744 debug('maybeReadMore read
0');
23746 if (len === state.length)
23747 // didn't get any data, stop spinning.
23748 break;else len = state.length;
23750 state.readingMore = false;
23753 // abstract method. to be overridden in specific implementation classes.
23754 // call cb(er, data) where data is <= n in length.
23755 // for virtual (non-string, non-buffer) streams, "length" is somewhat
23756 // arbitrary, and perhaps not very meaningful.
23757 Readable.prototype._read = function (n) {
23758 this.emit('error', new Error('_read() is not implemented'));
23761 Readable.prototype.pipe = function (dest, pipeOpts) {
23763 var state = this._readableState;
23765 switch (state.pipesCount) {
23767 state.pipes = dest;
23770 state.pipes = [state.pipes, dest];
23773 state.pipes.push(dest);
23776 state.pipesCount +=
1;
23777 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
23779 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
23781 var endFn = doEnd ? onend : cleanup;
23782 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
23784 dest.on('unpipe', onunpipe);
23785 function onunpipe(readable) {
23787 if (readable === src) {
23797 // when the dest drains, it reduces the awaitDrain counter
23798 // on the source. This would be more elegant with a .once()
23799 // handler in flow(), but adding and removing repeatedly is
23801 var ondrain = pipeOnDrain(src);
23802 dest.on('drain', ondrain);
23804 var cleanedUp = false;
23805 function cleanup() {
23807 // cleanup event handlers once the pipe is broken
23808 dest.removeListener('close', onclose);
23809 dest.removeListener('finish', onfinish);
23810 dest.removeListener('drain', ondrain);
23811 dest.removeListener('error', onerror);
23812 dest.removeListener('unpipe', onunpipe);
23813 src.removeListener('end', onend);
23814 src.removeListener('end', cleanup);
23815 src.removeListener('data', ondata);
23819 // if the reader is waiting for a drain event from this
23820 // specific writer, then it would cause it to never start
23822 // So, if this is awaiting a drain, then we just call it now.
23823 // If we don't know, then assume that we are waiting for one.
23824 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
23827 // If the user pushes more data while we're writing to dest then we'll end up
23828 // in ondata again. However, we only want to increase awaitDrain once because
23829 // dest will only emit one 'drain' event for the multiple writes.
23830 // =
> Introduce a guard on increasing awaitDrain.
23831 var increasedAwaitDrain = false;
23832 src.on('data', ondata);
23833 function ondata(chunk) {
23835 increasedAwaitDrain = false;
23836 var ret = dest.write(chunk);
23837 if (false === ret && !increasedAwaitDrain) {
23838 // If the user unpiped during `dest.write()`, it is possible
23839 // to get stuck in a permanently paused state if that write
23840 // also returned false.
23841 // =
> Check whether `dest` is still a piping destination.
23842 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
23843 debug('false write response, pause', src._readableState.awaitDrain);
23844 src._readableState.awaitDrain++;
23845 increasedAwaitDrain = true;
23851 // if the dest has an error, then stop piping into it.
23852 // however, don't suppress the throwing behavior for this.
23853 function onerror(er) {
23854 debug('onerror', er);
23856 dest.removeListener('error', onerror);
23857 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
23860 // Make sure our error handler is attached before userland ones.
23861 prependListener(dest, 'error', onerror);
23863 // Both close and finish should trigger unpipe, but only once.
23864 function onclose() {
23865 dest.removeListener('finish', onfinish);
23868 dest.once('close', onclose);
23869 function onfinish() {
23871 dest.removeListener('close', onclose);
23874 dest.once('finish', onfinish);
23876 function unpipe() {
23881 // tell the dest that it's being piped to
23882 dest.emit('pipe', src);
23884 // start the flow if it hasn't been started already.
23885 if (!state.flowing) {
23886 debug('pipe resume');
23893 function pipeOnDrain(src) {
23894 return function () {
23895 var state = src._readableState;
23896 debug('pipeOnDrain', state.awaitDrain);
23897 if (state.awaitDrain) state.awaitDrain--;
23898 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
23899 state.flowing = true;
23905 Readable.prototype.unpipe = function (dest) {
23906 var state = this._readableState;
23908 // if we're not piping anywhere, then do nothing.
23909 if (state.pipesCount ===
0) return this;
23911 // just one destination. most common case.
23912 if (state.pipesCount ===
1) {
23913 // passed in one, but it's not the right one.
23914 if (dest && dest !== state.pipes) return this;
23916 if (!dest) dest = state.pipes;
23919 state.pipes = null;
23920 state.pipesCount =
0;
23921 state.flowing = false;
23922 if (dest) dest.emit('unpipe', this);
23926 // slow case. multiple pipe destinations.
23930 var dests = state.pipes;
23931 var len = state.pipesCount;
23932 state.pipes = null;
23933 state.pipesCount =
0;
23934 state.flowing = false;
23936 for (var i =
0; i < len; i++) {
23937 dests[i].emit('unpipe', this);
23941 // try to find the right one.
23942 var index = indexOf(state.pipes, dest);
23943 if (index === -
1) return this;
23945 state.pipes.splice(index,
1);
23946 state.pipesCount -=
1;
23947 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
23949 dest.emit('unpipe', this);
23954 // set up data events if they are asked for
23955 // Ensure readable listeners eventually get something
23956 Readable.prototype.on = function (ev, fn) {
23957 var res = Stream.prototype.on.call(this, ev, fn);
23959 if (ev === 'data') {
23960 // Start flowing on next tick if stream isn't explicitly paused
23961 if (this._readableState.flowing !== false) this.resume();
23962 } else if (ev === 'readable') {
23963 var state = this._readableState;
23964 if (!state.endEmitted && !state.readableListening) {
23965 state.readableListening = state.needReadable = true;
23966 state.emittedReadable = false;
23967 if (!state.reading) {
23968 processNextTick(nReadingNextTick, this);
23969 } else if (state.length) {
23970 emitReadable(this, state);
23977 Readable.prototype.addListener = Readable.prototype.on;
23979 function nReadingNextTick(self) {
23980 debug('readable nexttick read
0');
23984 // pause() and resume() are remnants of the legacy readable stream API
23985 // If the user uses them, then switch into old mode.
23986 Readable.prototype.resume = function () {
23987 var state = this._readableState;
23988 if (!state.flowing) {
23990 state.flowing = true;
23991 resume(this, state);
23996 function resume(stream, state) {
23997 if (!state.resumeScheduled) {
23998 state.resumeScheduled = true;
23999 processNextTick(resume_, stream, state);
24003 function resume_(stream, state) {
24004 if (!state.reading) {
24005 debug('resume read
0');
24009 state.resumeScheduled = false;
24010 state.awaitDrain =
0;
24011 stream.emit('resume');
24013 if (state.flowing && !state.reading) stream.read(
0);
24016 Readable.prototype.pause = function () {
24017 debug('call pause flowing=%j', this._readableState.flowing);
24018 if (false !== this._readableState.flowing) {
24020 this._readableState.flowing = false;
24021 this.emit('pause');
24026 function flow(stream) {
24027 var state = stream._readableState;
24028 debug('flow', state.flowing);
24029 while (state.flowing && stream.read() !== null) {}
24032 // wrap an old-style stream as the async data source.
24033 // This is *not* part of the readable stream interface.
24034 // It is an ugly unfortunate mess of history.
24035 Readable.prototype.wrap = function (stream) {
24036 var state = this._readableState;
24037 var paused = false;
24040 stream.on('end', function () {
24041 debug('wrapped end');
24042 if (state.decoder && !state.ended) {
24043 var chunk = state.decoder.end();
24044 if (chunk && chunk.length) self.push(chunk);
24050 stream.on('data', function (chunk) {
24051 debug('wrapped data');
24052 if (state.decoder) chunk = state.decoder.write(chunk);
24054 // don't skip over falsy values in objectMode
24055 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
24057 var ret = self.push(chunk);
24064 // proxy all the other methods.
24065 // important when wrapping filters and duplexes.
24066 for (var i in stream) {
24067 if (this[i] === undefined && typeof stream[i] === 'function') {
24068 this[i] = function (method) {
24069 return function () {
24070 return stream[method].apply(stream, arguments);
24076 // proxy certain important events.
24077 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
24078 forEach(events, function (ev) {
24079 stream.on(ev, self.emit.bind(self, ev));
24082 // when we try to consume some more bytes, simply unpause the
24083 // underlying stream.
24084 self._read = function (n) {
24085 debug('wrapped _read', n);
24095 // exposed for testing purposes only.
24096 Readable._fromList = fromList;
24098 // Pluck off n bytes from an array of buffers.
24099 // Length is the combined lengths of all the buffers in the list.
24100 // This function is designed to be inlinable, so please take care when making
24101 // changes to the function body.
24102 function fromList(n, state) {
24103 // nothing buffered
24104 if (state.length ===
0) return null;
24107 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
24108 // read it all, truncate the list
24109 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);
24110 state.buffer.clear();
24112 // read part of list
24113 ret = fromListPartial(n, state.buffer, state.decoder);
24119 // Extracts only enough buffered data to satisfy the amount requested.
24120 // This function is designed to be inlinable, so please take care when making
24121 // changes to the function body.
24122 function fromListPartial(n, list, hasStrings) {
24124 if (n < list.head.data.length) {
24125 // slice is the same for buffers and strings
24126 ret = list.head.data.slice(
0, n);
24127 list.head.data = list.head.data.slice(n);
24128 } else if (n === list.head.data.length) {
24129 // first chunk is a perfect match
24130 ret = list.shift();
24132 // result spans more than one buffer
24133 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
24138 // Copies a specified amount of characters from the list of buffered data
24140 // This function is designed to be inlinable, so please take care when making
24141 // changes to the function body.
24142 function copyFromBufferString(n, list) {
24147 while (p = p.next) {
24149 var nb = n
> str.length ? str.length : n;
24150 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
24153 if (nb === str.length) {
24155 if (p.next) list.head = p.next;else list.head = list.tail = null;
24158 p.data = str.slice(nb);
24168 // Copies a specified amount of bytes from the list of buffered data chunks.
24169 // This function is designed to be inlinable, so please take care when making
24170 // changes to the function body.
24171 function copyFromBuffer(n, list) {
24172 var ret = bufferShim.allocUnsafe(n);
24176 n -= p.data.length;
24177 while (p = p.next) {
24179 var nb = n
> buf.length ? buf.length : n;
24180 buf.copy(ret, ret.length - n,
0, nb);
24183 if (nb === buf.length) {
24185 if (p.next) list.head = p.next;else list.head = list.tail = null;
24188 p.data = buf.slice(nb);
24198 function endReadable(stream) {
24199 var state = stream._readableState;
24201 // If we get here before consuming all the bytes, then that is a
24202 // bug in node. Should never happen.
24203 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
24205 if (!state.endEmitted) {
24206 state.ended = true;
24207 processNextTick(endReadableNT, state, stream);
24211 function endReadableNT(state, stream) {
24212 // Check that we didn't get one last unshift.
24213 if (!state.endEmitted && state.length ===
0) {
24214 state.endEmitted = true;
24215 stream.readable = false;
24216 stream.emit('end');
24220 function forEach(xs, f) {
24221 for (var i =
0, l = xs.length; i < l; i++) {
24226 function indexOf(xs, x) {
24227 for (var i =
0, l = xs.length; i < l; i++) {
24228 if (xs[i] === x) return i;
24232 }).call(this,require('_process'))
24233 },{
"./_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){
24234 // a transform stream is a readable/writable stream where you do
24235 // something with the data. Sometimes it's called a
"filter",
24236 // but that's not a great name for it, since that implies a thing where
24237 // some bits pass through, and others are simply ignored. (That would
24238 // be a valid example of a transform, of course.)
24240 // While the output is causally related to the input, it's not a
24241 // necessarily symmetric or synchronous transformation. For example,
24242 // a zlib stream might take multiple plain-text writes(), and then
24243 // emit a single compressed chunk some time in the future.
24245 // Here's how this works:
24247 // The Transform stream has all the aspects of the readable and writable
24248 // stream classes. When you write(chunk), that calls _write(chunk,cb)
24249 // internally, and returns false if there's a lot of pending writes
24250 // buffered up. When you call read(), that calls _read(n) until
24251 // there's enough pending readable data buffered up.
24253 // In a transform stream, the written data is placed in a buffer. When
24254 // _read(n) is called, it transforms the queued up data, calling the
24255 // buffered _write cb's as it consumes chunks. If consuming a single
24256 // written chunk would result in multiple output chunks, then the first
24257 // outputted bit calls the readcb, and subsequent chunks just go into
24258 // the read buffer, and will cause it to emit 'readable' if necessary.
24260 // This way, back-pressure is actually determined by the reading side,
24261 // since _read has to be called to start processing a new chunk. However,
24262 // a pathological inflate type of transform can cause excessive buffering
24263 // here. For example, imagine a stream where every byte of input is
24264 // interpreted as an integer from
0-
255, and then results in that many
24265 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
24266 //
1kb of data being output. In this case, you could write a very small
24267 // amount of input, and end up with a very large amount of output. In
24268 // such a pathological inflating mechanism, there'd be no way to tell
24269 // the system to stop doing the transform. A single
4MB write could
24270 // cause the system to run out of memory.
24272 // However, even in such a pathological case, only a single written chunk
24273 // would be consumed, and then the rest would wait (un-transformed) until
24274 // the results of the previous transformed chunk were consumed.
24278 module.exports = Transform;
24280 var Duplex = require('./_stream_duplex');
24283 var util = require('core-util-is');
24284 util.inherits = require('inherits');
24287 util.inherits(Transform, Duplex);
24289 function TransformState(stream) {
24290 this.afterTransform = function (er, data) {
24291 return afterTransform(stream, er, data);
24294 this.needTransform = false;
24295 this.transforming = false;
24296 this.writecb = null;
24297 this.writechunk = null;
24298 this.writeencoding = null;
24301 function afterTransform(stream, er, data) {
24302 var ts = stream._transformState;
24303 ts.transforming = false;
24305 var cb = ts.writecb;
24307 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
24309 ts.writechunk = null;
24312 if (data !== null && data !== undefined) stream.push(data);
24316 var rs = stream._readableState;
24317 rs.reading = false;
24318 if (rs.needReadable || rs.length < rs.highWaterMark) {
24319 stream._read(rs.highWaterMark);
24323 function Transform(options) {
24324 if (!(this instanceof Transform)) return new Transform(options);
24326 Duplex.call(this, options);
24328 this._transformState = new TransformState(this);
24332 // start out asking for a readable event once data is transformed.
24333 this._readableState.needReadable = true;
24335 // we have implemented the _read method, and done the other things
24336 // that Readable wants before the first _read call, so unset the
24337 // sync guard flag.
24338 this._readableState.sync = false;
24341 if (typeof options.transform === 'function') this._transform = options.transform;
24343 if (typeof options.flush === 'function') this._flush = options.flush;
24346 // When the writable side finishes, then flush out anything remaining.
24347 this.once('prefinish', function () {
24348 if (typeof this._flush === 'function') this._flush(function (er, data) {
24349 done(stream, er, data);
24350 });else done(stream);
24354 Transform.prototype.push = function (chunk, encoding) {
24355 this._transformState.needTransform = false;
24356 return Duplex.prototype.push.call(this, chunk, encoding);
24359 // This is the part where you do stuff!
24360 // override this function in implementation classes.
24361 // 'chunk' is an input chunk.
24363 // Call `push(newChunk)` to pass along transformed output
24364 // to the readable side. You may call 'push' zero or more times.
24366 // Call `cb(err)` when you are done with this chunk. If you pass
24367 // an error, then that'll put the hurt on the whole operation. If you
24368 // never call cb(), then you'll never get another chunk.
24369 Transform.prototype._transform = function (chunk, encoding, cb) {
24370 throw new Error('_transform() is not implemented');
24373 Transform.prototype._write = function (chunk, encoding, cb) {
24374 var ts = this._transformState;
24376 ts.writechunk = chunk;
24377 ts.writeencoding = encoding;
24378 if (!ts.transforming) {
24379 var rs = this._readableState;
24380 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
24384 // Doesn't matter what the args are here.
24385 // _transform does all the work.
24386 // That we got here means that the readable side wants more data.
24387 Transform.prototype._read = function (n) {
24388 var ts = this._transformState;
24390 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
24391 ts.transforming = true;
24392 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
24394 // mark that we need a transform, so that any data that comes in
24395 // will get processed, now that we've asked for it.
24396 ts.needTransform = true;
24400 function done(stream, er, data) {
24401 if (er) return stream.emit('error', er);
24403 if (data !== null && data !== undefined) stream.push(data);
24405 // if there's nothing in the write buffer, then that means
24406 // that nothing more will ever be provided
24407 var ws = stream._writableState;
24408 var ts = stream._transformState;
24410 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
24412 if (ts.transforming) throw new Error('Calling transform done when still transforming');
24414 return stream.push(null);
24416 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
24417 (function (process){
24418 // A bit simpler than readable streams.
24419 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
24420 // the drain event emission and buffering.
24424 module.exports = Writable;
24427 var processNextTick = require('process-nextick-args');
24431 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
24438 Writable.WritableState = WritableState;
24441 var util = require('core-util-is');
24442 util.inherits = require('inherits');
24446 var internalUtil = {
24447 deprecate: require('util-deprecate')
24455 Stream = require('st' + 'ream');
24456 } catch (_) {} finally {
24457 if (!Stream) Stream = require('events').EventEmitter;
24462 var Buffer = require('buffer').Buffer;
24464 var bufferShim = require('buffer-shims');
24467 util.inherits(Writable, Stream);
24471 function WriteReq(chunk, encoding, cb) {
24472 this.chunk = chunk;
24473 this.encoding = encoding;
24474 this.callback = cb;
24478 function WritableState(options, stream) {
24479 Duplex = Duplex || require('./_stream_duplex');
24481 options = options || {};
24483 // object stream flag to indicate whether or not this stream
24484 // contains buffers or objects.
24485 this.objectMode = !!options.objectMode;
24487 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
24489 // the point at which write() starts returning false
24490 // Note:
0 is a valid value, means that we always return false if
24491 // the entire buffer is not flushed immediately on write()
24492 var hwm = options.highWaterMark;
24493 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
24494 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
24497 this.highWaterMark = ~ ~this.highWaterMark;
24499 // drain event flag.
24500 this.needDrain = false;
24501 // at the start of calling end()
24502 this.ending = false;
24503 // when end() has been called, and returned
24504 this.ended = false;
24505 // when 'finish' is emitted
24506 this.finished = false;
24508 // should we decode strings into buffers before passing to _write?
24509 // this is here so that some node-core streams can optimize string
24510 // handling at a lower level.
24511 var noDecode = options.decodeStrings === false;
24512 this.decodeStrings = !noDecode;
24514 // Crypto is kind of old and crusty. Historically, its default string
24515 // encoding is 'binary' so we have to make this configurable.
24516 // Everything else in the universe uses 'utf8', though.
24517 this.defaultEncoding = options.defaultEncoding || 'utf8';
24519 // not an actual buffer we keep track of, but a measurement
24520 // of how much we're waiting to get pushed to some underlying
24524 // a flag to see when we're in the middle of a write.
24525 this.writing = false;
24527 // when true all writes will be buffered until .uncork() call
24530 // a flag to be able to tell if the onwrite cb is called immediately,
24531 // or on a later tick. We set this to true at first, because any
24532 // actions that shouldn't happen until "later" should generally also
24533 // not happen before the first write call.
24536 // a flag to know if we're processing previously buffered items, which
24537 // may call the _write() callback in the same tick, so that we don't
24538 // end up in an overlapped onwrite situation.
24539 this.bufferProcessing = false;
24541 // the callback that's passed to _write(chunk,cb)
24542 this.onwrite = function (er) {
24543 onwrite(stream, er);
24546 // the callback that the user supplies to write(chunk,encoding,cb)
24547 this.writecb = null;
24549 // the amount that is being written when _write is called.
24552 this.bufferedRequest = null;
24553 this.lastBufferedRequest = null;
24555 // number of pending user-supplied write callbacks
24556 // this must be
0 before 'finish' can be emitted
24557 this.pendingcb =
0;
24559 // emit prefinish if the only thing we're waiting for is _write cbs
24560 // This is relevant for synchronous Transform streams
24561 this.prefinished = false;
24563 // True if the error was already emitted and should not be thrown again
24564 this.errorEmitted = false;
24566 // count buffered requests
24567 this.bufferedRequestCount =
0;
24569 // allocate the first CorkedRequest, there is always
24570 // one allocated and free to use, and we maintain at most two
24571 this.corkedRequestsFree = new CorkedRequest(this);
24574 WritableState.prototype.getBuffer = function getBuffer() {
24575 var current = this.bufferedRequest;
24579 current = current.next;
24586 Object.defineProperty(WritableState.prototype, 'buffer', {
24587 get: internalUtil.deprecate(function () {
24588 return this.getBuffer();
24589 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
24594 // Test _writableState for inheritance to account for Duplex streams,
24595 // whose prototype chain only points to Readable.
24596 var realHasInstance;
24597 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
24598 realHasInstance = Function.prototype[Symbol.hasInstance];
24599 Object.defineProperty(Writable, Symbol.hasInstance, {
24600 value: function (object) {
24601 if (realHasInstance.call(this, object)) return true;
24603 return object && object._writableState instanceof WritableState;
24607 realHasInstance = function (object) {
24608 return object instanceof this;
24612 function Writable(options) {
24613 Duplex = Duplex || require('./_stream_duplex');
24615 // Writable ctor is applied to Duplexes, too.
24616 // `realHasInstance` is necessary because using plain `instanceof`
24617 // would return false, as no `_writableState` property is attached.
24619 // Trying to use the custom `instanceof` for Writable here will also break the
24620 // Node.js LazyTransform implementation, which has a non-trivial getter for
24621 // `_writableState` that would lead to infinite recursion.
24622 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
24623 return new Writable(options);
24626 this._writableState = new WritableState(options, this);
24629 this.writable = true;
24632 if (typeof options.write === 'function') this._write = options.write;
24634 if (typeof options.writev === 'function') this._writev = options.writev;
24640 // Otherwise people can pipe Writable streams, which is just wrong.
24641 Writable.prototype.pipe = function () {
24642 this.emit('error', new Error('Cannot pipe, not readable'));
24645 function writeAfterEnd(stream, cb) {
24646 var er = new Error('write after end');
24647 // TODO: defer error events consistently everywhere, not just the cb
24648 stream.emit('error', er);
24649 processNextTick(cb, er);
24652 // If we get something that is not a buffer, string, null, or undefined,
24653 // and we're not in objectMode, then that's an error.
24654 // Otherwise stream chunks are all considered to be of length=
1, and the
24655 // watermarks determine how many objects to keep in the buffer, rather than
24656 // how many bytes or characters.
24657 function validChunk(stream, state, chunk, cb) {
24660 // Always throw error if a null is written
24661 // if we are not in object mode then throw
24662 // if it is not a buffer, string, or undefined.
24663 if (chunk === null) {
24664 er = new TypeError('May not write null values to stream');
24665 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
24666 er = new TypeError('Invalid non-string/buffer chunk');
24669 stream.emit('error', er);
24670 processNextTick(cb, er);
24676 Writable.prototype.write = function (chunk, encoding, cb) {
24677 var state = this._writableState;
24680 if (typeof encoding === 'function') {
24685 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
24687 if (typeof cb !== 'function') cb = nop;
24689 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
24691 ret = writeOrBuffer(this, state, chunk, encoding, cb);
24697 Writable.prototype.cork = function () {
24698 var state = this._writableState;
24703 Writable.prototype.uncork = function () {
24704 var state = this._writableState;
24706 if (state.corked) {
24709 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
24713 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
24714 // node::ParseEncoding() requires lower case.
24715 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
24716 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);
24717 this._writableState.defaultEncoding = encoding;
24721 function decodeChunk(state, chunk, encoding) {
24722 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
24723 chunk = bufferShim.from(chunk, encoding);
24728 // if we're already writing something, then just put this
24729 // in the queue, and wait our turn. Otherwise, call _write
24730 // If we return false, then we need a drain event, so set that flag.
24731 function writeOrBuffer(stream, state, chunk, encoding, cb) {
24732 chunk = decodeChunk(state, chunk, encoding);
24734 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
24735 var len = state.objectMode ?
1 : chunk.length;
24737 state.length += len;
24739 var ret = state.length < state.highWaterMark;
24740 // we must ensure that previous needDrain will not be reset to false.
24741 if (!ret) state.needDrain = true;
24743 if (state.writing || state.corked) {
24744 var last = state.lastBufferedRequest;
24745 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
24747 last.next = state.lastBufferedRequest;
24749 state.bufferedRequest = state.lastBufferedRequest;
24751 state.bufferedRequestCount +=
1;
24753 doWrite(stream, state, false, len, chunk, encoding, cb);
24759 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
24760 state.writelen = len;
24761 state.writecb = cb;
24762 state.writing = true;
24764 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
24765 state.sync = false;
24768 function onwriteError(stream, state, sync, er, cb) {
24770 if (sync) processNextTick(cb, er);else cb(er);
24772 stream._writableState.errorEmitted = true;
24773 stream.emit('error', er);
24776 function onwriteStateUpdate(state) {
24777 state.writing = false;
24778 state.writecb = null;
24779 state.length -= state.writelen;
24780 state.writelen =
0;
24783 function onwrite(stream, er) {
24784 var state = stream._writableState;
24785 var sync = state.sync;
24786 var cb = state.writecb;
24788 onwriteStateUpdate(state);
24790 if (er) onwriteError(stream, state, sync, er, cb);else {
24791 // Check if we're actually ready to finish, but don't emit yet
24792 var finished = needFinish(state);
24794 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
24795 clearBuffer(stream, state);
24800 asyncWrite(afterWrite, stream, state, finished, cb);
24803 afterWrite(stream, state, finished, cb);
24808 function afterWrite(stream, state, finished, cb) {
24809 if (!finished) onwriteDrain(stream, state);
24812 finishMaybe(stream, state);
24815 // Must force callback to be called on nextTick, so that we don't
24816 // emit 'drain' before the write() consumer gets the 'false' return
24817 // value, and has a chance to attach a 'drain' listener.
24818 function onwriteDrain(stream, state) {
24819 if (state.length ===
0 && state.needDrain) {
24820 state.needDrain = false;
24821 stream.emit('drain');
24825 // if there's something in the buffer waiting, then process it
24826 function clearBuffer(stream, state) {
24827 state.bufferProcessing = true;
24828 var entry = state.bufferedRequest;
24830 if (stream._writev && entry && entry.next) {
24831 // Fast case, write everything using _writev()
24832 var l = state.bufferedRequestCount;
24833 var buffer = new Array(l);
24834 var holder = state.corkedRequestsFree;
24835 holder.entry = entry;
24839 buffer[count] = entry;
24840 entry = entry.next;
24844 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
24846 // doWrite is almost always async, defer these to save a bit of time
24847 // as the hot path ends with doWrite
24849 state.lastBufferedRequest = null;
24851 state.corkedRequestsFree = holder.next;
24852 holder.next = null;
24854 state.corkedRequestsFree = new CorkedRequest(state);
24857 // Slow case, write chunks one-by-one
24859 var chunk = entry.chunk;
24860 var encoding = entry.encoding;
24861 var cb = entry.callback;
24862 var len = state.objectMode ?
1 : chunk.length;
24864 doWrite(stream, state, false, len, chunk, encoding, cb);
24865 entry = entry.next;
24866 // if we didn't call the onwrite immediately, then
24867 // it means that we need to wait until it does.
24868 // also, that means that the chunk and cb are currently
24869 // being processed, so move the buffer counter past them.
24870 if (state.writing) {
24875 if (entry === null) state.lastBufferedRequest = null;
24878 state.bufferedRequestCount =
0;
24879 state.bufferedRequest = entry;
24880 state.bufferProcessing = false;
24883 Writable.prototype._write = function (chunk, encoding, cb) {
24884 cb(new Error('_write() is not implemented'));
24887 Writable.prototype._writev = null;
24889 Writable.prototype.end = function (chunk, encoding, cb) {
24890 var state = this._writableState;
24892 if (typeof chunk === 'function') {
24896 } else if (typeof encoding === 'function') {
24901 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
24903 // .end() fully uncorks
24904 if (state.corked) {
24909 // ignore unnecessary end() calls.
24910 if (!state.ending && !state.finished) endWritable(this, state, cb);
24913 function needFinish(state) {
24914 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
24917 function prefinish(stream, state) {
24918 if (!state.prefinished) {
24919 state.prefinished = true;
24920 stream.emit('prefinish');
24924 function finishMaybe(stream, state) {
24925 var need = needFinish(state);
24927 if (state.pendingcb ===
0) {
24928 prefinish(stream, state);
24929 state.finished = true;
24930 stream.emit('finish');
24932 prefinish(stream, state);
24938 function endWritable(stream, state, cb) {
24939 state.ending = true;
24940 finishMaybe(stream, state);
24942 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
24944 state.ended = true;
24945 stream.writable = false;
24948 // It seems a linked list but it is not
24949 // there will be only
2 of these for each stream
24950 function CorkedRequest(state) {
24956 this.finish = function (err) {
24957 var entry = _this.entry;
24958 _this.entry = null;
24960 var cb = entry.callback;
24963 entry = entry.next;
24965 if (state.corkedRequestsFree) {
24966 state.corkedRequestsFree.next = _this;
24968 state.corkedRequestsFree = _this;
24972 }).call(this,require('_process'))
24973 },{"./_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){
24976 var Buffer = require('buffer').Buffer;
24978 var bufferShim = require('buffer-shims');
24981 module.exports = BufferList;
24983 function BufferList() {
24989 BufferList.prototype.push = function (v) {
24990 var entry = { data: v, next: null };
24991 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
24996 BufferList.prototype.unshift = function (v) {
24997 var entry = { data: v, next: this.head };
24998 if (this.length ===
0) this.tail = entry;
25003 BufferList.prototype.shift = function () {
25004 if (this.length ===
0) return;
25005 var ret = this.head.data;
25006 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
25011 BufferList.prototype.clear = function () {
25012 this.head = this.tail = null;
25016 BufferList.prototype.join = function (s) {
25017 if (this.length ===
0) return '';
25019 var ret = '' + p.data;
25020 while (p = p.next) {
25025 BufferList.prototype.concat = function (n) {
25026 if (this.length ===
0) return bufferShim.alloc(
0);
25027 if (this.length ===
1) return this.head.data;
25028 var ret = bufferShim.allocUnsafe(n
>>> 0);
25032 p.data.copy(ret, i);
25033 i += p.data.length;
25038 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
25039 module.exports = require(
"./lib/_stream_passthrough.js")
25041 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
25042 (function (process){
25043 var Stream = (function (){
25045 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
25048 exports = module.exports = require('./lib/_stream_readable.js');
25049 exports.Stream = Stream || exports;
25050 exports.Readable = exports;
25051 exports.Writable = require('./lib/_stream_writable.js');
25052 exports.Duplex = require('./lib/_stream_duplex.js');
25053 exports.Transform = require('./lib/_stream_transform.js');
25054 exports.PassThrough = require('./lib/_stream_passthrough.js');
25056 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
25057 module.exports = Stream;
25060 }).call(this,require('_process'))
25061 },{
"./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){
25062 module.exports = require(
"./lib/_stream_transform.js")
25064 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
25065 module.exports = require(
"./lib/_stream_writable.js")
25067 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
25068 // Copyright Joyent, Inc. and other Node contributors.
25070 // Permission is hereby granted, free of charge, to any person obtaining a
25071 // copy of this software and associated documentation files (the
25072 //
"Software"), to deal in the Software without restriction, including
25073 // without limitation the rights to use, copy, modify, merge, publish,
25074 // distribute, sublicense, and/or sell copies of the Software, and to permit
25075 // persons to whom the Software is furnished to do so, subject to the
25076 // following conditions:
25078 // The above copyright notice and this permission notice shall be included
25079 // in all copies or substantial portions of the Software.
25081 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25082 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25083 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25084 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25085 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25086 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25087 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25089 module.exports = Stream;
25091 var EE = require('events').EventEmitter;
25092 var inherits = require('inherits');
25094 inherits(Stream, EE);
25095 Stream.Readable = require('readable-stream/readable.js');
25096 Stream.Writable = require('readable-stream/writable.js');
25097 Stream.Duplex = require('readable-stream/duplex.js');
25098 Stream.Transform = require('readable-stream/transform.js');
25099 Stream.PassThrough = require('readable-stream/passthrough.js');
25101 // Backwards-compat with node
0.4.x
25102 Stream.Stream = Stream;
25106 // old-style streams. Note that the pipe method (the only relevant
25107 // part of this class) is overridden in the Readable class.
25109 function Stream() {
25113 Stream.prototype.pipe = function(dest, options) {
25116 function ondata(chunk) {
25117 if (dest.writable) {
25118 if (false === dest.write(chunk) && source.pause) {
25124 source.on('data', ondata);
25126 function ondrain() {
25127 if (source.readable && source.resume) {
25132 dest.on('drain', ondrain);
25134 // If the 'end' option is not supplied, dest.end() will be called when
25135 // source gets the 'end' or 'close' events. Only dest.end() once.
25136 if (!dest._isStdio && (!options || options.end !== false)) {
25137 source.on('end', onend);
25138 source.on('close', onclose);
25141 var didOnEnd = false;
25143 if (didOnEnd) return;
25150 function onclose() {
25151 if (didOnEnd) return;
25154 if (typeof dest.destroy === 'function') dest.destroy();
25157 // don't leave dangling pipes when there are errors.
25158 function onerror(er) {
25160 if (EE.listenerCount(this, 'error') ===
0) {
25161 throw er; // Unhandled stream error in pipe.
25165 source.on('error', onerror);
25166 dest.on('error', onerror);
25168 // remove all the event listeners that were added.
25169 function cleanup() {
25170 source.removeListener('data', ondata);
25171 dest.removeListener('drain', ondrain);
25173 source.removeListener('end', onend);
25174 source.removeListener('close', onclose);
25176 source.removeListener('error', onerror);
25177 dest.removeListener('error', onerror);
25179 source.removeListener('end', cleanup);
25180 source.removeListener('close', cleanup);
25182 dest.removeListener('close', cleanup);
25185 source.on('end', cleanup);
25186 source.on('close', cleanup);
25188 dest.on('close', cleanup);
25190 dest.emit('pipe', source);
25192 // Allow for unix-like usage: A.pipe(B).pipe(C)
25196 },{
"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){
25197 // Copyright Joyent, Inc. and other Node contributors.
25199 // Permission is hereby granted, free of charge, to any person obtaining a
25200 // copy of this software and associated documentation files (the
25201 //
"Software"), to deal in the Software without restriction, including
25202 // without limitation the rights to use, copy, modify, merge, publish,
25203 // distribute, sublicense, and/or sell copies of the Software, and to permit
25204 // persons to whom the Software is furnished to do so, subject to the
25205 // following conditions:
25207 // The above copyright notice and this permission notice shall be included
25208 // in all copies or substantial portions of the Software.
25210 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25211 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25212 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25213 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25214 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25215 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25216 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25218 var Buffer = require('buffer').Buffer;
25220 var isBufferEncoding = Buffer.isEncoding
25221 || function(encoding) {
25222 switch (encoding && encoding.toLowerCase()) {
25223 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;
25224 default: return false;
25229 function assertEncoding(encoding) {
25230 if (encoding && !isBufferEncoding(encoding)) {
25231 throw new Error('Unknown encoding: ' + encoding);
25235 // StringDecoder provides an interface for efficiently splitting a series of
25236 // buffers into a series of JS strings without breaking apart multi-byte
25237 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
25239 // @TODO Handling all encodings inside a single object makes it very difficult
25240 // to reason about this code, so it should be split up in the future.
25241 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
25242 // points as used by CESU-
8.
25243 var StringDecoder = exports.StringDecoder = function(encoding) {
25244 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
25245 assertEncoding(encoding);
25246 switch (this.encoding) {
25248 // CESU-
8 represents each of Surrogate Pair by
3-bytes
25249 this.surrogateSize =
3;
25253 // UTF-
16 represents each of Surrogate Pair by
2-bytes
25254 this.surrogateSize =
2;
25255 this.detectIncompleteChar = utf16DetectIncompleteChar;
25258 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
25259 this.surrogateSize =
3;
25260 this.detectIncompleteChar = base64DetectIncompleteChar;
25263 this.write = passThroughWrite;
25267 // Enough space to store all bytes of a single character. UTF-
8 needs
4
25268 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
25269 this.charBuffer = new Buffer(
6);
25270 // Number of bytes received for the current incomplete multi-byte character.
25271 this.charReceived =
0;
25272 // Number of bytes expected for the current incomplete multi-byte character.
25273 this.charLength =
0;
25277 // write decodes the given buffer and returns it as JS string that is
25278 // guaranteed to not contain any partial multi-byte characters. Any partial
25279 // character found at the end of the buffer is buffered up, and will be
25280 // returned when calling write again with the remaining bytes.
25282 // Note: Converting a Buffer containing an orphan surrogate to a String
25283 // currently works, but converting a String to a Buffer (via `new Buffer`, or
25284 // Buffer#write) will replace incomplete surrogates with the unicode
25285 // replacement character. See https://codereview.chromium.org/
121173009/ .
25286 StringDecoder.prototype.write = function(buffer) {
25288 // if our last write ended with an incomplete multibyte character
25289 while (this.charLength) {
25290 // determine how many remaining bytes this buffer has to offer for this char
25291 var available = (buffer.length
>= this.charLength - this.charReceived) ?
25292 this.charLength - this.charReceived :
25295 // add the new bytes to the char buffer
25296 buffer.copy(this.charBuffer, this.charReceived,
0, available);
25297 this.charReceived += available;
25299 if (this.charReceived < this.charLength) {
25300 // still not enough chars in this buffer? wait for more ...
25304 // remove bytes belonging to the current character from the buffer
25305 buffer = buffer.slice(available, buffer.length);
25307 // get the character that was split
25308 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
25310 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
25311 var charCode = charStr.charCodeAt(charStr.length -
1);
25312 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
25313 this.charLength += this.surrogateSize;
25317 this.charReceived = this.charLength =
0;
25319 // if there are no more bytes in this buffer, just emit our char
25320 if (buffer.length ===
0) {
25326 // determine and set charLength / charReceived
25327 this.detectIncompleteChar(buffer);
25329 var end = buffer.length;
25330 if (this.charLength) {
25331 // buffer the incomplete character bytes we got
25332 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
25333 end -= this.charReceived;
25336 charStr += buffer.toString(this.encoding,
0, end);
25338 var end = charStr.length -
1;
25339 var charCode = charStr.charCodeAt(end);
25340 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
25341 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
25342 var size = this.surrogateSize;
25343 this.charLength += size;
25344 this.charReceived += size;
25345 this.charBuffer.copy(this.charBuffer, size,
0, size);
25346 buffer.copy(this.charBuffer,
0,
0, size);
25347 return charStr.substring(
0, end);
25350 // or just emit the charStr
25354 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
25355 // the end of the given buffer. If so, it sets this.charLength to the byte
25356 // length that character, and sets this.charReceived to the number of bytes
25357 // that are available for this character.
25358 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
25359 // determine how many bytes we have to check at the end of this buffer
25360 var i = (buffer.length
>=
3) ?
3 : buffer.length;
25362 // Figure out if one of the last i bytes of our buffer announces an
25363 // incomplete char.
25364 for (; i
> 0; i--) {
25365 var c = buffer[buffer.length - i];
25367 // See http://en.wikipedia.org/wiki/UTF-
8#Description
25370 if (i ==
1 && c
>> 5 ==
0x06) {
25371 this.charLength =
2;
25376 if (i <=
2 && c
>> 4 ==
0x0E) {
25377 this.charLength =
3;
25382 if (i <=
3 && c
>> 3 ==
0x1E) {
25383 this.charLength =
4;
25387 this.charReceived = i;
25390 StringDecoder.prototype.end = function(buffer) {
25392 if (buffer && buffer.length)
25393 res = this.write(buffer);
25395 if (this.charReceived) {
25396 var cr = this.charReceived;
25397 var buf = this.charBuffer;
25398 var enc = this.encoding;
25399 res += buf.slice(
0, cr).toString(enc);
25405 function passThroughWrite(buffer) {
25406 return buffer.toString(this.encoding);
25409 function utf16DetectIncompleteChar(buffer) {
25410 this.charReceived = buffer.length %
2;
25411 this.charLength = this.charReceived ?
2 :
0;
25414 function base64DetectIncompleteChar(buffer) {
25415 this.charReceived = buffer.length %
3;
25416 this.charLength = this.charReceived ?
3 :
0;
25419 },{
"buffer":
5}],
27:[function(require,module,exports){
25420 (function (global){
25426 module.exports = deprecate;
25429 * Mark that a method should not be used.
25430 * Returns a modified function which warns once by default.
25432 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
25434 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
25435 * will throw an Error when invoked.
25437 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
25438 * will invoke `console.trace()` instead of `console.error()`.
25440 * @param {Function} fn - the function to deprecate
25441 * @param {String} msg - the string to print to the console when `fn` is invoked
25442 * @returns {Function} a new
"deprecated" version of `fn`
25446 function deprecate (fn, msg) {
25447 if (config('noDeprecation')) {
25451 var warned = false;
25452 function deprecated() {
25454 if (config('throwDeprecation')) {
25455 throw new Error(msg);
25456 } else if (config('traceDeprecation')) {
25457 console.trace(msg);
25463 return fn.apply(this, arguments);
25470 * Checks `localStorage` for boolean values for the given `name`.
25472 * @param {String} name
25473 * @returns {Boolean}
25477 function config (name) {
25478 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
25480 if (!global.localStorage) return false;
25484 var val = global.localStorage[name];
25485 if (null == val) return false;
25486 return String(val).toLowerCase() === 'true';
25489 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
25490 },{}],
28:[function(require,module,exports){
25491 arguments[
4][
9][
0].apply(exports,arguments)
25492 },{
"dup":
9}],
29:[function(require,module,exports){
25493 module.exports = function isBuffer(arg) {
25494 return arg && typeof arg === 'object'
25495 && typeof arg.copy === 'function'
25496 && typeof arg.fill === 'function'
25497 && typeof arg.readUInt8 === 'function';
25499 },{}],
30:[function(require,module,exports){
25500 (function (process,global){
25501 // Copyright Joyent, Inc. and other Node contributors.
25503 // Permission is hereby granted, free of charge, to any person obtaining a
25504 // copy of this software and associated documentation files (the
25505 //
"Software"), to deal in the Software without restriction, including
25506 // without limitation the rights to use, copy, modify, merge, publish,
25507 // distribute, sublicense, and/or sell copies of the Software, and to permit
25508 // persons to whom the Software is furnished to do so, subject to the
25509 // following conditions:
25511 // The above copyright notice and this permission notice shall be included
25512 // in all copies or substantial portions of the Software.
25514 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25515 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25516 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25517 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25518 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25519 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25520 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25522 var formatRegExp = /%[sdj%]/g;
25523 exports.format = function(f) {
25524 if (!isString(f)) {
25526 for (var i =
0; i < arguments.length; i++) {
25527 objects.push(inspect(arguments[i]));
25529 return objects.join(' ');
25533 var args = arguments;
25534 var len = args.length;
25535 var str = String(f).replace(formatRegExp, function(x) {
25536 if (x === '%%') return '%';
25537 if (i
>= len) return x;
25539 case '%s': return String(args[i++]);
25540 case '%d': return Number(args[i++]);
25543 return JSON.stringify(args[i++]);
25545 return '[Circular]';
25551 for (var x = args[i]; i < len; x = args[++i]) {
25552 if (isNull(x) || !isObject(x)) {
25555 str += ' ' + inspect(x);
25562 // Mark that a method should not be used.
25563 // Returns a modified function which warns once by default.
25564 // If --no-deprecation is set, then it is a no-op.
25565 exports.deprecate = function(fn, msg) {
25566 // Allow for deprecating things in the process of starting up.
25567 if (isUndefined(global.process)) {
25568 return function() {
25569 return exports.deprecate(fn, msg).apply(this, arguments);
25573 if (process.noDeprecation === true) {
25577 var warned = false;
25578 function deprecated() {
25580 if (process.throwDeprecation) {
25581 throw new Error(msg);
25582 } else if (process.traceDeprecation) {
25583 console.trace(msg);
25585 console.error(msg);
25589 return fn.apply(this, arguments);
25598 exports.debuglog = function(set) {
25599 if (isUndefined(debugEnviron))
25600 debugEnviron = process.env.NODE_DEBUG || '';
25601 set = set.toUpperCase();
25602 if (!debugs[set]) {
25603 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
25604 var pid = process.pid;
25605 debugs[set] = function() {
25606 var msg = exports.format.apply(exports, arguments);
25607 console.error('%s %d: %s', set, pid, msg);
25610 debugs[set] = function() {};
25613 return debugs[set];
25618 * Echos the value of a value. Trys to print the value out
25619 * in the best way possible given the different types.
25621 * @param {Object} obj The object to print out.
25622 * @param {Object} opts Optional options object that alters the output.
25624 /* legacy: obj, showHidden, depth, colors*/
25625 function inspect(obj, opts) {
25629 stylize: stylizeNoColor
25632 if (arguments.length
>=
3) ctx.depth = arguments[
2];
25633 if (arguments.length
>=
4) ctx.colors = arguments[
3];
25634 if (isBoolean(opts)) {
25636 ctx.showHidden = opts;
25638 // got an "options" object
25639 exports._extend(ctx, opts);
25641 // set default options
25642 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
25643 if (isUndefined(ctx.depth)) ctx.depth =
2;
25644 if (isUndefined(ctx.colors)) ctx.colors = false;
25645 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
25646 if (ctx.colors) ctx.stylize = stylizeWithColor;
25647 return formatValue(ctx, obj, ctx.depth);
25649 exports.inspect = inspect;
25652 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
25655 'italic' : [
3,
23],
25656 'underline' : [
4,
24],
25657 'inverse' : [
7,
27],
25658 'white' : [
37,
39],
25660 'black' : [
30,
39],
25663 'green' : [
32,
39],
25664 'magenta' : [
35,
39],
25666 'yellow' : [
33,
39]
25669 // Don't use 'blue' not visible on cmd.exe
25672 'number': 'yellow',
25673 'boolean': 'yellow',
25674 'undefined': 'grey',
25678 // "name": intentionally not styling
25683 function stylizeWithColor(str, styleType) {
25684 var style = inspect.styles[styleType];
25687 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
25688 '\u001b[' + inspect.colors[style][
1] + 'm';
25695 function stylizeNoColor(str, styleType) {
25700 function arrayToHash(array) {
25703 array.forEach(function(val, idx) {
25711 function formatValue(ctx, value, recurseTimes) {
25712 // Provide a hook for user-specified inspect functions.
25713 // Check that value is an object with an inspect function on it
25714 if (ctx.customInspect &&
25716 isFunction(value.inspect) &&
25717 // Filter out the util module, it's inspect function is special
25718 value.inspect !== exports.inspect &&
25719 // Also filter out any prototype objects using the circular check.
25720 !(value.constructor && value.constructor.prototype === value)) {
25721 var ret = value.inspect(recurseTimes, ctx);
25722 if (!isString(ret)) {
25723 ret = formatValue(ctx, ret, recurseTimes);
25728 // Primitive types cannot have properties
25729 var primitive = formatPrimitive(ctx, value);
25734 // Look up the keys of the object.
25735 var keys = Object.keys(value);
25736 var visibleKeys = arrayToHash(keys);
25738 if (ctx.showHidden) {
25739 keys = Object.getOwnPropertyNames(value);
25742 // IE doesn't make error fields non-enumerable
25743 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
25745 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
25746 return formatError(value);
25749 // Some type of object without properties can be shortcutted.
25750 if (keys.length ===
0) {
25751 if (isFunction(value)) {
25752 var name = value.name ? ': ' + value.name : '';
25753 return ctx.stylize('[Function' + name + ']', 'special');
25755 if (isRegExp(value)) {
25756 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
25758 if (isDate(value)) {
25759 return ctx.stylize(Date.prototype.toString.call(value), 'date');
25761 if (isError(value)) {
25762 return formatError(value);
25766 var base = '', array = false, braces = ['{', '}'];
25768 // Make Array say that they are Array
25769 if (isArray(value)) {
25771 braces = ['[', ']'];
25774 // Make functions say that they are functions
25775 if (isFunction(value)) {
25776 var n = value.name ? ': ' + value.name : '';
25777 base = ' [Function' + n + ']';
25780 // Make RegExps say that they are RegExps
25781 if (isRegExp(value)) {
25782 base = ' ' + RegExp.prototype.toString.call(value);
25785 // Make dates with properties first say the date
25786 if (isDate(value)) {
25787 base = ' ' + Date.prototype.toUTCString.call(value);
25790 // Make error with message first say the error
25791 if (isError(value)) {
25792 base = ' ' + formatError(value);
25795 if (keys.length ===
0 && (!array || value.length ==
0)) {
25796 return braces[
0] + base + braces[
1];
25799 if (recurseTimes <
0) {
25800 if (isRegExp(value)) {
25801 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
25803 return ctx.stylize('[Object]', 'special');
25807 ctx.seen.push(value);
25811 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
25813 output = keys.map(function(key) {
25814 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
25820 return reduceToSingleString(output, base, braces);
25824 function formatPrimitive(ctx, value) {
25825 if (isUndefined(value))
25826 return ctx.stylize('undefined', 'undefined');
25827 if (isString(value)) {
25828 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
25829 .replace(/'/g, "\\'")
25830 .replace(/\\"/g, '"') + '\'';
25831 return ctx.stylize(simple, 'string');
25833 if (isNumber(value))
25834 return ctx.stylize('' + value, 'number');
25835 if (isBoolean(value))
25836 return ctx.stylize('' + value, 'boolean');
25837 // For some reason typeof null is "object", so special case here.
25839 return ctx.stylize('null', 'null');
25843 function formatError(value) {
25844 return '[' + Error.prototype.toString.call(value) + ']';
25848 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
25850 for (var i =
0, l = value.length; i < l; ++i) {
25851 if (hasOwnProperty(value, String(i))) {
25852 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
25858 keys.forEach(function(key) {
25859 if (!key.match(/^\d+$/)) {
25860 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
25868 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
25869 var name, str, desc;
25870 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
25873 str = ctx.stylize('[Getter/Setter]', 'special');
25875 str = ctx.stylize('[Getter]', 'special');
25879 str = ctx.stylize('[Setter]', 'special');
25882 if (!hasOwnProperty(visibleKeys, key)) {
25883 name = '[' + key + ']';
25886 if (ctx.seen.indexOf(desc.value) <
0) {
25887 if (isNull(recurseTimes)) {
25888 str = formatValue(ctx, desc.value, null);
25890 str = formatValue(ctx, desc.value, recurseTimes -
1);
25892 if (str.indexOf('\n')
> -
1) {
25894 str = str.split('\n').map(function(line) {
25896 }).join('\n').substr(
2);
25898 str = '\n' + str.split('\n').map(function(line) {
25904 str = ctx.stylize('[Circular]', 'special');
25907 if (isUndefined(name)) {
25908 if (array && key.match(/^\d+$/)) {
25911 name = JSON.stringify('' + key);
25912 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
25913 name = name.substr(
1, name.length -
2);
25914 name = ctx.stylize(name, 'name');
25916 name = name.replace(/'/g, "\\'")
25917 .replace(/\\"/g, '"')
25918 .replace(/(^"|"$)/g, "'");
25919 name = ctx.stylize(name, 'string');
25923 return name + ': ' + str;
25927 function reduceToSingleString(output, base, braces) {
25928 var numLinesEst =
0;
25929 var length = output.reduce(function(prev, cur) {
25931 if (cur.indexOf('\n')
>=
0) numLinesEst++;
25932 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
25937 (base === '' ? '' : base + '\n ') +
25939 output.join(',\n ') +
25944 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
25948 // NOTE: These type checking functions intentionally don't use `instanceof`
25949 // because it is fragile and can be easily faked with `Object.create()`.
25950 function isArray(ar) {
25951 return Array.isArray(ar);
25953 exports.isArray = isArray;
25955 function isBoolean(arg) {
25956 return typeof arg === 'boolean';
25958 exports.isBoolean = isBoolean;
25960 function isNull(arg) {
25961 return arg === null;
25963 exports.isNull = isNull;
25965 function isNullOrUndefined(arg) {
25966 return arg == null;
25968 exports.isNullOrUndefined = isNullOrUndefined;
25970 function isNumber(arg) {
25971 return typeof arg === 'number';
25973 exports.isNumber = isNumber;
25975 function isString(arg) {
25976 return typeof arg === 'string';
25978 exports.isString = isString;
25980 function isSymbol(arg) {
25981 return typeof arg === 'symbol';
25983 exports.isSymbol = isSymbol;
25985 function isUndefined(arg) {
25986 return arg === void
0;
25988 exports.isUndefined = isUndefined;
25990 function isRegExp(re) {
25991 return isObject(re) && objectToString(re) === '[object RegExp]';
25993 exports.isRegExp = isRegExp;
25995 function isObject(arg) {
25996 return typeof arg === 'object' && arg !== null;
25998 exports.isObject = isObject;
26000 function isDate(d) {
26001 return isObject(d) && objectToString(d) === '[object Date]';
26003 exports.isDate = isDate;
26005 function isError(e) {
26006 return isObject(e) &&
26007 (objectToString(e) === '[object Error]' || e instanceof Error);
26009 exports.isError = isError;
26011 function isFunction(arg) {
26012 return typeof arg === 'function';
26014 exports.isFunction = isFunction;
26016 function isPrimitive(arg) {
26017 return arg === null ||
26018 typeof arg === 'boolean' ||
26019 typeof arg === 'number' ||
26020 typeof arg === 'string' ||
26021 typeof arg === 'symbol' || // ES6 symbol
26022 typeof arg === 'undefined';
26024 exports.isPrimitive = isPrimitive;
26026 exports.isBuffer = require('./support/isBuffer');
26028 function objectToString(o) {
26029 return Object.prototype.toString.call(o);
26034 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
26038 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
26039 'Oct', 'Nov', 'Dec'];
26042 function timestamp() {
26043 var d = new Date();
26044 var time = [pad(d.getHours()),
26045 pad(d.getMinutes()),
26046 pad(d.getSeconds())].join(':');
26047 return [d.getDate(), months[d.getMonth()], time].join(' ');
26051 // log is just a thin wrapper to console.log that prepends a timestamp
26052 exports.log = function() {
26053 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
26058 * Inherit the prototype methods from one constructor into another.
26060 * The Function.prototype.inherits from lang.js rewritten as a standalone
26061 * function (not on Function.prototype). NOTE: If this file is to be loaded
26062 * during bootstrapping this function needs to be rewritten using some native
26063 * functions as prototype setup using normal JavaScript does not work as
26064 * expected during bootstrapping (see mirror.js in r114903).
26066 * @param {function} ctor Constructor function which needs to inherit the
26068 * @param {function} superCtor Constructor function to inherit prototype from.
26070 exports.inherits = require('inherits');
26072 exports._extend = function(origin, add) {
26073 // Don't do anything if add isn't an object
26074 if (!add || !isObject(add)) return origin;
26076 var keys = Object.keys(add);
26077 var i = keys.length;
26079 origin[keys[i]] = add[keys[i]];
26084 function hasOwnProperty(obj, prop) {
26085 return Object.prototype.hasOwnProperty.call(obj, prop);
26088 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
26089 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
26090 (function (Buffer){
26091 const createKeccakHash = require('keccak')
26092 const secp256k1 = require('secp256k1')
26093 const assert = require('assert')
26094 const rlp = require('rlp')
26095 const BN = require('bn.js')
26096 const createHash = require('create-hash')
26097 Object.assign(exports, require('ethjs-util'))
26100 * the max integer that this VM can handle (a ```BN```)
26101 * @var {BN} MAX_INTEGER
26103 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
26106 *
2^
256 (a ```BN```)
26107 * @var {BN} TWO_POW256
26109 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
26112 * SHA3-
256 hash of null (a ```String```)
26113 * @var {String} SHA3_NULL_S
26115 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
26118 * SHA3-
256 hash of null (a ```Buffer```)
26119 * @var {Buffer} SHA3_NULL
26121 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
26124 * SHA3-
256 of an RLP of an empty array (a ```String```)
26125 * @var {String} SHA3_RLP_ARRAY_S
26127 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
26130 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
26131 * @var {Buffer} SHA3_RLP_ARRAY
26133 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
26136 * SHA3-
256 hash of the RLP of null (a ```String```)
26137 * @var {String} SHA3_RLP_S
26139 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
26142 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
26143 * @var {Buffer} SHA3_RLP
26145 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
26148 * [`BN`](https://github.com/indutny/bn.js)
26154 * [`rlp`](https://github.com/ethereumjs/rlp)
26160 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
26163 exports.secp256k1 = secp256k1
26166 * Returns a buffer filled with
0s
26168 * @param {Number} bytes the number of bytes the buffer should be
26171 exports.zeros = function (bytes) {
26172 return Buffer.allocUnsafe(bytes).fill(
0)
26176 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
26177 * Or it truncates the beginning if it exceeds.
26178 * @method lsetLength
26179 * @param {Buffer|Array} msg the value to pad
26180 * @param {Number} length the number of bytes the output should be
26181 * @param {Boolean} [right=false] whether to start padding form the left or right
26182 * @return {Buffer|Array}
26184 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
26185 var buf = exports.zeros(length)
26186 msg = exports.toBuffer(msg)
26188 if (msg.length < length) {
26192 return msg.slice(
0, length)
26194 if (msg.length < length) {
26195 msg.copy(buf, length - msg.length)
26198 return msg.slice(-length)
26203 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
26204 * Or it truncates the beginning if it exceeds.
26205 * @param {Buffer|Array} msg the value to pad
26206 * @param {Number} length the number of bytes the output should be
26207 * @return {Buffer|Array}
26209 exports.setLengthRight = function (msg, length) {
26210 return exports.setLength(msg, length, true)
26214 * Trims leading zeros from a `Buffer` or an `Array`
26215 * @param {Buffer|Array|String} a
26216 * @return {Buffer|Array|String}
26218 exports.unpad = exports.stripZeros = function (a) {
26219 a = exports.stripHexPrefix(a)
26221 while (a.length
> 0 && first.toString() === '
0') {
26228 * 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.
26229 * @param {*} v the value
26231 exports.toBuffer = function (v) {
26232 if (!Buffer.isBuffer(v)) {
26233 if (Array.isArray(v)) {
26235 } else if (typeof v === 'string') {
26236 if (exports.isHexPrefixed(v)) {
26237 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
26241 } else if (typeof v === 'number') {
26242 v = exports.intToBuffer(v)
26243 } else if (v === null || v === undefined) {
26244 v = Buffer.allocUnsafe(
0)
26245 } else if (v.toArray) {
26246 // converts a BN to a Buffer
26247 v = Buffer.from(v.toArray())
26249 throw new Error('invalid type')
26256 * Converts a `Buffer` to a `Number`
26257 * @param {Buffer} buf
26259 * @throws If the input number exceeds
53 bits.
26261 exports.bufferToInt = function (buf) {
26262 return new BN(exports.toBuffer(buf)).toNumber()
26266 * Converts a `Buffer` into a hex `String`
26267 * @param {Buffer} buf
26270 exports.bufferToHex = function (buf) {
26271 buf = exports.toBuffer(buf)
26272 return '
0x' + buf.toString('hex')
26276 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
26277 * @param {Buffer} num
26280 exports.fromSigned = function (num) {
26281 return new BN(num).fromTwos(
256)
26285 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
26289 exports.toUnsigned = function (num) {
26290 return Buffer.from(num.toTwos(
256).toArray())
26294 * Creates SHA-
3 hash of the input
26295 * @param {Buffer|Array|String|Number} a the input data
26296 * @param {Number} [bits=
256] the SHA width
26299 exports.sha3 = function (a, bits) {
26300 a = exports.toBuffer(a)
26301 if (!bits) bits =
256
26303 return createKeccakHash('keccak' + bits).update(a).digest()
26307 * Creates SHA256 hash of the input
26308 * @param {Buffer|Array|String|Number} a the input data
26311 exports.sha256 = function (a) {
26312 a = exports.toBuffer(a)
26313 return createHash('sha256').update(a).digest()
26317 * Creates RIPEMD160 hash of the input
26318 * @param {Buffer|Array|String|Number} a the input data
26319 * @param {Boolean} padded whether it should be padded to
256 bits or not
26322 exports.ripemd160 = function (a, padded) {
26323 a = exports.toBuffer(a)
26324 var hash = createHash('rmd160').update(a).digest()
26325 if (padded === true) {
26326 return exports.setLength(hash,
32)
26333 * Creates SHA-
3 hash of the RLP encoded version of the input
26334 * @param {Buffer|Array|String|Number} a the input data
26337 exports.rlphash = function (a) {
26338 return exports.sha3(rlp.encode(a))
26342 * Checks if the private key satisfies the rules of the curve secp256k1.
26343 * @param {Buffer} privateKey
26344 * @return {Boolean}
26346 exports.isValidPrivate = function (privateKey) {
26347 return secp256k1.privateKeyVerify(privateKey)
26351 * Checks if the public key satisfies the rules of the curve secp256k1
26352 * and the requirements of Ethereum.
26353 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
26354 * @param {Boolean} [sanitize=false] Accept public keys in other formats
26355 * @return {Boolean}
26357 exports.isValidPublic = function (publicKey, sanitize) {
26358 if (publicKey.length ===
64) {
26359 // Convert to SEC1 for secp256k1
26360 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
26367 return secp256k1.publicKeyVerify(publicKey)
26371 * Returns the ethereum address of a given public key.
26372 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
26373 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
26374 * @param {Boolean} [sanitize=false] Accept public keys in other formats
26377 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
26378 pubKey = exports.toBuffer(pubKey)
26379 if (sanitize && (pubKey.length !==
64)) {
26380 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
26382 assert(pubKey.length ===
64)
26383 // Only take the lower
160bits of the hash
26384 return exports.sha3(pubKey).slice(-
20)
26388 * Returns the ethereum public key of a given private key
26389 * @param {Buffer} privateKey A private key must be
256 bits wide
26392 var privateToPublic = exports.privateToPublic = function (privateKey) {
26393 privateKey = exports.toBuffer(privateKey)
26394 // skip the type flag and use the X, Y points
26395 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
26399 * Converts a public key to the Ethereum format.
26400 * @param {Buffer} publicKey
26403 exports.importPublic = function (publicKey) {
26404 publicKey = exports.toBuffer(publicKey)
26405 if (publicKey.length !==
64) {
26406 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
26413 * @param {Buffer} msgHash
26414 * @param {Buffer} privateKey
26417 exports.ecsign = function (msgHash, privateKey) {
26418 var sig = secp256k1.sign(msgHash, privateKey)
26421 ret.r = sig.signature.slice(
0,
32)
26422 ret.s = sig.signature.slice(
32,
64)
26423 ret.v = sig.recovery +
27
26428 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
26429 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
26430 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
26431 * used to produce the signature.
26433 * @returns {Buffer} hash
26435 exports.hashPersonalMessage = function (message) {
26436 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
26437 return exports.sha3(Buffer.concat([prefix, message]))
26441 * ECDSA public key recovery from signature
26442 * @param {Buffer} msgHash
26443 * @param {Number} v
26444 * @param {Buffer} r
26445 * @param {Buffer} s
26446 * @return {Buffer} publicKey
26448 exports.ecrecover = function (msgHash, v, r, s) {
26449 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
26450 var recovery = v -
27
26451 if (recovery !==
0 && recovery !==
1) {
26452 throw new Error('Invalid signature v value')
26454 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
26455 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
26459 * Convert signature parameters into the format of `eth_sign` RPC method
26460 * @param {Number} v
26461 * @param {Buffer} r
26462 * @param {Buffer} s
26463 * @return {String} sig
26465 exports.toRpcSig = function (v, r, s) {
26466 // NOTE: with potential introduction of chainId this might need to be updated
26467 if (v !==
27 && v !==
28) {
26468 throw new Error('Invalid recovery id')
26471 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
26472 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
26473 return exports.bufferToHex(Buffer.concat([
26474 exports.setLengthLeft(r,
32),
26475 exports.setLengthLeft(s,
32),
26476 exports.toBuffer(v -
27)
26481 * Convert signature format of the `eth_sign` RPC method to signature parameters
26482 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
26483 * @param {String} sig
26486 exports.fromRpcSig = function (sig) {
26487 sig = exports.toBuffer(sig)
26489 // NOTE: with potential introduction of chainId this might need to be updated
26490 if (sig.length !==
65) {
26491 throw new Error('Invalid signature length')
26495 // support both versions of `eth_sign` responses
26502 r: sig.slice(
0,
32),
26503 s: sig.slice(
32,
64)
26508 * Returns the ethereum address of a given private key
26509 * @param {Buffer} privateKey A private key must be
256 bits wide
26512 exports.privateToAddress = function (privateKey) {
26513 return exports.publicToAddress(privateToPublic(privateKey))
26517 * Checks if the address is a valid. Accepts checksummed addresses too
26518 * @param {String} address
26519 * @return {Boolean}
26521 exports.isValidAddress = function (address) {
26522 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
26526 * Returns a checksummed address
26527 * @param {String} address
26530 exports.toChecksumAddress = function (address) {
26531 address = exports.stripHexPrefix(address).toLowerCase()
26532 var hash = exports.sha3(address).toString('hex')
26535 for (var i =
0; i < address.length; i++) {
26536 if (parseInt(hash[i],
16)
>=
8) {
26537 ret += address[i].toUpperCase()
26547 * Checks if the address is a valid checksummed address
26548 * @param {Buffer} address
26549 * @return {Boolean}
26551 exports.isValidChecksumAddress = function (address) {
26552 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
26556 * Generates an address of a newly created contract
26557 * @param {Buffer} from the address which is creating this new address
26558 * @param {Buffer} nonce the nonce of the from account
26561 exports.generateAddress = function (from, nonce) {
26562 from = exports.toBuffer(from)
26563 nonce = new BN(nonce)
26565 if (nonce.isZero()) {
26566 // in RLP we want to encode null in the case of zero nonce
26567 // read the RLP documentation for an answer if you dare
26570 nonce = Buffer.from(nonce.toArray())
26573 // Only take the lower
160bits of the hash
26574 return exports.rlphash([from, nonce]).slice(-
20)
26578 * Returns true if the supplied address belongs to a precompiled account
26579 * @param {Buffer|String} address
26580 * @return {Boolean}
26582 exports.isPrecompiled = function (address) {
26583 var a = exports.unpad(address)
26584 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
26588 * Adds
"0x" to a given `String` if it does not already start with
"0x"
26589 * @param {String} str
26592 exports.addHexPrefix = function (str) {
26593 if (typeof str !== 'string') {
26597 return exports.isHexPrefixed(str) ? str : '
0x' + str
26601 * Validate ECDSA signature
26602 * @method isValidSignature
26603 * @param {Buffer} v
26604 * @param {Buffer} r
26605 * @param {Buffer} s
26606 * @param {Boolean} [homestead=true]
26607 * @return {Boolean}
26610 exports.isValidSignature = function (v, r, s, homestead) {
26611 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
26612 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
26614 if (r.length !==
32 || s.length !==
32) {
26618 if (v !==
27 && v !==
28) {
26625 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
26629 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
26637 * Converts a `Buffer` or `Array` to JSON
26638 * @param {Buffer|Array} ba
26639 * @return {Array|String|null}
26641 exports.baToJSON = function (ba) {
26642 if (Buffer.isBuffer(ba)) {
26643 return '
0x' + ba.toString('hex')
26644 } else if (ba instanceof Array) {
26646 for (var i =
0; i < ba.length; i++) {
26647 array.push(exports.baToJSON(ba[i]))
26654 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
26655 * @param {Object} self the `Object` to define properties on
26656 * @param {Array} fields an array fields to define. Fields can contain:
26657 * * `name` - the name of the properties
26658 * * `length` - the number of bytes the field can have
26659 * * `allowLess` - if the field can be less than the length
26661 * @param {*} data data to be validated against the definitions
26663 exports.defineProperties = function (self, fields, data) {
26667 // attach the `toJSON`
26668 self.toJSON = function (label) {
26671 self._fields.forEach(function (field) {
26672 obj[field] = '
0x' + self[field].toString('hex')
26676 return exports.baToJSON(this.raw)
26679 self.serialize = function serialize () {
26680 return rlp.encode(self.raw)
26683 fields.forEach(function (field, i) {
26684 self._fields.push(field.name)
26685 function getter () {
26688 function setter (v) {
26689 v = exports.toBuffer(v)
26691 if (v.toString('hex') === '
00' && !field.allowZero) {
26692 v = Buffer.allocUnsafe(
0)
26695 if (field.allowLess && field.length) {
26696 v = exports.stripZeros(v)
26697 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
26698 } else if (!(field.allowZero && v.length ===
0) && field.length) {
26699 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
26705 Object.defineProperty(self, field.name, {
26707 configurable: true,
26712 if (field.default) {
26713 self[field.name] = field.default
26718 Object.defineProperty(self, field.alias, {
26720 configurable: true,
26727 // if the constuctor is passed data
26729 if (typeof data === 'string') {
26730 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
26733 if (Buffer.isBuffer(data)) {
26734 data = rlp.decode(data)
26737 if (Array.isArray(data)) {
26738 if (data.length
> self._fields.length) {
26739 throw (new Error('wrong number of fields in data'))
26742 // make sure all the items are buffers
26743 data.forEach(function (d, i) {
26744 self[self._fields[i]] = exports.toBuffer(d)
26746 } else if (typeof data === 'object') {
26747 const keys = Object.keys(data)
26748 fields.forEach(function (field) {
26749 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
26750 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
26753 throw new Error('invalid data')
26758 }).call(this,require("buffer").Buffer)
26759 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
26760 (function (Buffer){
26761 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
26762 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
26763 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
26765 function check (buffer) {
26766 if (buffer.length <
8) return false
26767 if (buffer.length
> 72) return false
26768 if (buffer[
0] !==
0x30) return false
26769 if (buffer[
1] !== buffer.length -
2) return false
26770 if (buffer[
2] !==
0x02) return false
26772 var lenR = buffer[
3]
26773 if (lenR ===
0) return false
26774 if (
5 + lenR
>= buffer.length) return false
26775 if (buffer[
4 + lenR] !==
0x02) return false
26777 var lenS = buffer[
5 + lenR]
26778 if (lenS ===
0) return false
26779 if ((
6 + lenR + lenS) !== buffer.length) return false
26781 if (buffer[
4] &
0x80) return false
26782 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
26784 if (buffer[lenR +
6] &
0x80) return false
26785 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
26789 function decode (buffer) {
26790 if (buffer.length <
8) throw new Error('DER sequence length is too short')
26791 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
26792 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
26793 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
26794 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
26796 var lenR = buffer[
3]
26797 if (lenR ===
0) throw new Error('R length is zero')
26798 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
26799 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
26801 var lenS = buffer[
5 + lenR]
26802 if (lenS ===
0) throw new Error('S length is zero')
26803 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
26805 if (buffer[
4] &
0x80) throw new Error('R value is negative')
26806 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
26808 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
26809 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
26811 // non-BIP66 - extract R, S values
26813 r: buffer.slice(
4,
4 + lenR),
26814 s: buffer.slice(
6 + lenR)
26819 * Expects r and s to be positive DER integers.
26821 * The DER format uses the most significant bit as a sign bit (&
0x80).
26822 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
26837 *
62300 =
> 0x00f35c
26838 * -
62300 =
> 0xff0ca4
26840 function encode (r, s) {
26841 var lenR = r.length
26842 var lenS = s.length
26843 if (lenR ===
0) throw new Error('R length is zero')
26844 if (lenS ===
0) throw new Error('S length is zero')
26845 if (lenR
> 33) throw new Error('R length is too long')
26846 if (lenS
> 33) throw new Error('S length is too long')
26847 if (r[
0] &
0x80) throw new Error('R value is negative')
26848 if (s[
0] &
0x80) throw new Error('S value is negative')
26849 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
26850 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
26852 var signature = new Buffer(
6 + lenR + lenS)
26854 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
26855 signature[
0] =
0x30
26856 signature[
1] = signature.length -
2
26857 signature[
2] =
0x02
26858 signature[
3] = r.length
26859 r.copy(signature,
4)
26860 signature[
4 + lenR] =
0x02
26861 signature[
5 + lenR] = s.length
26862 s.copy(signature,
6 + lenR)
26873 }).call(this,require(
"buffer").Buffer)
26874 },{
"buffer":
5}],
33:[function(require,module,exports){
26875 (function (module, exports) {
26879 function assert (val, msg) {
26880 if (!val) throw new Error(msg || 'Assertion failed');
26883 // Could use `inherits` module, but don't want to move from single file
26884 // architecture yet.
26885 function inherits (ctor, superCtor) {
26886 ctor.super_ = superCtor;
26887 var TempCtor = function () {};
26888 TempCtor.prototype = superCtor.prototype;
26889 ctor.prototype = new TempCtor();
26890 ctor.prototype.constructor = ctor;
26895 function BN (number, base, endian) {
26896 if (BN.isBN(number)) {
26904 // Reduction context
26907 if (number !== null) {
26908 if (base === 'le' || base === 'be') {
26913 this._init(number ||
0, base ||
10, endian || 'be');
26916 if (typeof module === 'object') {
26917 module.exports = BN;
26927 Buffer = require('buf' + 'fer').Buffer;
26931 BN.isBN = function isBN (num) {
26932 if (num instanceof BN) {
26936 return num !== null && typeof num === 'object' &&
26937 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
26940 BN.max = function max (left, right) {
26941 if (left.cmp(right)
> 0) return left;
26945 BN.min = function min (left, right) {
26946 if (left.cmp(right) <
0) return left;
26950 BN.prototype._init = function init (number, base, endian) {
26951 if (typeof number === 'number') {
26952 return this._initNumber(number, base, endian);
26955 if (typeof number === 'object') {
26956 return this._initArray(number, base, endian);
26959 if (base === 'hex') {
26962 assert(base === (base |
0) && base
>=
2 && base <=
36);
26964 number = number.toString().replace(/\s+/g, '');
26966 if (number[
0] === '-') {
26971 this._parseHex(number, start);
26973 this._parseBase(number, base, start);
26976 if (number[
0] === '-') {
26982 if (endian !== 'le') return;
26984 this._initArray(this.toArray(), base, endian);
26987 BN.prototype._initNumber = function _initNumber (number, base, endian) {
26992 if (number <
0x4000000) {
26993 this.words = [ number &
0x3ffffff ];
26995 } else if (number <
0x10000000000000) {
26997 number &
0x3ffffff,
26998 (number /
0x4000000) &
0x3ffffff
27002 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
27004 number &
0x3ffffff,
27005 (number /
0x4000000) &
0x3ffffff,
27011 if (endian !== 'le') return;
27013 // Reverse the bytes
27014 this._initArray(this.toArray(), base, endian);
27017 BN.prototype._initArray = function _initArray (number, base, endian) {
27018 // Perhaps a Uint8Array
27019 assert(typeof number.length === 'number');
27020 if (number.length <=
0) {
27021 this.words = [
0 ];
27026 this.length = Math.ceil(number.length /
3);
27027 this.words = new Array(this.length);
27028 for (var i =
0; i < this.length; i++) {
27034 if (endian === 'be') {
27035 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
27036 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
27037 this.words[j] |= (w << off) &
0x3ffffff;
27038 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
27045 } else if (endian === 'le') {
27046 for (i =
0, j =
0; i < number.length; i +=
3) {
27047 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
27048 this.words[j] |= (w << off) &
0x3ffffff;
27049 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
27057 return this.strip();
27060 function parseHex (str, start, end) {
27062 var len = Math.min(str.length, end);
27063 for (var i = start; i < len; i++) {
27064 var c = str.charCodeAt(i) -
48;
27069 if (c
>=
49 && c <=
54) {
27073 } else if (c
>=
17 && c <=
22) {
27084 BN.prototype._parseHex = function _parseHex (number, start) {
27085 // Create possibly bigger array to ensure that it fits the number
27086 this.length = Math.ceil((number.length - start) /
6);
27087 this.words = new Array(this.length);
27088 for (var i =
0; i < this.length; i++) {
27093 // Scan
24-bit chunks and add them to the number
27095 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
27096 w = parseHex(number, i, i +
6);
27097 this.words[j] |= (w << off) &
0x3ffffff;
27098 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
27099 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
27106 if (i +
6 !== start) {
27107 w = parseHex(number, start, i +
6);
27108 this.words[j] |= (w << off) &
0x3ffffff;
27109 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
27114 function parseBase (str, start, end, mul) {
27116 var len = Math.min(str.length, end);
27117 for (var i = start; i < len; i++) {
27118 var c = str.charCodeAt(i) -
48;
27127 } else if (c
>=
17) {
27138 BN.prototype._parseBase = function _parseBase (number, base, start) {
27139 // Initialize as zero
27140 this.words = [
0 ];
27143 // Find length of limb in base
27144 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
27148 limbPow = (limbPow / base) |
0;
27150 var total = number.length - start;
27151 var mod = total % limbLen;
27152 var end = Math.min(total, total - mod) + start;
27155 for (var i = start; i < end; i += limbLen) {
27156 word = parseBase(number, i, i + limbLen, base);
27158 this.imuln(limbPow);
27159 if (this.words[
0] + word <
0x4000000) {
27160 this.words[
0] += word;
27168 word = parseBase(number, i, number.length, base);
27170 for (i =
0; i < mod; i++) {
27175 if (this.words[
0] + word <
0x4000000) {
27176 this.words[
0] += word;
27183 BN.prototype.copy = function copy (dest) {
27184 dest.words = new Array(this.length);
27185 for (var i =
0; i < this.length; i++) {
27186 dest.words[i] = this.words[i];
27188 dest.length = this.length;
27189 dest.negative = this.negative;
27190 dest.red = this.red;
27193 BN.prototype.clone = function clone () {
27194 var r = new BN(null);
27199 BN.prototype._expand = function _expand (size) {
27200 while (this.length < size) {
27201 this.words[this.length++] =
0;
27206 // Remove leading `
0` from `this`
27207 BN.prototype.strip = function strip () {
27208 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
27211 return this._normSign();
27214 BN.prototype._normSign = function _normSign () {
27216 if (this.length ===
1 && this.words[
0] ===
0) {
27222 BN.prototype.inspect = function inspect () {
27223 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
27229 var groupSizes = [];
27230 var groupBases = [];
27234 while (++i < BN.wordSize) {
27243 while (++base <
36 +
1) {
27246 while (groupBase < (
1 << BN.wordSize) / base) {
27250 groupSizes[base] = groupSize;
27251 groupBases[base] = groupBase;
27273 '
0000000000000000',
27274 '
00000000000000000',
27275 '
000000000000000000',
27276 '
0000000000000000000',
27277 '
00000000000000000000',
27278 '
000000000000000000000',
27279 '
0000000000000000000000',
27280 '
00000000000000000000000',
27281 '
000000000000000000000000',
27282 '
0000000000000000000000000'
27287 25,
16,
12,
11,
10,
9,
8,
27288 8,
7,
7,
7,
7,
6,
6,
27289 6,
6,
6,
6,
6,
5,
5,
27290 5,
5,
5,
5,
5,
5,
5,
27291 5,
5,
5,
5,
5,
5,
5
27296 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
27297 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
27298 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
27299 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
27300 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
27303 BN.prototype.toString = function toString (base, padding) {
27305 padding = padding |
0 ||
1;
27308 if (base ===
16 || base === 'hex') {
27312 for (var i =
0; i < this.length; i++) {
27313 var w = this.words[i];
27314 var word = (((w << off) | carry) &
0xffffff).toString(
16);
27315 carry = (w
>>> (
24 - off)) &
0xffffff;
27316 if (carry !==
0 || i !== this.length -
1) {
27317 out = zeros[
6 - word.length] + word + out;
27328 out = carry.toString(
16) + out;
27330 while (out.length % padding !==
0) {
27333 if (this.negative !==
0) {
27339 if (base === (base |
0) && base
>=
2 && base <=
36) {
27340 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
27341 var groupSize = groupSizes[base];
27342 // var groupBase = Math.pow(base, groupSize);
27343 var groupBase = groupBases[base];
27345 var c = this.clone();
27347 while (!c.isZero()) {
27348 var r = c.modn(groupBase).toString(base);
27349 c = c.idivn(groupBase);
27352 out = zeros[groupSize - r.length] + r + out;
27357 if (this.isZero()) {
27360 while (out.length % padding !==
0) {
27363 if (this.negative !==
0) {
27369 assert(false, 'Base should be between
2 and
36');
27372 BN.prototype.toNumber = function toNumber () {
27373 var ret = this.words[
0];
27374 if (this.length ===
2) {
27375 ret += this.words[
1] *
0x4000000;
27376 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
27377 // NOTE: at this stage it is known that the top bit is set
27378 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
27379 } else if (this.length
> 2) {
27380 assert(false, 'Number can only safely store up to
53 bits');
27382 return (this.negative !==
0) ? -ret : ret;
27385 BN.prototype.toJSON = function toJSON () {
27386 return this.toString(
16);
27389 BN.prototype.toBuffer = function toBuffer (endian, length) {
27390 assert(typeof Buffer !== 'undefined');
27391 return this.toArrayLike(Buffer, endian, length);
27394 BN.prototype.toArray = function toArray (endian, length) {
27395 return this.toArrayLike(Array, endian, length);
27398 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
27399 var byteLength = this.byteLength();
27400 var reqLength = length || Math.max(
1, byteLength);
27401 assert(byteLength <= reqLength, 'byte array longer than desired length');
27402 assert(reqLength
> 0, 'Requested array length <=
0');
27405 var littleEndian = endian === 'le';
27406 var res = new ArrayType(reqLength);
27409 var q = this.clone();
27410 if (!littleEndian) {
27411 // Assume big-endian
27412 for (i =
0; i < reqLength - byteLength; i++) {
27416 for (i =
0; !q.isZero(); i++) {
27420 res[reqLength - i -
1] = b;
27423 for (i =
0; !q.isZero(); i++) {
27430 for (; i < reqLength; i++) {
27439 BN.prototype._countBits = function _countBits (w) {
27440 return
32 - Math.clz32(w);
27443 BN.prototype._countBits = function _countBits (w) {
27466 BN.prototype._zeroBits = function _zeroBits (w) {
27468 if (w ===
0) return
26;
27472 if ((t &
0x1fff) ===
0) {
27476 if ((t &
0x7f) ===
0) {
27480 if ((t &
0xf) ===
0) {
27484 if ((t &
0x3) ===
0) {
27488 if ((t &
0x1) ===
0) {
27494 // Return number of used bits in a BN
27495 BN.prototype.bitLength = function bitLength () {
27496 var w = this.words[this.length -
1];
27497 var hi = this._countBits(w);
27498 return (this.length -
1) *
26 + hi;
27501 function toBitArray (num) {
27502 var w = new Array(num.bitLength());
27504 for (var bit =
0; bit < w.length; bit++) {
27505 var off = (bit /
26) |
0;
27506 var wbit = bit %
26;
27508 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
27514 // Number of trailing zero bits
27515 BN.prototype.zeroBits = function zeroBits () {
27516 if (this.isZero()) return
0;
27519 for (var i =
0; i < this.length; i++) {
27520 var b = this._zeroBits(this.words[i]);
27522 if (b !==
26) break;
27527 BN.prototype.byteLength = function byteLength () {
27528 return Math.ceil(this.bitLength() /
8);
27531 BN.prototype.toTwos = function toTwos (width) {
27532 if (this.negative !==
0) {
27533 return this.abs().inotn(width).iaddn(
1);
27535 return this.clone();
27538 BN.prototype.fromTwos = function fromTwos (width) {
27539 if (this.testn(width -
1)) {
27540 return this.notn(width).iaddn(
1).ineg();
27542 return this.clone();
27545 BN.prototype.isNeg = function isNeg () {
27546 return this.negative !==
0;
27549 // Return negative clone of `this`
27550 BN.prototype.neg = function neg () {
27551 return this.clone().ineg();
27554 BN.prototype.ineg = function ineg () {
27555 if (!this.isZero()) {
27556 this.negative ^=
1;
27562 // Or `num` with `this` in-place
27563 BN.prototype.iuor = function iuor (num) {
27564 while (this.length < num.length) {
27565 this.words[this.length++] =
0;
27568 for (var i =
0; i < num.length; i++) {
27569 this.words[i] = this.words[i] | num.words[i];
27572 return this.strip();
27575 BN.prototype.ior = function ior (num) {
27576 assert((this.negative | num.negative) ===
0);
27577 return this.iuor(num);
27580 // Or `num` with `this`
27581 BN.prototype.or = function or (num) {
27582 if (this.length
> num.length) return this.clone().ior(num);
27583 return num.clone().ior(this);
27586 BN.prototype.uor = function uor (num) {
27587 if (this.length
> num.length) return this.clone().iuor(num);
27588 return num.clone().iuor(this);
27591 // And `num` with `this` in-place
27592 BN.prototype.iuand = function iuand (num) {
27593 // b = min-length(num, this)
27595 if (this.length
> num.length) {
27601 for (var i =
0; i < b.length; i++) {
27602 this.words[i] = this.words[i] & num.words[i];
27605 this.length = b.length;
27607 return this.strip();
27610 BN.prototype.iand = function iand (num) {
27611 assert((this.negative | num.negative) ===
0);
27612 return this.iuand(num);
27615 // And `num` with `this`
27616 BN.prototype.and = function and (num) {
27617 if (this.length
> num.length) return this.clone().iand(num);
27618 return num.clone().iand(this);
27621 BN.prototype.uand = function uand (num) {
27622 if (this.length
> num.length) return this.clone().iuand(num);
27623 return num.clone().iuand(this);
27626 // Xor `num` with `this` in-place
27627 BN.prototype.iuxor = function iuxor (num) {
27628 // a.length
> b.length
27631 if (this.length
> num.length) {
27639 for (var i =
0; i < b.length; i++) {
27640 this.words[i] = a.words[i] ^ b.words[i];
27644 for (; i < a.length; i++) {
27645 this.words[i] = a.words[i];
27649 this.length = a.length;
27651 return this.strip();
27654 BN.prototype.ixor = function ixor (num) {
27655 assert((this.negative | num.negative) ===
0);
27656 return this.iuxor(num);
27659 // Xor `num` with `this`
27660 BN.prototype.xor = function xor (num) {
27661 if (this.length
> num.length) return this.clone().ixor(num);
27662 return num.clone().ixor(this);
27665 BN.prototype.uxor = function uxor (num) {
27666 if (this.length
> num.length) return this.clone().iuxor(num);
27667 return num.clone().iuxor(this);
27670 // Not ``this`` with ``width`` bitwidth
27671 BN.prototype.inotn = function inotn (width) {
27672 assert(typeof width === 'number' && width
>=
0);
27674 var bytesNeeded = Math.ceil(width /
26) |
0;
27675 var bitsLeft = width %
26;
27677 // Extend the buffer with leading zeroes
27678 this._expand(bytesNeeded);
27680 if (bitsLeft
> 0) {
27684 // Handle complete words
27685 for (var i =
0; i < bytesNeeded; i++) {
27686 this.words[i] = ~this.words[i] &
0x3ffffff;
27689 // Handle the residue
27690 if (bitsLeft
> 0) {
27691 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
27694 // And remove leading zeroes
27695 return this.strip();
27698 BN.prototype.notn = function notn (width) {
27699 return this.clone().inotn(width);
27702 // Set `bit` of `this`
27703 BN.prototype.setn = function setn (bit, val) {
27704 assert(typeof bit === 'number' && bit
>=
0);
27706 var off = (bit /
26) |
0;
27707 var wbit = bit %
26;
27709 this._expand(off +
1);
27712 this.words[off] = this.words[off] | (
1 << wbit);
27714 this.words[off] = this.words[off] & ~(
1 << wbit);
27717 return this.strip();
27720 // Add `num` to `this` in-place
27721 BN.prototype.iadd = function iadd (num) {
27724 // negative + positive
27725 if (this.negative !==
0 && num.negative ===
0) {
27727 r = this.isub(num);
27728 this.negative ^=
1;
27729 return this._normSign();
27731 // positive + negative
27732 } else if (this.negative ===
0 && num.negative !==
0) {
27734 r = this.isub(num);
27736 return r._normSign();
27739 // a.length
> b.length
27741 if (this.length
> num.length) {
27750 for (var i =
0; i < b.length; i++) {
27751 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
27752 this.words[i] = r &
0x3ffffff;
27755 for (; carry !==
0 && i < a.length; i++) {
27756 r = (a.words[i] |
0) + carry;
27757 this.words[i] = r &
0x3ffffff;
27761 this.length = a.length;
27763 this.words[this.length] = carry;
27765 // Copy the rest of the words
27766 } else if (a !== this) {
27767 for (; i < a.length; i++) {
27768 this.words[i] = a.words[i];
27775 // Add `num` to `this`
27776 BN.prototype.add = function add (num) {
27778 if (num.negative !==
0 && this.negative ===
0) {
27780 res = this.sub(num);
27783 } else if (num.negative ===
0 && this.negative !==
0) {
27785 res = num.sub(this);
27790 if (this.length
> num.length) return this.clone().iadd(num);
27792 return num.clone().iadd(this);
27795 // Subtract `num` from `this` in-place
27796 BN.prototype.isub = function isub (num) {
27797 // this - (-num) = this + num
27798 if (num.negative !==
0) {
27800 var r = this.iadd(num);
27802 return r._normSign();
27804 // -this - num = -(this + num)
27805 } else if (this.negative !==
0) {
27809 return this._normSign();
27812 // At this point both numbers are positive
27813 var cmp = this.cmp(num);
27815 // Optimization - zeroify
27834 for (var i =
0; i < b.length; i++) {
27835 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
27837 this.words[i] = r &
0x3ffffff;
27839 for (; carry !==
0 && i < a.length; i++) {
27840 r = (a.words[i] |
0) + carry;
27842 this.words[i] = r &
0x3ffffff;
27845 // Copy rest of the words
27846 if (carry ===
0 && i < a.length && a !== this) {
27847 for (; i < a.length; i++) {
27848 this.words[i] = a.words[i];
27852 this.length = Math.max(this.length, i);
27858 return this.strip();
27861 // Subtract `num` from `this`
27862 BN.prototype.sub = function sub (num) {
27863 return this.clone().isub(num);
27866 function smallMulTo (self, num, out) {
27867 out.negative = num.negative ^ self.negative;
27868 var len = (self.length + num.length) |
0;
27870 len = (len -
1) |
0;
27872 // Peel one iteration (compiler can't do it, because of code complexity)
27873 var a = self.words[
0] |
0;
27874 var b = num.words[
0] |
0;
27877 var lo = r &
0x3ffffff;
27878 var carry = (r /
0x4000000) |
0;
27881 for (var k =
1; k < len; k++) {
27882 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
27883 // note that ncarry could be
>=
0x3ffffff
27884 var ncarry = carry
>>> 26;
27885 var rword = carry &
0x3ffffff;
27886 var maxJ = Math.min(k, num.length -
1);
27887 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
27888 var i = (k - j) |
0;
27889 a = self.words[i] |
0;
27890 b = num.words[j] |
0;
27892 ncarry += (r /
0x4000000) |
0;
27893 rword = r &
0x3ffffff;
27895 out.words[k] = rword |
0;
27896 carry = ncarry |
0;
27899 out.words[k] = carry |
0;
27904 return out.strip();
27907 // TODO(indutny): it may be reasonable to omit it for users who don't need
27908 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
27909 // multiplication (like elliptic secp256k1).
27910 var comb10MulTo = function comb10MulTo (self, num, out) {
27911 var a = self.words;
27919 var al0 = a0 &
0x1fff;
27920 var ah0 = a0
>>> 13;
27922 var al1 = a1 &
0x1fff;
27923 var ah1 = a1
>>> 13;
27925 var al2 = a2 &
0x1fff;
27926 var ah2 = a2
>>> 13;
27928 var al3 = a3 &
0x1fff;
27929 var ah3 = a3
>>> 13;
27931 var al4 = a4 &
0x1fff;
27932 var ah4 = a4
>>> 13;
27934 var al5 = a5 &
0x1fff;
27935 var ah5 = a5
>>> 13;
27937 var al6 = a6 &
0x1fff;
27938 var ah6 = a6
>>> 13;
27940 var al7 = a7 &
0x1fff;
27941 var ah7 = a7
>>> 13;
27943 var al8 = a8 &
0x1fff;
27944 var ah8 = a8
>>> 13;
27946 var al9 = a9 &
0x1fff;
27947 var ah9 = a9
>>> 13;
27949 var bl0 = b0 &
0x1fff;
27950 var bh0 = b0
>>> 13;
27952 var bl1 = b1 &
0x1fff;
27953 var bh1 = b1
>>> 13;
27955 var bl2 = b2 &
0x1fff;
27956 var bh2 = b2
>>> 13;
27958 var bl3 = b3 &
0x1fff;
27959 var bh3 = b3
>>> 13;
27961 var bl4 = b4 &
0x1fff;
27962 var bh4 = b4
>>> 13;
27964 var bl5 = b5 &
0x1fff;
27965 var bh5 = b5
>>> 13;
27967 var bl6 = b6 &
0x1fff;
27968 var bh6 = b6
>>> 13;
27970 var bl7 = b7 &
0x1fff;
27971 var bh7 = b7
>>> 13;
27973 var bl8 = b8 &
0x1fff;
27974 var bh8 = b8
>>> 13;
27976 var bl9 = b9 &
0x1fff;
27977 var bh9 = b9
>>> 13;
27979 out.negative = self.negative ^ num.negative;
27982 lo = Math.imul(al0, bl0);
27983 mid = Math.imul(al0, bh0);
27984 mid = (mid + Math.imul(ah0, bl0)) |
0;
27985 hi = Math.imul(ah0, bh0);
27986 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
27987 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
27990 lo = Math.imul(al1, bl0);
27991 mid = Math.imul(al1, bh0);
27992 mid = (mid + Math.imul(ah1, bl0)) |
0;
27993 hi = Math.imul(ah1, bh0);
27994 lo = (lo + Math.imul(al0, bl1)) |
0;
27995 mid = (mid + Math.imul(al0, bh1)) |
0;
27996 mid = (mid + Math.imul(ah0, bl1)) |
0;
27997 hi = (hi + Math.imul(ah0, bh1)) |
0;
27998 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
27999 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
28002 lo = Math.imul(al2, bl0);
28003 mid = Math.imul(al2, bh0);
28004 mid = (mid + Math.imul(ah2, bl0)) |
0;
28005 hi = Math.imul(ah2, bh0);
28006 lo = (lo + Math.imul(al1, bl1)) |
0;
28007 mid = (mid + Math.imul(al1, bh1)) |
0;
28008 mid = (mid + Math.imul(ah1, bl1)) |
0;
28009 hi = (hi + Math.imul(ah1, bh1)) |
0;
28010 lo = (lo + Math.imul(al0, bl2)) |
0;
28011 mid = (mid + Math.imul(al0, bh2)) |
0;
28012 mid = (mid + Math.imul(ah0, bl2)) |
0;
28013 hi = (hi + Math.imul(ah0, bh2)) |
0;
28014 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28015 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
28018 lo = Math.imul(al3, bl0);
28019 mid = Math.imul(al3, bh0);
28020 mid = (mid + Math.imul(ah3, bl0)) |
0;
28021 hi = Math.imul(ah3, bh0);
28022 lo = (lo + Math.imul(al2, bl1)) |
0;
28023 mid = (mid + Math.imul(al2, bh1)) |
0;
28024 mid = (mid + Math.imul(ah2, bl1)) |
0;
28025 hi = (hi + Math.imul(ah2, bh1)) |
0;
28026 lo = (lo + Math.imul(al1, bl2)) |
0;
28027 mid = (mid + Math.imul(al1, bh2)) |
0;
28028 mid = (mid + Math.imul(ah1, bl2)) |
0;
28029 hi = (hi + Math.imul(ah1, bh2)) |
0;
28030 lo = (lo + Math.imul(al0, bl3)) |
0;
28031 mid = (mid + Math.imul(al0, bh3)) |
0;
28032 mid = (mid + Math.imul(ah0, bl3)) |
0;
28033 hi = (hi + Math.imul(ah0, bh3)) |
0;
28034 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28035 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
28038 lo = Math.imul(al4, bl0);
28039 mid = Math.imul(al4, bh0);
28040 mid = (mid + Math.imul(ah4, bl0)) |
0;
28041 hi = Math.imul(ah4, bh0);
28042 lo = (lo + Math.imul(al3, bl1)) |
0;
28043 mid = (mid + Math.imul(al3, bh1)) |
0;
28044 mid = (mid + Math.imul(ah3, bl1)) |
0;
28045 hi = (hi + Math.imul(ah3, bh1)) |
0;
28046 lo = (lo + Math.imul(al2, bl2)) |
0;
28047 mid = (mid + Math.imul(al2, bh2)) |
0;
28048 mid = (mid + Math.imul(ah2, bl2)) |
0;
28049 hi = (hi + Math.imul(ah2, bh2)) |
0;
28050 lo = (lo + Math.imul(al1, bl3)) |
0;
28051 mid = (mid + Math.imul(al1, bh3)) |
0;
28052 mid = (mid + Math.imul(ah1, bl3)) |
0;
28053 hi = (hi + Math.imul(ah1, bh3)) |
0;
28054 lo = (lo + Math.imul(al0, bl4)) |
0;
28055 mid = (mid + Math.imul(al0, bh4)) |
0;
28056 mid = (mid + Math.imul(ah0, bl4)) |
0;
28057 hi = (hi + Math.imul(ah0, bh4)) |
0;
28058 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28059 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
28062 lo = Math.imul(al5, bl0);
28063 mid = Math.imul(al5, bh0);
28064 mid = (mid + Math.imul(ah5, bl0)) |
0;
28065 hi = Math.imul(ah5, bh0);
28066 lo = (lo + Math.imul(al4, bl1)) |
0;
28067 mid = (mid + Math.imul(al4, bh1)) |
0;
28068 mid = (mid + Math.imul(ah4, bl1)) |
0;
28069 hi = (hi + Math.imul(ah4, bh1)) |
0;
28070 lo = (lo + Math.imul(al3, bl2)) |
0;
28071 mid = (mid + Math.imul(al3, bh2)) |
0;
28072 mid = (mid + Math.imul(ah3, bl2)) |
0;
28073 hi = (hi + Math.imul(ah3, bh2)) |
0;
28074 lo = (lo + Math.imul(al2, bl3)) |
0;
28075 mid = (mid + Math.imul(al2, bh3)) |
0;
28076 mid = (mid + Math.imul(ah2, bl3)) |
0;
28077 hi = (hi + Math.imul(ah2, bh3)) |
0;
28078 lo = (lo + Math.imul(al1, bl4)) |
0;
28079 mid = (mid + Math.imul(al1, bh4)) |
0;
28080 mid = (mid + Math.imul(ah1, bl4)) |
0;
28081 hi = (hi + Math.imul(ah1, bh4)) |
0;
28082 lo = (lo + Math.imul(al0, bl5)) |
0;
28083 mid = (mid + Math.imul(al0, bh5)) |
0;
28084 mid = (mid + Math.imul(ah0, bl5)) |
0;
28085 hi = (hi + Math.imul(ah0, bh5)) |
0;
28086 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28087 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
28090 lo = Math.imul(al6, bl0);
28091 mid = Math.imul(al6, bh0);
28092 mid = (mid + Math.imul(ah6, bl0)) |
0;
28093 hi = Math.imul(ah6, bh0);
28094 lo = (lo + Math.imul(al5, bl1)) |
0;
28095 mid = (mid + Math.imul(al5, bh1)) |
0;
28096 mid = (mid + Math.imul(ah5, bl1)) |
0;
28097 hi = (hi + Math.imul(ah5, bh1)) |
0;
28098 lo = (lo + Math.imul(al4, bl2)) |
0;
28099 mid = (mid + Math.imul(al4, bh2)) |
0;
28100 mid = (mid + Math.imul(ah4, bl2)) |
0;
28101 hi = (hi + Math.imul(ah4, bh2)) |
0;
28102 lo = (lo + Math.imul(al3, bl3)) |
0;
28103 mid = (mid + Math.imul(al3, bh3)) |
0;
28104 mid = (mid + Math.imul(ah3, bl3)) |
0;
28105 hi = (hi + Math.imul(ah3, bh3)) |
0;
28106 lo = (lo + Math.imul(al2, bl4)) |
0;
28107 mid = (mid + Math.imul(al2, bh4)) |
0;
28108 mid = (mid + Math.imul(ah2, bl4)) |
0;
28109 hi = (hi + Math.imul(ah2, bh4)) |
0;
28110 lo = (lo + Math.imul(al1, bl5)) |
0;
28111 mid = (mid + Math.imul(al1, bh5)) |
0;
28112 mid = (mid + Math.imul(ah1, bl5)) |
0;
28113 hi = (hi + Math.imul(ah1, bh5)) |
0;
28114 lo = (lo + Math.imul(al0, bl6)) |
0;
28115 mid = (mid + Math.imul(al0, bh6)) |
0;
28116 mid = (mid + Math.imul(ah0, bl6)) |
0;
28117 hi = (hi + Math.imul(ah0, bh6)) |
0;
28118 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28119 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
28122 lo = Math.imul(al7, bl0);
28123 mid = Math.imul(al7, bh0);
28124 mid = (mid + Math.imul(ah7, bl0)) |
0;
28125 hi = Math.imul(ah7, bh0);
28126 lo = (lo + Math.imul(al6, bl1)) |
0;
28127 mid = (mid + Math.imul(al6, bh1)) |
0;
28128 mid = (mid + Math.imul(ah6, bl1)) |
0;
28129 hi = (hi + Math.imul(ah6, bh1)) |
0;
28130 lo = (lo + Math.imul(al5, bl2)) |
0;
28131 mid = (mid + Math.imul(al5, bh2)) |
0;
28132 mid = (mid + Math.imul(ah5, bl2)) |
0;
28133 hi = (hi + Math.imul(ah5, bh2)) |
0;
28134 lo = (lo + Math.imul(al4, bl3)) |
0;
28135 mid = (mid + Math.imul(al4, bh3)) |
0;
28136 mid = (mid + Math.imul(ah4, bl3)) |
0;
28137 hi = (hi + Math.imul(ah4, bh3)) |
0;
28138 lo = (lo + Math.imul(al3, bl4)) |
0;
28139 mid = (mid + Math.imul(al3, bh4)) |
0;
28140 mid = (mid + Math.imul(ah3, bl4)) |
0;
28141 hi = (hi + Math.imul(ah3, bh4)) |
0;
28142 lo = (lo + Math.imul(al2, bl5)) |
0;
28143 mid = (mid + Math.imul(al2, bh5)) |
0;
28144 mid = (mid + Math.imul(ah2, bl5)) |
0;
28145 hi = (hi + Math.imul(ah2, bh5)) |
0;
28146 lo = (lo + Math.imul(al1, bl6)) |
0;
28147 mid = (mid + Math.imul(al1, bh6)) |
0;
28148 mid = (mid + Math.imul(ah1, bl6)) |
0;
28149 hi = (hi + Math.imul(ah1, bh6)) |
0;
28150 lo = (lo + Math.imul(al0, bl7)) |
0;
28151 mid = (mid + Math.imul(al0, bh7)) |
0;
28152 mid = (mid + Math.imul(ah0, bl7)) |
0;
28153 hi = (hi + Math.imul(ah0, bh7)) |
0;
28154 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28155 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
28158 lo = Math.imul(al8, bl0);
28159 mid = Math.imul(al8, bh0);
28160 mid = (mid + Math.imul(ah8, bl0)) |
0;
28161 hi = Math.imul(ah8, bh0);
28162 lo = (lo + Math.imul(al7, bl1)) |
0;
28163 mid = (mid + Math.imul(al7, bh1)) |
0;
28164 mid = (mid + Math.imul(ah7, bl1)) |
0;
28165 hi = (hi + Math.imul(ah7, bh1)) |
0;
28166 lo = (lo + Math.imul(al6, bl2)) |
0;
28167 mid = (mid + Math.imul(al6, bh2)) |
0;
28168 mid = (mid + Math.imul(ah6, bl2)) |
0;
28169 hi = (hi + Math.imul(ah6, bh2)) |
0;
28170 lo = (lo + Math.imul(al5, bl3)) |
0;
28171 mid = (mid + Math.imul(al5, bh3)) |
0;
28172 mid = (mid + Math.imul(ah5, bl3)) |
0;
28173 hi = (hi + Math.imul(ah5, bh3)) |
0;
28174 lo = (lo + Math.imul(al4, bl4)) |
0;
28175 mid = (mid + Math.imul(al4, bh4)) |
0;
28176 mid = (mid + Math.imul(ah4, bl4)) |
0;
28177 hi = (hi + Math.imul(ah4, bh4)) |
0;
28178 lo = (lo + Math.imul(al3, bl5)) |
0;
28179 mid = (mid + Math.imul(al3, bh5)) |
0;
28180 mid = (mid + Math.imul(ah3, bl5)) |
0;
28181 hi = (hi + Math.imul(ah3, bh5)) |
0;
28182 lo = (lo + Math.imul(al2, bl6)) |
0;
28183 mid = (mid + Math.imul(al2, bh6)) |
0;
28184 mid = (mid + Math.imul(ah2, bl6)) |
0;
28185 hi = (hi + Math.imul(ah2, bh6)) |
0;
28186 lo = (lo + Math.imul(al1, bl7)) |
0;
28187 mid = (mid + Math.imul(al1, bh7)) |
0;
28188 mid = (mid + Math.imul(ah1, bl7)) |
0;
28189 hi = (hi + Math.imul(ah1, bh7)) |
0;
28190 lo = (lo + Math.imul(al0, bl8)) |
0;
28191 mid = (mid + Math.imul(al0, bh8)) |
0;
28192 mid = (mid + Math.imul(ah0, bl8)) |
0;
28193 hi = (hi + Math.imul(ah0, bh8)) |
0;
28194 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28195 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
28198 lo = Math.imul(al9, bl0);
28199 mid = Math.imul(al9, bh0);
28200 mid = (mid + Math.imul(ah9, bl0)) |
0;
28201 hi = Math.imul(ah9, bh0);
28202 lo = (lo + Math.imul(al8, bl1)) |
0;
28203 mid = (mid + Math.imul(al8, bh1)) |
0;
28204 mid = (mid + Math.imul(ah8, bl1)) |
0;
28205 hi = (hi + Math.imul(ah8, bh1)) |
0;
28206 lo = (lo + Math.imul(al7, bl2)) |
0;
28207 mid = (mid + Math.imul(al7, bh2)) |
0;
28208 mid = (mid + Math.imul(ah7, bl2)) |
0;
28209 hi = (hi + Math.imul(ah7, bh2)) |
0;
28210 lo = (lo + Math.imul(al6, bl3)) |
0;
28211 mid = (mid + Math.imul(al6, bh3)) |
0;
28212 mid = (mid + Math.imul(ah6, bl3)) |
0;
28213 hi = (hi + Math.imul(ah6, bh3)) |
0;
28214 lo = (lo + Math.imul(al5, bl4)) |
0;
28215 mid = (mid + Math.imul(al5, bh4)) |
0;
28216 mid = (mid + Math.imul(ah5, bl4)) |
0;
28217 hi = (hi + Math.imul(ah5, bh4)) |
0;
28218 lo = (lo + Math.imul(al4, bl5)) |
0;
28219 mid = (mid + Math.imul(al4, bh5)) |
0;
28220 mid = (mid + Math.imul(ah4, bl5)) |
0;
28221 hi = (hi + Math.imul(ah4, bh5)) |
0;
28222 lo = (lo + Math.imul(al3, bl6)) |
0;
28223 mid = (mid + Math.imul(al3, bh6)) |
0;
28224 mid = (mid + Math.imul(ah3, bl6)) |
0;
28225 hi = (hi + Math.imul(ah3, bh6)) |
0;
28226 lo = (lo + Math.imul(al2, bl7)) |
0;
28227 mid = (mid + Math.imul(al2, bh7)) |
0;
28228 mid = (mid + Math.imul(ah2, bl7)) |
0;
28229 hi = (hi + Math.imul(ah2, bh7)) |
0;
28230 lo = (lo + Math.imul(al1, bl8)) |
0;
28231 mid = (mid + Math.imul(al1, bh8)) |
0;
28232 mid = (mid + Math.imul(ah1, bl8)) |
0;
28233 hi = (hi + Math.imul(ah1, bh8)) |
0;
28234 lo = (lo + Math.imul(al0, bl9)) |
0;
28235 mid = (mid + Math.imul(al0, bh9)) |
0;
28236 mid = (mid + Math.imul(ah0, bl9)) |
0;
28237 hi = (hi + Math.imul(ah0, bh9)) |
0;
28238 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28239 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
28242 lo = Math.imul(al9, bl1);
28243 mid = Math.imul(al9, bh1);
28244 mid = (mid + Math.imul(ah9, bl1)) |
0;
28245 hi = Math.imul(ah9, bh1);
28246 lo = (lo + Math.imul(al8, bl2)) |
0;
28247 mid = (mid + Math.imul(al8, bh2)) |
0;
28248 mid = (mid + Math.imul(ah8, bl2)) |
0;
28249 hi = (hi + Math.imul(ah8, bh2)) |
0;
28250 lo = (lo + Math.imul(al7, bl3)) |
0;
28251 mid = (mid + Math.imul(al7, bh3)) |
0;
28252 mid = (mid + Math.imul(ah7, bl3)) |
0;
28253 hi = (hi + Math.imul(ah7, bh3)) |
0;
28254 lo = (lo + Math.imul(al6, bl4)) |
0;
28255 mid = (mid + Math.imul(al6, bh4)) |
0;
28256 mid = (mid + Math.imul(ah6, bl4)) |
0;
28257 hi = (hi + Math.imul(ah6, bh4)) |
0;
28258 lo = (lo + Math.imul(al5, bl5)) |
0;
28259 mid = (mid + Math.imul(al5, bh5)) |
0;
28260 mid = (mid + Math.imul(ah5, bl5)) |
0;
28261 hi = (hi + Math.imul(ah5, bh5)) |
0;
28262 lo = (lo + Math.imul(al4, bl6)) |
0;
28263 mid = (mid + Math.imul(al4, bh6)) |
0;
28264 mid = (mid + Math.imul(ah4, bl6)) |
0;
28265 hi = (hi + Math.imul(ah4, bh6)) |
0;
28266 lo = (lo + Math.imul(al3, bl7)) |
0;
28267 mid = (mid + Math.imul(al3, bh7)) |
0;
28268 mid = (mid + Math.imul(ah3, bl7)) |
0;
28269 hi = (hi + Math.imul(ah3, bh7)) |
0;
28270 lo = (lo + Math.imul(al2, bl8)) |
0;
28271 mid = (mid + Math.imul(al2, bh8)) |
0;
28272 mid = (mid + Math.imul(ah2, bl8)) |
0;
28273 hi = (hi + Math.imul(ah2, bh8)) |
0;
28274 lo = (lo + Math.imul(al1, bl9)) |
0;
28275 mid = (mid + Math.imul(al1, bh9)) |
0;
28276 mid = (mid + Math.imul(ah1, bl9)) |
0;
28277 hi = (hi + Math.imul(ah1, bh9)) |
0;
28278 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28279 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
28282 lo = Math.imul(al9, bl2);
28283 mid = Math.imul(al9, bh2);
28284 mid = (mid + Math.imul(ah9, bl2)) |
0;
28285 hi = Math.imul(ah9, bh2);
28286 lo = (lo + Math.imul(al8, bl3)) |
0;
28287 mid = (mid + Math.imul(al8, bh3)) |
0;
28288 mid = (mid + Math.imul(ah8, bl3)) |
0;
28289 hi = (hi + Math.imul(ah8, bh3)) |
0;
28290 lo = (lo + Math.imul(al7, bl4)) |
0;
28291 mid = (mid + Math.imul(al7, bh4)) |
0;
28292 mid = (mid + Math.imul(ah7, bl4)) |
0;
28293 hi = (hi + Math.imul(ah7, bh4)) |
0;
28294 lo = (lo + Math.imul(al6, bl5)) |
0;
28295 mid = (mid + Math.imul(al6, bh5)) |
0;
28296 mid = (mid + Math.imul(ah6, bl5)) |
0;
28297 hi = (hi + Math.imul(ah6, bh5)) |
0;
28298 lo = (lo + Math.imul(al5, bl6)) |
0;
28299 mid = (mid + Math.imul(al5, bh6)) |
0;
28300 mid = (mid + Math.imul(ah5, bl6)) |
0;
28301 hi = (hi + Math.imul(ah5, bh6)) |
0;
28302 lo = (lo + Math.imul(al4, bl7)) |
0;
28303 mid = (mid + Math.imul(al4, bh7)) |
0;
28304 mid = (mid + Math.imul(ah4, bl7)) |
0;
28305 hi = (hi + Math.imul(ah4, bh7)) |
0;
28306 lo = (lo + Math.imul(al3, bl8)) |
0;
28307 mid = (mid + Math.imul(al3, bh8)) |
0;
28308 mid = (mid + Math.imul(ah3, bl8)) |
0;
28309 hi = (hi + Math.imul(ah3, bh8)) |
0;
28310 lo = (lo + Math.imul(al2, bl9)) |
0;
28311 mid = (mid + Math.imul(al2, bh9)) |
0;
28312 mid = (mid + Math.imul(ah2, bl9)) |
0;
28313 hi = (hi + Math.imul(ah2, bh9)) |
0;
28314 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28315 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
28318 lo = Math.imul(al9, bl3);
28319 mid = Math.imul(al9, bh3);
28320 mid = (mid + Math.imul(ah9, bl3)) |
0;
28321 hi = Math.imul(ah9, bh3);
28322 lo = (lo + Math.imul(al8, bl4)) |
0;
28323 mid = (mid + Math.imul(al8, bh4)) |
0;
28324 mid = (mid + Math.imul(ah8, bl4)) |
0;
28325 hi = (hi + Math.imul(ah8, bh4)) |
0;
28326 lo = (lo + Math.imul(al7, bl5)) |
0;
28327 mid = (mid + Math.imul(al7, bh5)) |
0;
28328 mid = (mid + Math.imul(ah7, bl5)) |
0;
28329 hi = (hi + Math.imul(ah7, bh5)) |
0;
28330 lo = (lo + Math.imul(al6, bl6)) |
0;
28331 mid = (mid + Math.imul(al6, bh6)) |
0;
28332 mid = (mid + Math.imul(ah6, bl6)) |
0;
28333 hi = (hi + Math.imul(ah6, bh6)) |
0;
28334 lo = (lo + Math.imul(al5, bl7)) |
0;
28335 mid = (mid + Math.imul(al5, bh7)) |
0;
28336 mid = (mid + Math.imul(ah5, bl7)) |
0;
28337 hi = (hi + Math.imul(ah5, bh7)) |
0;
28338 lo = (lo + Math.imul(al4, bl8)) |
0;
28339 mid = (mid + Math.imul(al4, bh8)) |
0;
28340 mid = (mid + Math.imul(ah4, bl8)) |
0;
28341 hi = (hi + Math.imul(ah4, bh8)) |
0;
28342 lo = (lo + Math.imul(al3, bl9)) |
0;
28343 mid = (mid + Math.imul(al3, bh9)) |
0;
28344 mid = (mid + Math.imul(ah3, bl9)) |
0;
28345 hi = (hi + Math.imul(ah3, bh9)) |
0;
28346 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28347 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
28350 lo = Math.imul(al9, bl4);
28351 mid = Math.imul(al9, bh4);
28352 mid = (mid + Math.imul(ah9, bl4)) |
0;
28353 hi = Math.imul(ah9, bh4);
28354 lo = (lo + Math.imul(al8, bl5)) |
0;
28355 mid = (mid + Math.imul(al8, bh5)) |
0;
28356 mid = (mid + Math.imul(ah8, bl5)) |
0;
28357 hi = (hi + Math.imul(ah8, bh5)) |
0;
28358 lo = (lo + Math.imul(al7, bl6)) |
0;
28359 mid = (mid + Math.imul(al7, bh6)) |
0;
28360 mid = (mid + Math.imul(ah7, bl6)) |
0;
28361 hi = (hi + Math.imul(ah7, bh6)) |
0;
28362 lo = (lo + Math.imul(al6, bl7)) |
0;
28363 mid = (mid + Math.imul(al6, bh7)) |
0;
28364 mid = (mid + Math.imul(ah6, bl7)) |
0;
28365 hi = (hi + Math.imul(ah6, bh7)) |
0;
28366 lo = (lo + Math.imul(al5, bl8)) |
0;
28367 mid = (mid + Math.imul(al5, bh8)) |
0;
28368 mid = (mid + Math.imul(ah5, bl8)) |
0;
28369 hi = (hi + Math.imul(ah5, bh8)) |
0;
28370 lo = (lo + Math.imul(al4, bl9)) |
0;
28371 mid = (mid + Math.imul(al4, bh9)) |
0;
28372 mid = (mid + Math.imul(ah4, bl9)) |
0;
28373 hi = (hi + Math.imul(ah4, bh9)) |
0;
28374 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28375 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
28378 lo = Math.imul(al9, bl5);
28379 mid = Math.imul(al9, bh5);
28380 mid = (mid + Math.imul(ah9, bl5)) |
0;
28381 hi = Math.imul(ah9, bh5);
28382 lo = (lo + Math.imul(al8, bl6)) |
0;
28383 mid = (mid + Math.imul(al8, bh6)) |
0;
28384 mid = (mid + Math.imul(ah8, bl6)) |
0;
28385 hi = (hi + Math.imul(ah8, bh6)) |
0;
28386 lo = (lo + Math.imul(al7, bl7)) |
0;
28387 mid = (mid + Math.imul(al7, bh7)) |
0;
28388 mid = (mid + Math.imul(ah7, bl7)) |
0;
28389 hi = (hi + Math.imul(ah7, bh7)) |
0;
28390 lo = (lo + Math.imul(al6, bl8)) |
0;
28391 mid = (mid + Math.imul(al6, bh8)) |
0;
28392 mid = (mid + Math.imul(ah6, bl8)) |
0;
28393 hi = (hi + Math.imul(ah6, bh8)) |
0;
28394 lo = (lo + Math.imul(al5, bl9)) |
0;
28395 mid = (mid + Math.imul(al5, bh9)) |
0;
28396 mid = (mid + Math.imul(ah5, bl9)) |
0;
28397 hi = (hi + Math.imul(ah5, bh9)) |
0;
28398 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28399 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
28402 lo = Math.imul(al9, bl6);
28403 mid = Math.imul(al9, bh6);
28404 mid = (mid + Math.imul(ah9, bl6)) |
0;
28405 hi = Math.imul(ah9, bh6);
28406 lo = (lo + Math.imul(al8, bl7)) |
0;
28407 mid = (mid + Math.imul(al8, bh7)) |
0;
28408 mid = (mid + Math.imul(ah8, bl7)) |
0;
28409 hi = (hi + Math.imul(ah8, bh7)) |
0;
28410 lo = (lo + Math.imul(al7, bl8)) |
0;
28411 mid = (mid + Math.imul(al7, bh8)) |
0;
28412 mid = (mid + Math.imul(ah7, bl8)) |
0;
28413 hi = (hi + Math.imul(ah7, bh8)) |
0;
28414 lo = (lo + Math.imul(al6, bl9)) |
0;
28415 mid = (mid + Math.imul(al6, bh9)) |
0;
28416 mid = (mid + Math.imul(ah6, bl9)) |
0;
28417 hi = (hi + Math.imul(ah6, bh9)) |
0;
28418 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28419 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
28422 lo = Math.imul(al9, bl7);
28423 mid = Math.imul(al9, bh7);
28424 mid = (mid + Math.imul(ah9, bl7)) |
0;
28425 hi = Math.imul(ah9, bh7);
28426 lo = (lo + Math.imul(al8, bl8)) |
0;
28427 mid = (mid + Math.imul(al8, bh8)) |
0;
28428 mid = (mid + Math.imul(ah8, bl8)) |
0;
28429 hi = (hi + Math.imul(ah8, bh8)) |
0;
28430 lo = (lo + Math.imul(al7, bl9)) |
0;
28431 mid = (mid + Math.imul(al7, bh9)) |
0;
28432 mid = (mid + Math.imul(ah7, bl9)) |
0;
28433 hi = (hi + Math.imul(ah7, bh9)) |
0;
28434 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28435 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
28438 lo = Math.imul(al9, bl8);
28439 mid = Math.imul(al9, bh8);
28440 mid = (mid + Math.imul(ah9, bl8)) |
0;
28441 hi = Math.imul(ah9, bh8);
28442 lo = (lo + Math.imul(al8, bl9)) |
0;
28443 mid = (mid + Math.imul(al8, bh9)) |
0;
28444 mid = (mid + Math.imul(ah8, bl9)) |
0;
28445 hi = (hi + Math.imul(ah8, bh9)) |
0;
28446 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28447 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
28450 lo = Math.imul(al9, bl9);
28451 mid = Math.imul(al9, bh9);
28452 mid = (mid + Math.imul(ah9, bl9)) |
0;
28453 hi = Math.imul(ah9, bh9);
28454 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28455 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
28485 comb10MulTo = smallMulTo;
28488 function bigMulTo (self, num, out) {
28489 out.negative = num.negative ^ self.negative;
28490 out.length = self.length + num.length;
28494 for (var k =
0; k < out.length -
1; k++) {
28495 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
28496 // note that ncarry could be
>=
0x3ffffff
28497 var ncarry = hncarry;
28499 var rword = carry &
0x3ffffff;
28500 var maxJ = Math.min(k, num.length -
1);
28501 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
28503 var a = self.words[i] |
0;
28504 var b = num.words[j] |
0;
28507 var lo = r &
0x3ffffff;
28508 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
28509 lo = (lo + rword) |
0;
28510 rword = lo &
0x3ffffff;
28511 ncarry = (ncarry + (lo
>>> 26)) |
0;
28513 hncarry += ncarry
>>> 26;
28514 ncarry &=
0x3ffffff;
28516 out.words[k] = rword;
28521 out.words[k] = carry;
28526 return out.strip();
28529 function jumboMulTo (self, num, out) {
28530 var fftm = new FFTM();
28531 return fftm.mulp(self, num, out);
28534 BN.prototype.mulTo = function mulTo (num, out) {
28536 var len = this.length + num.length;
28537 if (this.length ===
10 && num.length ===
10) {
28538 res = comb10MulTo(this, num, out);
28539 } else if (len <
63) {
28540 res = smallMulTo(this, num, out);
28541 } else if (len <
1024) {
28542 res = bigMulTo(this, num, out);
28544 res = jumboMulTo(this, num, out);
28550 // Cooley-Tukey algorithm for FFT
28551 // slightly revisited to rely on looping instead of recursion
28553 function FFTM (x, y) {
28558 FFTM.prototype.makeRBT = function makeRBT (N) {
28559 var t = new Array(N);
28560 var l = BN.prototype._countBits(N) -
1;
28561 for (var i =
0; i < N; i++) {
28562 t[i] = this.revBin(i, l, N);
28568 // Returns binary-reversed representation of `x`
28569 FFTM.prototype.revBin = function revBin (x, l, N) {
28570 if (x ===
0 || x === N -
1) return x;
28573 for (var i =
0; i < l; i++) {
28574 rb |= (x &
1) << (l - i -
1);
28581 // Performs "tweedling" phase, therefore 'emulating'
28582 // behaviour of the recursive algorithm
28583 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
28584 for (var i =
0; i < N; i++) {
28585 rtws[i] = rws[rbt[i]];
28586 itws[i] = iws[rbt[i]];
28590 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
28591 this.permute(rbt, rws, iws, rtws, itws, N);
28593 for (var s =
1; s < N; s <<=
1) {
28596 var rtwdf = Math.cos(
2 * Math.PI / l);
28597 var itwdf = Math.sin(
2 * Math.PI / l);
28599 for (var p =
0; p < N; p += l) {
28600 var rtwdf_ = rtwdf;
28601 var itwdf_ = itwdf;
28603 for (var j =
0; j < s; j++) {
28604 var re = rtws[p + j];
28605 var ie = itws[p + j];
28607 var ro = rtws[p + j + s];
28608 var io = itws[p + j + s];
28610 var rx = rtwdf_ * ro - itwdf_ * io;
28612 io = rtwdf_ * io + itwdf_ * ro;
28615 rtws[p + j] = re + ro;
28616 itws[p + j] = ie + io;
28618 rtws[p + j + s] = re - ro;
28619 itws[p + j + s] = ie - io;
28621 /* jshint maxdepth : false */
28623 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
28625 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
28633 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
28634 var N = Math.max(m, n) |
1;
28637 for (N = N /
2 |
0; N; N = N
>>> 1) {
28641 return
1 << i +
1 + odd;
28644 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
28645 if (N <=
1) return;
28647 for (var i =
0; i < N /
2; i++) {
28650 rws[i] = rws[N - i -
1];
28651 rws[N - i -
1] = t;
28655 iws[i] = -iws[N - i -
1];
28656 iws[N - i -
1] = -t;
28660 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
28662 for (var i =
0; i < N /
2; i++) {
28663 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
28664 Math.round(ws[
2 * i] / N) +
28667 ws[i] = w &
0x3ffffff;
28669 if (w <
0x4000000) {
28672 carry = w /
0x4000000 |
0;
28679 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
28681 for (var i =
0; i < len; i++) {
28682 carry = carry + (ws[i] |
0);
28684 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
28685 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
28689 for (i =
2 * len; i < N; ++i) {
28693 assert(carry ===
0);
28694 assert((carry & ~
0x1fff) ===
0);
28697 FFTM.prototype.stub = function stub (N) {
28698 var ph = new Array(N);
28699 for (var i =
0; i < N; i++) {
28706 FFTM.prototype.mulp = function mulp (x, y, out) {
28707 var N =
2 * this.guessLen13b(x.length, y.length);
28709 var rbt = this.makeRBT(N);
28711 var _ = this.stub(N);
28713 var rws = new Array(N);
28714 var rwst = new Array(N);
28715 var iwst = new Array(N);
28717 var nrws = new Array(N);
28718 var nrwst = new Array(N);
28719 var niwst = new Array(N);
28721 var rmws = out.words;
28724 this.convert13b(x.words, x.length, rws, N);
28725 this.convert13b(y.words, y.length, nrws, N);
28727 this.transform(rws, _, rwst, iwst, N, rbt);
28728 this.transform(nrws, _, nrwst, niwst, N, rbt);
28730 for (var i =
0; i < N; i++) {
28731 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
28732 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
28736 this.conjugate(rwst, iwst, N);
28737 this.transform(rwst, iwst, rmws, _, N, rbt);
28738 this.conjugate(rmws, _, N);
28739 this.normalize13b(rmws, N);
28741 out.negative = x.negative ^ y.negative;
28742 out.length = x.length + y.length;
28743 return out.strip();
28746 // Multiply `this` by `num`
28747 BN.prototype.mul = function mul (num) {
28748 var out = new BN(null);
28749 out.words = new Array(this.length + num.length);
28750 return this.mulTo(num, out);
28753 // Multiply employing FFT
28754 BN.prototype.mulf = function mulf (num) {
28755 var out = new BN(null);
28756 out.words = new Array(this.length + num.length);
28757 return jumboMulTo(this, num, out);
28760 // In-place Multiplication
28761 BN.prototype.imul = function imul (num) {
28762 return this.clone().mulTo(num, this);
28765 BN.prototype.imuln = function imuln (num) {
28766 assert(typeof num === 'number');
28767 assert(num <
0x4000000);
28771 for (var i =
0; i < this.length; i++) {
28772 var w = (this.words[i] |
0) * num;
28773 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
28775 carry += (w /
0x4000000) |
0;
28776 // NOTE: lo is
27bit maximum
28777 carry += lo
>>> 26;
28778 this.words[i] = lo &
0x3ffffff;
28782 this.words[i] = carry;
28789 BN.prototype.muln = function muln (num) {
28790 return this.clone().imuln(num);
28794 BN.prototype.sqr = function sqr () {
28795 return this.mul(this);
28798 // `this` * `this` in-place
28799 BN.prototype.isqr = function isqr () {
28800 return this.imul(this.clone());
28803 // Math.pow(`this`, `num`)
28804 BN.prototype.pow = function pow (num) {
28805 var w = toBitArray(num);
28806 if (w.length ===
0) return new BN(
1);
28808 // Skip leading zeroes
28810 for (var i =
0; i < w.length; i++, res = res.sqr()) {
28811 if (w[i] !==
0) break;
28814 if (++i < w.length) {
28815 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
28816 if (w[i] ===
0) continue;
28825 // Shift-left in-place
28826 BN.prototype.iushln = function iushln (bits) {
28827 assert(typeof bits === 'number' && bits
>=
0);
28829 var s = (bits - r) /
26;
28830 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
28836 for (i =
0; i < this.length; i++) {
28837 var newCarry = this.words[i] & carryMask;
28838 var c = ((this.words[i] |
0) - newCarry) << r;
28839 this.words[i] = c | carry;
28840 carry = newCarry
>>> (
26 - r);
28844 this.words[i] = carry;
28850 for (i = this.length -
1; i
>=
0; i--) {
28851 this.words[i + s] = this.words[i];
28854 for (i =
0; i < s; i++) {
28861 return this.strip();
28864 BN.prototype.ishln = function ishln (bits) {
28865 // TODO(indutny): implement me
28866 assert(this.negative ===
0);
28867 return this.iushln(bits);
28870 // Shift-right in-place
28871 // NOTE: `hint` is a lowest bit before trailing zeroes
28872 // NOTE: if `extended` is present - it will be filled with destroyed bits
28873 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
28874 assert(typeof bits === 'number' && bits
>=
0);
28877 h = (hint - (hint %
26)) /
26;
28883 var s = Math.min((bits - r) /
26, this.length);
28884 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
28885 var maskedWords = extended;
28888 h = Math.max(
0, h);
28890 // Extended mode, copy masked part
28892 for (var i =
0; i < s; i++) {
28893 maskedWords.words[i] = this.words[i];
28895 maskedWords.length = s;
28899 // No-op, we should not move anything at all
28900 } else if (this.length
> s) {
28902 for (i =
0; i < this.length; i++) {
28903 this.words[i] = this.words[i + s];
28911 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
28912 var word = this.words[i] |
0;
28913 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
28914 carry = word & mask;
28917 // Push carried bits as a mask
28918 if (maskedWords && carry !==
0) {
28919 maskedWords.words[maskedWords.length++] = carry;
28922 if (this.length ===
0) {
28927 return this.strip();
28930 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
28931 // TODO(indutny): implement me
28932 assert(this.negative ===
0);
28933 return this.iushrn(bits, hint, extended);
28937 BN.prototype.shln = function shln (bits) {
28938 return this.clone().ishln(bits);
28941 BN.prototype.ushln = function ushln (bits) {
28942 return this.clone().iushln(bits);
28946 BN.prototype.shrn = function shrn (bits) {
28947 return this.clone().ishrn(bits);
28950 BN.prototype.ushrn = function ushrn (bits) {
28951 return this.clone().iushrn(bits);
28954 // Test if n bit is set
28955 BN.prototype.testn = function testn (bit) {
28956 assert(typeof bit === 'number' && bit
>=
0);
28958 var s = (bit - r) /
26;
28961 // Fast case: bit is much higher than all existing words
28962 if (this.length <= s) return false;
28964 // Check bit and return
28965 var w = this.words[s];
28970 // Return only lowers bits of number (in-place)
28971 BN.prototype.imaskn = function imaskn (bits) {
28972 assert(typeof bits === 'number' && bits
>=
0);
28974 var s = (bits - r) /
26;
28976 assert(this.negative ===
0, 'imaskn works only with positive numbers');
28978 if (this.length <= s) {
28985 this.length = Math.min(s, this.length);
28988 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
28989 this.words[this.length -
1] &= mask;
28992 return this.strip();
28995 // Return only lowers bits of number
28996 BN.prototype.maskn = function maskn (bits) {
28997 return this.clone().imaskn(bits);
29000 // Add plain number `num` to `this`
29001 BN.prototype.iaddn = function iaddn (num) {
29002 assert(typeof num === 'number');
29003 assert(num <
0x4000000);
29004 if (num <
0) return this.isubn(-num);
29006 // Possible sign change
29007 if (this.negative !==
0) {
29008 if (this.length ===
1 && (this.words[
0] |
0) < num) {
29009 this.words[
0] = num - (this.words[
0] |
0);
29020 // Add without checks
29021 return this._iaddn(num);
29024 BN.prototype._iaddn = function _iaddn (num) {
29025 this.words[
0] += num;
29028 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
29029 this.words[i] -=
0x4000000;
29030 if (i === this.length -
1) {
29031 this.words[i +
1] =
1;
29033 this.words[i +
1]++;
29036 this.length = Math.max(this.length, i +
1);
29041 // Subtract plain number `num` from `this`
29042 BN.prototype.isubn = function isubn (num) {
29043 assert(typeof num === 'number');
29044 assert(num <
0x4000000);
29045 if (num <
0) return this.iaddn(-num);
29047 if (this.negative !==
0) {
29054 this.words[
0] -= num;
29056 if (this.length ===
1 && this.words[
0] <
0) {
29057 this.words[
0] = -this.words[
0];
29061 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
29062 this.words[i] +=
0x4000000;
29063 this.words[i +
1] -=
1;
29067 return this.strip();
29070 BN.prototype.addn = function addn (num) {
29071 return this.clone().iaddn(num);
29074 BN.prototype.subn = function subn (num) {
29075 return this.clone().isubn(num);
29078 BN.prototype.iabs = function iabs () {
29084 BN.prototype.abs = function abs () {
29085 return this.clone().iabs();
29088 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
29089 var len = num.length + shift;
29096 for (i =
0; i < num.length; i++) {
29097 w = (this.words[i + shift] |
0) + carry;
29098 var right = (num.words[i] |
0) * mul;
29099 w -= right &
0x3ffffff;
29100 carry = (w
>> 26) - ((right /
0x4000000) |
0);
29101 this.words[i + shift] = w &
0x3ffffff;
29103 for (; i < this.length - shift; i++) {
29104 w = (this.words[i + shift] |
0) + carry;
29106 this.words[i + shift] = w &
0x3ffffff;
29109 if (carry ===
0) return this.strip();
29111 // Subtraction overflow
29112 assert(carry === -
1);
29114 for (i =
0; i < this.length; i++) {
29115 w = -(this.words[i] |
0) + carry;
29117 this.words[i] = w &
0x3ffffff;
29121 return this.strip();
29124 BN.prototype._wordDiv = function _wordDiv (num, mode) {
29125 var shift = this.length - num.length;
29127 var a = this.clone();
29131 var bhi = b.words[b.length -
1] |
0;
29132 var bhiBits = this._countBits(bhi);
29133 shift =
26 - bhiBits;
29135 b = b.ushln(shift);
29137 bhi = b.words[b.length -
1] |
0;
29140 // Initialize quotient
29141 var m = a.length - b.length;
29144 if (mode !== 'mod') {
29147 q.words = new Array(q.length);
29148 for (var i =
0; i < q.length; i++) {
29153 var diff = a.clone()._ishlnsubmul(b,
1, m);
29154 if (diff.negative ===
0) {
29161 for (var j = m -
1; j
>=
0; j--) {
29162 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
29163 (a.words[b.length + j -
1] |
0);
29165 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
29167 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
29169 a._ishlnsubmul(b, qj, j);
29170 while (a.negative !==
0) {
29173 a._ishlnsubmul(b,
1, j);
29188 if (mode !== 'div' && shift !==
0) {
29198 // NOTE:
1) `mode` can be set to `mod` to request mod only,
29199 // to `div` to request div only, or be absent to
29200 // request both div & mod
29201 //
2) `positive` is true if unsigned mod is requested
29202 BN.prototype.divmod = function divmod (num, mode, positive) {
29203 assert(!num.isZero());
29205 if (this.isZero()) {
29213 if (this.negative !==
0 && num.negative ===
0) {
29214 res = this.neg().divmod(num, mode);
29216 if (mode !== 'mod') {
29217 div = res.div.neg();
29220 if (mode !== 'div') {
29221 mod = res.mod.neg();
29222 if (positive && mod.negative !==
0) {
29233 if (this.negative ===
0 && num.negative !==
0) {
29234 res = this.divmod(num.neg(), mode);
29236 if (mode !== 'mod') {
29237 div = res.div.neg();
29246 if ((this.negative & num.negative) !==
0) {
29247 res = this.neg().divmod(num.neg(), mode);
29249 if (mode !== 'div') {
29250 mod = res.mod.neg();
29251 if (positive && mod.negative !==
0) {
29262 // Both numbers are positive at this point
29264 // Strip both numbers to approximate shift value
29265 if (num.length
> this.length || this.cmp(num) <
0) {
29272 // Very short reduction
29273 if (num.length ===
1) {
29274 if (mode === 'div') {
29276 div: this.divn(num.words[
0]),
29281 if (mode === 'mod') {
29284 mod: new BN(this.modn(num.words[
0]))
29289 div: this.divn(num.words[
0]),
29290 mod: new BN(this.modn(num.words[
0]))
29294 return this._wordDiv(num, mode);
29297 // Find `this` / `num`
29298 BN.prototype.div = function div (num) {
29299 return this.divmod(num, 'div', false).div;
29302 // Find `this` % `num`
29303 BN.prototype.mod = function mod (num) {
29304 return this.divmod(num, 'mod', false).mod;
29307 BN.prototype.umod = function umod (num) {
29308 return this.divmod(num, 'mod', true).mod;
29311 // Find Round(`this` / `num`)
29312 BN.prototype.divRound = function divRound (num) {
29313 var dm = this.divmod(num);
29315 // Fast case - exact division
29316 if (dm.mod.isZero()) return dm.div;
29318 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
29320 var half = num.ushrn(
1);
29321 var r2 = num.andln(
1);
29322 var cmp = mod.cmp(half);
29325 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
29328 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
29331 BN.prototype.modn = function modn (num) {
29332 assert(num <=
0x3ffffff);
29333 var p = (
1 <<
26) % num;
29336 for (var i = this.length -
1; i
>=
0; i--) {
29337 acc = (p * acc + (this.words[i] |
0)) % num;
29343 // In-place division by number
29344 BN.prototype.idivn = function idivn (num) {
29345 assert(num <=
0x3ffffff);
29348 for (var i = this.length -
1; i
>=
0; i--) {
29349 var w = (this.words[i] |
0) + carry *
0x4000000;
29350 this.words[i] = (w / num) |
0;
29354 return this.strip();
29357 BN.prototype.divn = function divn (num) {
29358 return this.clone().idivn(num);
29361 BN.prototype.egcd = function egcd (p) {
29362 assert(p.negative ===
0);
29363 assert(!p.isZero());
29368 if (x.negative !==
0) {
29374 // A * x + B * y = x
29378 // C * x + D * y = y
29384 while (x.isEven() && y.isEven()) {
29390 var yp = y.clone();
29391 var xp = x.clone();
29393 while (!x.isZero()) {
29394 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
29398 if (A.isOdd() || B.isOdd()) {
29408 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
29412 if (C.isOdd() || D.isOdd()) {
29422 if (x.cmp(y)
>=
0) {
29440 // This is reduced incarnation of the binary EEA
29441 // above, designated to invert members of the
29442 // _prime_ fields F(p) at a maximal speed
29443 BN.prototype._invmp = function _invmp (p) {
29444 assert(p.negative ===
0);
29445 assert(!p.isZero());
29450 if (a.negative !==
0) {
29456 var x1 = new BN(
1);
29457 var x2 = new BN(
0);
29459 var delta = b.clone();
29461 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
29462 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
29474 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
29486 if (a.cmp(b)
>=
0) {
29496 if (a.cmpn(
1) ===
0) {
29502 if (res.cmpn(
0) <
0) {
29509 BN.prototype.gcd = function gcd (num) {
29510 if (this.isZero()) return num.abs();
29511 if (num.isZero()) return this.abs();
29513 var a = this.clone();
29514 var b = num.clone();
29518 // Remove common factor of two
29519 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
29525 while (a.isEven()) {
29528 while (b.isEven()) {
29534 // Swap `a` and `b` to make `a` always bigger than `b`
29538 } else if (r ===
0 || b.cmpn(
1) ===
0) {
29545 return b.iushln(shift);
29548 // Invert number in the field F(num)
29549 BN.prototype.invm = function invm (num) {
29550 return this.egcd(num).a.umod(num);
29553 BN.prototype.isEven = function isEven () {
29554 return (this.words[
0] &
1) ===
0;
29557 BN.prototype.isOdd = function isOdd () {
29558 return (this.words[
0] &
1) ===
1;
29561 // And first word and num
29562 BN.prototype.andln = function andln (num) {
29563 return this.words[
0] & num;
29566 // Increment at the bit position in-line
29567 BN.prototype.bincn = function bincn (bit) {
29568 assert(typeof bit === 'number');
29570 var s = (bit - r) /
26;
29573 // Fast case: bit is much higher than all existing words
29574 if (this.length <= s) {
29575 this._expand(s +
1);
29576 this.words[s] |= q;
29580 // Add bit and propagate, if needed
29582 for (var i = s; carry !==
0 && i < this.length; i++) {
29583 var w = this.words[i] |
0;
29590 this.words[i] = carry;
29596 BN.prototype.isZero = function isZero () {
29597 return this.length ===
1 && this.words[
0] ===
0;
29600 BN.prototype.cmpn = function cmpn (num) {
29601 var negative = num <
0;
29603 if (this.negative !==
0 && !negative) return -
1;
29604 if (this.negative ===
0 && negative) return
1;
29609 if (this.length
> 1) {
29616 assert(num <=
0x3ffffff, 'Number is too big');
29618 var w = this.words[
0] |
0;
29619 res = w === num ?
0 : w < num ? -
1 :
1;
29621 if (this.negative !==
0) return -res |
0;
29625 // Compare two numbers and return:
29626 //
1 - if `this`
> `num`
29627 //
0 - if `this` == `num`
29628 // -
1 - if `this` < `num`
29629 BN.prototype.cmp = function cmp (num) {
29630 if (this.negative !==
0 && num.negative ===
0) return -
1;
29631 if (this.negative ===
0 && num.negative !==
0) return
1;
29633 var res = this.ucmp(num);
29634 if (this.negative !==
0) return -res |
0;
29638 // Unsigned comparison
29639 BN.prototype.ucmp = function ucmp (num) {
29640 // At this point both numbers have the same sign
29641 if (this.length
> num.length) return
1;
29642 if (this.length < num.length) return -
1;
29645 for (var i = this.length -
1; i
>=
0; i--) {
29646 var a = this.words[i] |
0;
29647 var b = num.words[i] |
0;
29649 if (a === b) continue;
29652 } else if (a
> b) {
29660 BN.prototype.gtn = function gtn (num) {
29661 return this.cmpn(num) ===
1;
29664 BN.prototype.gt = function gt (num) {
29665 return this.cmp(num) ===
1;
29668 BN.prototype.gten = function gten (num) {
29669 return this.cmpn(num)
>=
0;
29672 BN.prototype.gte = function gte (num) {
29673 return this.cmp(num)
>=
0;
29676 BN.prototype.ltn = function ltn (num) {
29677 return this.cmpn(num) === -
1;
29680 BN.prototype.lt = function lt (num) {
29681 return this.cmp(num) === -
1;
29684 BN.prototype.lten = function lten (num) {
29685 return this.cmpn(num) <=
0;
29688 BN.prototype.lte = function lte (num) {
29689 return this.cmp(num) <=
0;
29692 BN.prototype.eqn = function eqn (num) {
29693 return this.cmpn(num) ===
0;
29696 BN.prototype.eq = function eq (num) {
29697 return this.cmp(num) ===
0;
29701 // A reduce context, could be using montgomery or something better, depending
29702 // on the `m` itself.
29704 BN.red = function red (num) {
29705 return new Red(num);
29708 BN.prototype.toRed = function toRed (ctx) {
29709 assert(!this.red, 'Already a number in reduction context');
29710 assert(this.negative ===
0, 'red works only with positives');
29711 return ctx.convertTo(this)._forceRed(ctx);
29714 BN.prototype.fromRed = function fromRed () {
29715 assert(this.red, 'fromRed works only with numbers in reduction context');
29716 return this.red.convertFrom(this);
29719 BN.prototype._forceRed = function _forceRed (ctx) {
29724 BN.prototype.forceRed = function forceRed (ctx) {
29725 assert(!this.red, 'Already a number in reduction context');
29726 return this._forceRed(ctx);
29729 BN.prototype.redAdd = function redAdd (num) {
29730 assert(this.red, 'redAdd works only with red numbers');
29731 return this.red.add(this, num);
29734 BN.prototype.redIAdd = function redIAdd (num) {
29735 assert(this.red, 'redIAdd works only with red numbers');
29736 return this.red.iadd(this, num);
29739 BN.prototype.redSub = function redSub (num) {
29740 assert(this.red, 'redSub works only with red numbers');
29741 return this.red.sub(this, num);
29744 BN.prototype.redISub = function redISub (num) {
29745 assert(this.red, 'redISub works only with red numbers');
29746 return this.red.isub(this, num);
29749 BN.prototype.redShl = function redShl (num) {
29750 assert(this.red, 'redShl works only with red numbers');
29751 return this.red.shl(this, num);
29754 BN.prototype.redMul = function redMul (num) {
29755 assert(this.red, 'redMul works only with red numbers');
29756 this.red._verify2(this, num);
29757 return this.red.mul(this, num);
29760 BN.prototype.redIMul = function redIMul (num) {
29761 assert(this.red, 'redMul works only with red numbers');
29762 this.red._verify2(this, num);
29763 return this.red.imul(this, num);
29766 BN.prototype.redSqr = function redSqr () {
29767 assert(this.red, 'redSqr works only with red numbers');
29768 this.red._verify1(this);
29769 return this.red.sqr(this);
29772 BN.prototype.redISqr = function redISqr () {
29773 assert(this.red, 'redISqr works only with red numbers');
29774 this.red._verify1(this);
29775 return this.red.isqr(this);
29778 // Square root over p
29779 BN.prototype.redSqrt = function redSqrt () {
29780 assert(this.red, 'redSqrt works only with red numbers');
29781 this.red._verify1(this);
29782 return this.red.sqrt(this);
29785 BN.prototype.redInvm = function redInvm () {
29786 assert(this.red, 'redInvm works only with red numbers');
29787 this.red._verify1(this);
29788 return this.red.invm(this);
29791 // Return negative clone of `this` % `red modulo`
29792 BN.prototype.redNeg = function redNeg () {
29793 assert(this.red, 'redNeg works only with red numbers');
29794 this.red._verify1(this);
29795 return this.red.neg(this);
29798 BN.prototype.redPow = function redPow (num) {
29799 assert(this.red && !num.red, 'redPow(normalNum)');
29800 this.red._verify1(this);
29801 return this.red.pow(this, num);
29804 // Prime numbers with efficient reduction
29812 // Pseudo-Mersenne prime
29813 function MPrime (name, p) {
29816 this.p = new BN(p,
16);
29817 this.n = this.p.bitLength();
29818 this.k = new BN(
1).iushln(this.n).isub(this.p);
29820 this.tmp = this._tmp();
29823 MPrime.prototype._tmp = function _tmp () {
29824 var tmp = new BN(null);
29825 tmp.words = new Array(Math.ceil(this.n /
13));
29829 MPrime.prototype.ireduce = function ireduce (num) {
29830 // Assumes that `num` is less than `P^
2`
29831 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
29836 this.split(r, this.tmp);
29838 r = r.iadd(this.tmp);
29839 rlen = r.bitLength();
29840 } while (rlen
> this.n);
29842 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
29846 } else if (cmp
> 0) {
29855 MPrime.prototype.split = function split (input, out) {
29856 input.iushrn(this.n,
0, out);
29859 MPrime.prototype.imulK = function imulK (num) {
29860 return num.imul(this.k);
29867 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
29869 inherits(K256, MPrime);
29871 K256.prototype.split = function split (input, output) {
29872 //
256 =
9 *
26 +
22
29873 var mask =
0x3fffff;
29875 var outLen = Math.min(input.length,
9);
29876 for (var i =
0; i < outLen; i++) {
29877 output.words[i] = input.words[i];
29879 output.length = outLen;
29881 if (input.length <=
9) {
29882 input.words[
0] =
0;
29887 // Shift by
9 limbs
29888 var prev = input.words[
9];
29889 output.words[output.length++] = prev & mask;
29891 for (i =
10; i < input.length; i++) {
29892 var next = input.words[i] |
0;
29893 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
29897 input.words[i -
10] = prev;
29898 if (prev ===
0 && input.length
> 10) {
29899 input.length -=
10;
29905 K256.prototype.imulK = function imulK (num) {
29906 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
29907 num.words[num.length] =
0;
29908 num.words[num.length +
1] =
0;
29911 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
29913 for (var i =
0; i < num.length; i++) {
29914 var w = num.words[i] |
0;
29916 num.words[i] = lo &
0x3ffffff;
29917 lo = w *
0x40 + ((lo /
0x4000000) |
0);
29920 // Fast length reduction
29921 if (num.words[num.length -
1] ===
0) {
29923 if (num.words[num.length -
1] ===
0) {
29934 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
29936 inherits(P224, MPrime);
29942 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
29944 inherits(P192, MPrime);
29946 function P25519 () {
29951 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
29953 inherits(P25519, MPrime);
29955 P25519.prototype.imulK = function imulK (num) {
29958 for (var i =
0; i < num.length; i++) {
29959 var hi = (num.words[i] |
0) *
0x13 + carry;
29960 var lo = hi &
0x3ffffff;
29967 num.words[num.length++] = carry;
29972 // Exported mostly for testing purposes, use plain name instead
29973 BN._prime = function prime (name) {
29974 // Cached version of prime
29975 if (primes[name]) return primes[name];
29978 if (name === 'k256') {
29979 prime = new K256();
29980 } else if (name === 'p224') {
29981 prime = new P224();
29982 } else if (name === 'p192') {
29983 prime = new P192();
29984 } else if (name === 'p25519') {
29985 prime = new P25519();
29987 throw new Error('Unknown prime ' + name);
29989 primes[name] = prime;
29995 // Base reduction engine
29998 if (typeof m === 'string') {
29999 var prime = BN._prime(m);
30001 this.prime = prime;
30003 assert(m.gtn(
1), 'modulus must be greater than
1');
30009 Red.prototype._verify1 = function _verify1 (a) {
30010 assert(a.negative ===
0, 'red works only with positives');
30011 assert(a.red, 'red works only with red numbers');
30014 Red.prototype._verify2 = function _verify2 (a, b) {
30015 assert((a.negative | b.negative) ===
0, 'red works only with positives');
30016 assert(a.red && a.red === b.red,
30017 'red works only with red numbers');
30020 Red.prototype.imod = function imod (a) {
30021 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
30022 return a.umod(this.m)._forceRed(this);
30025 Red.prototype.neg = function neg (a) {
30030 return this.m.sub(a)._forceRed(this);
30033 Red.prototype.add = function add (a, b) {
30034 this._verify2(a, b);
30036 var res = a.add(b);
30037 if (res.cmp(this.m)
>=
0) {
30040 return res._forceRed(this);
30043 Red.prototype.iadd = function iadd (a, b) {
30044 this._verify2(a, b);
30046 var res = a.iadd(b);
30047 if (res.cmp(this.m)
>=
0) {
30053 Red.prototype.sub = function sub (a, b) {
30054 this._verify2(a, b);
30056 var res = a.sub(b);
30057 if (res.cmpn(
0) <
0) {
30060 return res._forceRed(this);
30063 Red.prototype.isub = function isub (a, b) {
30064 this._verify2(a, b);
30066 var res = a.isub(b);
30067 if (res.cmpn(
0) <
0) {
30073 Red.prototype.shl = function shl (a, num) {
30075 return this.imod(a.ushln(num));
30078 Red.prototype.imul = function imul (a, b) {
30079 this._verify2(a, b);
30080 return this.imod(a.imul(b));
30083 Red.prototype.mul = function mul (a, b) {
30084 this._verify2(a, b);
30085 return this.imod(a.mul(b));
30088 Red.prototype.isqr = function isqr (a) {
30089 return this.imul(a, a.clone());
30092 Red.prototype.sqr = function sqr (a) {
30093 return this.mul(a, a);
30096 Red.prototype.sqrt = function sqrt (a) {
30097 if (a.isZero()) return a.clone();
30099 var mod3 = this.m.andln(
3);
30100 assert(mod3 %
2 ===
1);
30104 var pow = this.m.add(new BN(
1)).iushrn(
2);
30105 return this.pow(a, pow);
30108 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
30110 // Find Q and S, that Q *
2 ^ S = (P -
1)
30111 var q = this.m.subn(
1);
30113 while (!q.isZero() && q.andln(
1) ===
0) {
30117 assert(!q.isZero());
30119 var one = new BN(
1).toRed(this);
30120 var nOne = one.redNeg();
30122 // Find quadratic non-residue
30123 // NOTE: Max is such because of generalized Riemann hypothesis.
30124 var lpow = this.m.subn(
1).iushrn(
1);
30125 var z = this.m.bitLength();
30126 z = new BN(
2 * z * z).toRed(this);
30128 while (this.pow(z, lpow).cmp(nOne) !==
0) {
30132 var c = this.pow(z, q);
30133 var r = this.pow(a, q.addn(
1).iushrn(
1));
30134 var t = this.pow(a, q);
30136 while (t.cmp(one) !==
0) {
30138 for (var i =
0; tmp.cmp(one) !==
0; i++) {
30139 tmp = tmp.redSqr();
30142 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
30153 Red.prototype.invm = function invm (a) {
30154 var inv = a._invmp(this.m);
30155 if (inv.negative !==
0) {
30157 return this.imod(inv).redNeg();
30159 return this.imod(inv);
30163 Red.prototype.pow = function pow (a, num) {
30164 if (num.isZero()) return new BN(
1);
30165 if (num.cmpn(
1) ===
0) return a.clone();
30167 var windowSize =
4;
30168 var wnd = new Array(
1 << windowSize);
30169 wnd[
0] = new BN(
1).toRed(this);
30171 for (var i =
2; i < wnd.length; i++) {
30172 wnd[i] = this.mul(wnd[i -
1], a);
30177 var currentLen =
0;
30178 var start = num.bitLength() %
26;
30183 for (i = num.length -
1; i
>=
0; i--) {
30184 var word = num.words[i];
30185 for (var j = start -
1; j
>=
0; j--) {
30186 var bit = (word
>> j) &
1;
30187 if (res !== wnd[
0]) {
30188 res = this.sqr(res);
30191 if (bit ===
0 && current ===
0) {
30199 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
30201 res = this.mul(res, wnd[current]);
30211 Red.prototype.convertTo = function convertTo (num) {
30212 var r = num.umod(this.m);
30214 return r === num ? r.clone() : r;
30217 Red.prototype.convertFrom = function convertFrom (num) {
30218 var res = num.clone();
30224 // Montgomery method engine
30227 BN.mont = function mont (num) {
30228 return new Mont(num);
30231 function Mont (m) {
30234 this.shift = this.m.bitLength();
30235 if (this.shift %
26 !==
0) {
30236 this.shift +=
26 - (this.shift %
26);
30239 this.r = new BN(
1).iushln(this.shift);
30240 this.r2 = this.imod(this.r.sqr());
30241 this.rinv = this.r._invmp(this.m);
30243 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
30244 this.minv = this.minv.umod(this.r);
30245 this.minv = this.r.sub(this.minv);
30247 inherits(Mont, Red);
30249 Mont.prototype.convertTo = function convertTo (num) {
30250 return this.imod(num.ushln(this.shift));
30253 Mont.prototype.convertFrom = function convertFrom (num) {
30254 var r = this.imod(num.mul(this.rinv));
30259 Mont.prototype.imul = function imul (a, b) {
30260 if (a.isZero() || b.isZero()) {
30267 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
30268 var u = t.isub(c).iushrn(this.shift);
30271 if (u.cmp(this.m)
>=
0) {
30272 res = u.isub(this.m);
30273 } else if (u.cmpn(
0) <
0) {
30274 res = u.iadd(this.m);
30277 return res._forceRed(this);
30280 Mont.prototype.mul = function mul (a, b) {
30281 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
30284 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
30285 var u = t.isub(c).iushrn(this.shift);
30287 if (u.cmp(this.m)
>=
0) {
30288 res = u.isub(this.m);
30289 } else if (u.cmpn(
0) <
0) {
30290 res = u.iadd(this.m);
30293 return res._forceRed(this);
30296 Mont.prototype.invm = function invm (a) {
30297 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
30298 var res = this.imod(a._invmp(this.m).mul(this.r2));
30299 return res._forceRed(this);
30301 })(typeof module === 'undefined' || module, this);
30303 },{}],
34:[function(require,module,exports){
30306 module.exports = function rand(len) {
30308 r = new Rand(null);
30310 return r.generate(len);
30313 function Rand(rand) {
30316 module.exports.Rand = Rand;
30318 Rand.prototype.generate = function generate(len) {
30319 return this._rand(len);
30322 if (typeof self === 'object') {
30323 if (self.crypto && self.crypto.getRandomValues) {
30325 Rand.prototype._rand = function _rand(n) {
30326 var arr = new Uint8Array(n);
30327 self.crypto.getRandomValues(arr);
30330 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
30332 Rand.prototype._rand = function _rand(n) {
30333 var arr = new Uint8Array(n);
30334 self.msCrypto.getRandomValues(arr);
30339 Rand.prototype._rand = function() {
30340 throw new Error('Not implemented yet');
30344 // Node.js or Web worker with no crypto support
30346 var crypto = require('crypto');
30348 Rand.prototype._rand = function _rand(n) {
30349 return crypto.randomBytes(n);
30352 // Emulate crypto API using randy
30353 Rand.prototype._rand = function _rand(n) {
30354 var res = new Uint8Array(n);
30355 for (var i =
0; i < res.length; i++)
30356 res[i] = this.rand.getByte();
30362 },{"crypto":
3}],
35:[function(require,module,exports){
30363 (function (Buffer){
30364 var Transform = require('stream').Transform
30365 var inherits = require('inherits')
30366 var StringDecoder = require('string_decoder').StringDecoder
30367 module.exports = CipherBase
30368 inherits(CipherBase, Transform)
30369 function CipherBase (hashMode) {
30370 Transform.call(this)
30371 this.hashMode = typeof hashMode === 'string'
30372 if (this.hashMode) {
30373 this[hashMode] = this._finalOrDigest
30375 this.final = this._finalOrDigest
30377 this._decoder = null
30378 this._encoding = null
30380 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
30381 if (typeof data === 'string') {
30382 data = new Buffer(data, inputEnc)
30384 var outData = this._update(data)
30385 if (this.hashMode) {
30389 outData = this._toString(outData, outputEnc)
30394 CipherBase.prototype.setAutoPadding = function () {}
30396 CipherBase.prototype.getAuthTag = function () {
30397 throw new Error('trying to get auth tag in unsupported state')
30400 CipherBase.prototype.setAuthTag = function () {
30401 throw new Error('trying to set auth tag in unsupported state')
30404 CipherBase.prototype.setAAD = function () {
30405 throw new Error('trying to set aad in unsupported state')
30408 CipherBase.prototype._transform = function (data, _, next) {
30411 if (this.hashMode) {
30414 this.push(this._update(data))
30422 CipherBase.prototype._flush = function (done) {
30425 this.push(this._final())
30432 CipherBase.prototype._finalOrDigest = function (outputEnc) {
30433 var outData = this._final() || new Buffer('')
30435 outData = this._toString(outData, outputEnc, true)
30440 CipherBase.prototype._toString = function (value, enc, fin) {
30441 if (!this._decoder) {
30442 this._decoder = new StringDecoder(enc)
30443 this._encoding = enc
30445 if (this._encoding !== enc) {
30446 throw new Error('can\'t switch encodings')
30448 var out = this._decoder.write(value)
30450 out += this._decoder.end()
30455 }).call(this,require("buffer").Buffer)
30456 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
30457 (function (Buffer){
30459 var inherits = require('inherits')
30460 var md5 = require('./md5')
30461 var rmd160 = require('ripemd160')
30462 var sha = require('sha.js')
30464 var Base = require('cipher-base')
30466 function HashNoConstructor(hash) {
30467 Base.call(this, 'digest')
30473 inherits(HashNoConstructor, Base)
30475 HashNoConstructor.prototype._update = function (data) {
30476 this.buffers.push(data)
30479 HashNoConstructor.prototype._final = function () {
30480 var buf = Buffer.concat(this.buffers)
30481 var r = this._hash(buf)
30482 this.buffers = null
30487 function Hash(hash) {
30488 Base.call(this, 'digest')
30493 inherits(Hash, Base)
30495 Hash.prototype._update = function (data) {
30496 this._hash.update(data)
30499 Hash.prototype._final = function () {
30500 return this._hash.digest()
30503 module.exports = function createHash (alg) {
30504 alg = alg.toLowerCase()
30505 if ('md5' === alg) return new HashNoConstructor(md5)
30506 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
30508 return new Hash(sha(alg))
30511 }).call(this,require("buffer").Buffer)
30512 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
30513 (function (Buffer){
30516 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
30519 function toArray(buf, bigEndian) {
30520 if ((buf.length % intSize) !==
0) {
30521 var len = buf.length + (intSize - (buf.length % intSize));
30522 buf = Buffer.concat([buf, zeroBuffer], len);
30526 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
30527 for (var i =
0; i < buf.length; i += intSize) {
30528 arr.push(fn.call(buf, i));
30533 function toBuffer(arr, size, bigEndian) {
30534 var buf = new Buffer(size);
30535 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
30536 for (var i =
0; i < arr.length; i++) {
30537 fn.call(buf, arr[i], i *
4, true);
30542 function hash(buf, fn, hashSize, bigEndian) {
30543 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
30544 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
30545 return toBuffer(arr, hashSize, bigEndian);
30547 exports.hash = hash;
30548 }).call(this,require("buffer").Buffer)
30549 },{"buffer":
5}],
38:[function(require,module,exports){
30552 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
30553 * Digest Algorithm, as defined in RFC
1321.
30554 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
30555 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
30556 * Distributed under the BSD License
30557 * See http://pajhome.org.uk/crypt/md5 for more info.
30560 var helpers = require('./helpers');
30563 * Calculate the MD5 of an array of little-endian words, and a bit length
30565 function core_md5(x, len)
30567 /* append padding */
30568 x[len
>> 5] |=
0x80 << ((len) %
32);
30569 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
30571 var a =
1732584193;
30572 var b = -
271733879;
30573 var c = -
1732584194;
30576 for(var i =
0; i < x.length; i +=
16)
30583 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
30584 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
30585 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
30586 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
30587 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
30588 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
30589 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
30590 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
30591 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
30592 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
30593 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
30594 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
30595 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
30596 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
30597 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
30598 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
30600 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
30601 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
30602 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
30603 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
30604 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
30605 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
30606 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
30607 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
30608 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
30609 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
30610 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
30611 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
30612 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
30613 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
30614 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
30615 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
30617 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
30618 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
30619 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
30620 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
30621 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
30622 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
30623 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
30624 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
30625 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
30626 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
30627 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
30628 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
30629 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
30630 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
30631 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
30632 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
30634 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
30635 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
30636 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
30637 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
30638 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
30639 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
30640 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
30641 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
30642 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
30643 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
30644 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
30645 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
30646 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
30647 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
30648 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
30649 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
30651 a = safe_add(a, olda);
30652 b = safe_add(b, oldb);
30653 c = safe_add(c, oldc);
30654 d = safe_add(d, oldd);
30656 return Array(a, b, c, d);
30661 * These functions implement the four basic operations the algorithm uses.
30663 function md5_cmn(q, a, b, x, s, t)
30665 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
30667 function md5_ff(a, b, c, d, x, s, t)
30669 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
30671 function md5_gg(a, b, c, d, x, s, t)
30673 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
30675 function md5_hh(a, b, c, d, x, s, t)
30677 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
30679 function md5_ii(a, b, c, d, x, s, t)
30681 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
30685 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
30686 * to work around bugs in some JS interpreters.
30688 function safe_add(x, y)
30690 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
30691 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
30692 return (msw <<
16) | (lsw &
0xFFFF);
30696 * Bitwise rotate a
32-bit number to the left.
30698 function bit_rol(num, cnt)
30700 return (num << cnt) | (num
>>> (
32 - cnt));
30703 module.exports = function md5(buf) {
30704 return helpers.hash(buf, core_md5,
16);
30706 },{"./helpers":
37}],
39:[function(require,module,exports){
30709 var elliptic = exports;
30711 elliptic.version = require('../package.json').version;
30712 elliptic.utils = require('./elliptic/utils');
30713 elliptic.rand = require('brorand');
30714 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
30715 elliptic.curve = require('./elliptic/curve');
30716 elliptic.curves = require('./elliptic/curves');
30719 elliptic.ec = require('./elliptic/ec');
30720 elliptic.eddsa = require('./elliptic/eddsa');
30722 },{"../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){
30725 var BN = require('bn.js');
30726 var elliptic = require('../../elliptic');
30727 var utils = elliptic.utils;
30728 var getNAF = utils.getNAF;
30729 var getJSF = utils.getJSF;
30730 var assert = utils.assert;
30732 function BaseCurve(type, conf) {
30734 this.p = new BN(conf.p,
16);
30736 // Use Montgomery, when there is no fast reduction for the prime
30737 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
30739 // Useful for many curves
30740 this.zero = new BN(
0).toRed(this.red);
30741 this.one = new BN(
1).toRed(this.red);
30742 this.two = new BN(
2).toRed(this.red);
30744 // Curve configuration, optional
30745 this.n = conf.n && new BN(conf.n,
16);
30746 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
30748 // Temporary arrays
30749 this._wnafT1 = new Array(
4);
30750 this._wnafT2 = new Array(
4);
30751 this._wnafT3 = new Array(
4);
30752 this._wnafT4 = new Array(
4);
30754 // Generalized Greg Maxwell's trick
30755 var adjustCount = this.n && this.p.div(this.n);
30756 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
30759 this._maxwellTrick = true;
30760 this.redN = this.n.toRed(this.red);
30763 module.exports = BaseCurve;
30765 BaseCurve.prototype.point = function point() {
30766 throw new Error('Not implemented');
30769 BaseCurve.prototype.validate = function validate() {
30770 throw new Error('Not implemented');
30773 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
30774 assert(p.precomputed);
30775 var doubles = p._getDoubles();
30777 var naf = getNAF(k,
1);
30778 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
30781 // Translate into more windowed form
30783 for (var j =
0; j < naf.length; j += doubles.step) {
30785 for (var k = j + doubles.step -
1; k
>= j; k--)
30786 nafW = (nafW <<
1) + naf[k];
30790 var a = this.jpoint(null, null, null);
30791 var b = this.jpoint(null, null, null);
30792 for (var i = I; i
> 0; i--) {
30793 for (var j =
0; j < repr.length; j++) {
30794 var nafW = repr[j];
30796 b = b.mixedAdd(doubles.points[j]);
30797 else if (nafW === -i)
30798 b = b.mixedAdd(doubles.points[j].neg());
30805 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
30808 // Precompute window
30809 var nafPoints = p._getNAFPoints(w);
30811 var wnd = nafPoints.points;
30814 var naf = getNAF(k, w);
30816 // Add `this`*(N+
1) for every w-NAF index
30817 var acc = this.jpoint(null, null, null);
30818 for (var i = naf.length -
1; i
>=
0; i--) {
30820 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
30830 if (p.type === 'affine') {
30833 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
30835 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
30839 acc = acc.add(wnd[(z -
1)
>> 1]);
30841 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
30844 return p.type === 'affine' ? acc.toP() : acc;
30847 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
30852 var wndWidth = this._wnafT1;
30853 var wnd = this._wnafT2;
30854 var naf = this._wnafT3;
30858 for (var i =
0; i < len; i++) {
30860 var nafPoints = p._getNAFPoints(defW);
30861 wndWidth[i] = nafPoints.wnd;
30862 wnd[i] = nafPoints.points;
30865 // Comb small window NAFs
30866 for (var i = len -
1; i
>=
1; i -=
2) {
30869 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
30870 naf[a] = getNAF(coeffs[a], wndWidth[a]);
30871 naf[b] = getNAF(coeffs[b], wndWidth[b]);
30872 max = Math.max(naf[a].length, max);
30873 max = Math.max(naf[b].length, max);
30884 // Try to avoid Projective points, if possible
30885 if (points[a].y.cmp(points[b].y) ===
0) {
30886 comb[
1] = points[a].add(points[b]);
30887 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
30888 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
30889 comb[
1] = points[a].toJ().mixedAdd(points[b]);
30890 comb[
2] = points[a].add(points[b].neg());
30892 comb[
1] = points[a].toJ().mixedAdd(points[b]);
30893 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
30908 var jsf = getJSF(coeffs[a], coeffs[b]);
30909 max = Math.max(jsf[
0].length, max);
30910 naf[a] = new Array(max);
30911 naf[b] = new Array(max);
30912 for (var j =
0; j < max; j++) {
30913 var ja = jsf[
0][j] |
0;
30914 var jb = jsf[
1][j] |
0;
30916 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
30922 var acc = this.jpoint(null, null, null);
30923 var tmp = this._wnafT4;
30924 for (var i = max; i
>=
0; i--) {
30929 for (var j =
0; j < len; j++) {
30930 tmp[j] = naf[j][i] |
0;
30945 for (var j =
0; j < len; j++) {
30951 p = wnd[j][(z -
1)
>> 1];
30953 p = wnd[j][(-z -
1)
>> 1].neg();
30955 if (p.type === 'affine')
30956 acc = acc.mixedAdd(p);
30961 // Zeroify references
30962 for (var i =
0; i < len; i++)
30965 if (jacobianResult)
30971 function BasePoint(curve, type) {
30972 this.curve = curve;
30974 this.precomputed = null;
30976 BaseCurve.BasePoint = BasePoint;
30978 BasePoint.prototype.eq = function eq(/*other*/) {
30979 throw new Error('Not implemented');
30982 BasePoint.prototype.validate = function validate() {
30983 return this.curve.validate(this);
30986 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
30987 bytes = utils.toArray(bytes, enc);
30989 var len = this.p.byteLength();
30991 // uncompressed, hybrid-odd, hybrid-even
30992 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
30993 bytes.length -
1 ===
2 * len) {
30994 if (bytes[
0] ===
0x06)
30995 assert(bytes[bytes.length -
1] %
2 ===
0);
30996 else if (bytes[
0] ===
0x07)
30997 assert(bytes[bytes.length -
1] %
2 ===
1);
30999 var res = this.point(bytes.slice(
1,
1 + len),
31000 bytes.slice(
1 + len,
1 +
2 * len));
31003 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
31004 bytes.length -
1 === len) {
31005 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
31007 throw new Error('Unknown point format');
31010 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
31011 return this.encode(enc, true);
31014 BasePoint.prototype._encode = function _encode(compact) {
31015 var len = this.curve.p.byteLength();
31016 var x = this.getX().toArray('be', len);
31019 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
31021 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
31024 BasePoint.prototype.encode = function encode(enc, compact) {
31025 return utils.encode(this._encode(compact), enc);
31028 BasePoint.prototype.precompute = function precompute(power) {
31029 if (this.precomputed)
31032 var precomputed = {
31037 precomputed.naf = this._getNAFPoints(
8);
31038 precomputed.doubles = this._getDoubles(
4, power);
31039 precomputed.beta = this._getBeta();
31040 this.precomputed = precomputed;
31045 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
31046 if (!this.precomputed)
31049 var doubles = this.precomputed.doubles;
31053 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
31056 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
31057 if (this.precomputed && this.precomputed.doubles)
31058 return this.precomputed.doubles;
31060 var doubles = [ this ];
31062 for (var i =
0; i < power; i += step) {
31063 for (var j =
0; j < step; j++)
31073 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
31074 if (this.precomputed && this.precomputed.naf)
31075 return this.precomputed.naf;
31077 var res = [ this ];
31078 var max = (
1 << wnd) -
1;
31079 var dbl = max ===
1 ? null : this.dbl();
31080 for (var i =
1; i < max; i++)
31081 res[i] = res[i -
1].add(dbl);
31088 BasePoint.prototype._getBeta = function _getBeta() {
31092 BasePoint.prototype.dblp = function dblp(k) {
31094 for (var i =
0; i < k; i++)
31099 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
31102 var curve = require('../curve');
31103 var elliptic = require('../../elliptic');
31104 var BN = require('bn.js');
31105 var inherits = require('inherits');
31106 var Base = curve.base;
31108 var assert = elliptic.utils.assert;
31110 function EdwardsCurve(conf) {
31111 // NOTE: Important as we are creating point in Base.call()
31112 this.twisted = (conf.a |
0) !==
1;
31113 this.mOneA = this.twisted && (conf.a |
0) === -
1;
31114 this.extended = this.mOneA;
31116 Base.call(this, 'edwards', conf);
31118 this.a = new BN(conf.a,
16).umod(this.red.m);
31119 this.a = this.a.toRed(this.red);
31120 this.c = new BN(conf.c,
16).toRed(this.red);
31121 this.c2 = this.c.redSqr();
31122 this.d = new BN(conf.d,
16).toRed(this.red);
31123 this.dd = this.d.redAdd(this.d);
31125 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
31126 this.oneC = (conf.c |
0) ===
1;
31128 inherits(EdwardsCurve, Base);
31129 module.exports = EdwardsCurve;
31131 EdwardsCurve.prototype._mulA = function _mulA(num) {
31133 return num.redNeg();
31135 return this.a.redMul(num);
31138 EdwardsCurve.prototype._mulC = function _mulC(num) {
31142 return this.c.redMul(num);
31145 // Just for compatibility with Short curve
31146 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
31147 return this.point(x, y, z, t);
31150 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
31153 x = x.toRed(this.red);
31155 var x2 = x.redSqr();
31156 var rhs = this.c2.redSub(this.a.redMul(x2));
31157 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
31159 var y2 = rhs.redMul(lhs.redInvm());
31160 var y = y2.redSqrt();
31161 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
31162 throw new Error('invalid point');
31164 var isOdd = y.fromRed().isOdd();
31165 if (odd && !isOdd || !odd && isOdd)
31168 return this.point(x, y);
31171 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
31174 y = y.toRed(this.red);
31176 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
31177 var y2 = y.redSqr();
31178 var lhs = y2.redSub(this.one);
31179 var rhs = y2.redMul(this.d).redAdd(this.one);
31180 var x2 = lhs.redMul(rhs.redInvm());
31182 if (x2.cmp(this.zero) ===
0) {
31184 throw new Error('invalid point');
31186 return this.point(this.zero, y);
31189 var x = x2.redSqrt();
31190 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
31191 throw new Error('invalid point');
31193 if (x.isOdd() !== odd)
31196 return this.point(x, y);
31199 EdwardsCurve.prototype.validate = function validate(point) {
31200 if (point.isInfinity())
31203 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
31206 var x2 = point.x.redSqr();
31207 var y2 = point.y.redSqr();
31208 var lhs = x2.redMul(this.a).redAdd(y2);
31209 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
31211 return lhs.cmp(rhs) ===
0;
31214 function Point(curve, x, y, z, t) {
31215 Base.BasePoint.call(this, curve, 'projective');
31216 if (x === null && y === null && z === null) {
31217 this.x = this.curve.zero;
31218 this.y = this.curve.one;
31219 this.z = this.curve.one;
31220 this.t = this.curve.zero;
31223 this.x = new BN(x,
16);
31224 this.y = new BN(y,
16);
31225 this.z = z ? new BN(z,
16) : this.curve.one;
31226 this.t = t && new BN(t,
16);
31228 this.x = this.x.toRed(this.curve.red);
31230 this.y = this.y.toRed(this.curve.red);
31232 this.z = this.z.toRed(this.curve.red);
31233 if (this.t && !this.t.red)
31234 this.t = this.t.toRed(this.curve.red);
31235 this.zOne = this.z === this.curve.one;
31237 // Use extended coordinates
31238 if (this.curve.extended && !this.t) {
31239 this.t = this.x.redMul(this.y);
31241 this.t = this.t.redMul(this.z.redInvm());
31245 inherits(Point, Base.BasePoint);
31247 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
31248 return Point.fromJSON(this, obj);
31251 EdwardsCurve.prototype.point = function point(x, y, z, t) {
31252 return new Point(this, x, y, z, t);
31255 Point.fromJSON = function fromJSON(curve, obj) {
31256 return new Point(curve, obj[
0], obj[
1], obj[
2]);
31259 Point.prototype.inspect = function inspect() {
31260 if (this.isInfinity())
31261 return '
<EC Point Infinity
>';
31262 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
31263 ' y: ' + this.y.fromRed().toString(
16,
2) +
31264 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
31267 Point.prototype.isInfinity = function isInfinity() {
31268 // XXX This code assumes that zero is always zero in red
31269 return this.x.cmpn(
0) ===
0 &&
31270 this.y.cmp(this.z) ===
0;
31273 Point.prototype._extDbl = function _extDbl() {
31274 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
31275 // #doubling-dbl-
2008-hwcd
31279 var a = this.x.redSqr();
31281 var b = this.y.redSqr();
31283 var c = this.z.redSqr();
31286 var d = this.curve._mulA(a);
31287 // E = (X1 + Y1)^
2 - A - B
31288 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
31290 var g = d.redAdd(b);
31292 var f = g.redSub(c);
31294 var h = d.redSub(b);
31296 var nx = e.redMul(f);
31298 var ny = g.redMul(h);
31300 var nt = e.redMul(h);
31302 var nz = f.redMul(g);
31303 return this.curve.point(nx, ny, nz, nt);
31306 Point.prototype._projDbl = function _projDbl() {
31307 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
31308 // #doubling-dbl-
2008-bbjlp
31309 // #doubling-dbl-
2007-bl
31311 // Generally
3M +
4S or
2M +
4S
31314 var b = this.x.redAdd(this.y).redSqr();
31316 var c = this.x.redSqr();
31318 var d = this.y.redSqr();
31323 if (this.curve.twisted) {
31325 var e = this.curve._mulA(c);
31327 var f = e.redAdd(d);
31329 // X3 = (B - C - D) * (F -
2)
31330 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
31331 // Y3 = F * (E - D)
31332 ny = f.redMul(e.redSub(d));
31333 // Z3 = F^
2 -
2 * F
31334 nz = f.redSqr().redSub(f).redSub(f);
31337 var h = this.z.redSqr();
31339 var j = f.redSub(h).redISub(h);
31341 nx = b.redSub(c).redISub(d).redMul(j);
31342 // Y3 = F * (E - D)
31343 ny = f.redMul(e.redSub(d));
31349 var e = c.redAdd(d);
31351 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
31353 var j = e.redSub(h).redSub(h);
31354 // X3 = c * (B - E) * J
31355 nx = this.curve._mulC(b.redISub(e)).redMul(j);
31356 // Y3 = c * E * (C - D)
31357 ny = this.curve._mulC(e).redMul(c.redISub(d));
31361 return this.curve.point(nx, ny, nz);
31364 Point.prototype.dbl = function dbl() {
31365 if (this.isInfinity())
31368 // Double in extended coordinates
31369 if (this.curve.extended)
31370 return this._extDbl();
31372 return this._projDbl();
31375 Point.prototype._extAdd = function _extAdd(p) {
31376 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
31377 // #addition-add-
2008-hwcd-
3
31380 // A = (Y1 - X1) * (Y2 - X2)
31381 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
31382 // B = (Y1 + X1) * (Y2 + X2)
31383 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
31385 var c = this.t.redMul(this.curve.dd).redMul(p.t);
31387 var d = this.z.redMul(p.z.redAdd(p.z));
31389 var e = b.redSub(a);
31391 var f = d.redSub(c);
31393 var g = d.redAdd(c);
31395 var h = b.redAdd(a);
31397 var nx = e.redMul(f);
31399 var ny = g.redMul(h);
31401 var nt = e.redMul(h);
31403 var nz = f.redMul(g);
31404 return this.curve.point(nx, ny, nz, nt);
31407 Point.prototype._projAdd = function _projAdd(p) {
31408 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
31409 // #addition-add-
2008-bbjlp
31410 // #addition-add-
2007-bl
31414 var a = this.z.redMul(p.z);
31416 var b = a.redSqr();
31418 var c = this.x.redMul(p.x);
31420 var d = this.y.redMul(p.y);
31422 var e = this.curve.d.redMul(c).redMul(d);
31424 var f = b.redSub(e);
31426 var g = b.redAdd(e);
31427 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
31428 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
31429 var nx = a.redMul(f).redMul(tmp);
31432 if (this.curve.twisted) {
31433 // Y3 = A * G * (D - a * C)
31434 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
31438 // Y3 = A * G * (D - C)
31439 ny = a.redMul(g).redMul(d.redSub(c));
31441 nz = this.curve._mulC(f).redMul(g);
31443 return this.curve.point(nx, ny, nz);
31446 Point.prototype.add = function add(p) {
31447 if (this.isInfinity())
31449 if (p.isInfinity())
31452 if (this.curve.extended)
31453 return this._extAdd(p);
31455 return this._projAdd(p);
31458 Point.prototype.mul = function mul(k) {
31459 if (this._hasDoubles(k))
31460 return this.curve._fixedNafMul(this, k);
31462 return this.curve._wnafMul(this, k);
31465 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
31466 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
31469 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
31470 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
31473 Point.prototype.normalize = function normalize() {
31477 // Normalize coordinates
31478 var zi = this.z.redInvm();
31479 this.x = this.x.redMul(zi);
31480 this.y = this.y.redMul(zi);
31482 this.t = this.t.redMul(zi);
31483 this.z = this.curve.one;
31488 Point.prototype.neg = function neg() {
31489 return this.curve.point(this.x.redNeg(),
31492 this.t && this.t.redNeg());
31495 Point.prototype.getX = function getX() {
31497 return this.x.fromRed();
31500 Point.prototype.getY = function getY() {
31502 return this.y.fromRed();
31505 Point.prototype.eq = function eq(other) {
31506 return this === other ||
31507 this.getX().cmp(other.getX()) ===
0 &&
31508 this.getY().cmp(other.getY()) ===
0;
31511 Point.prototype.eqXToP = function eqXToP(x) {
31512 var rx = x.toRed(this.curve.red).redMul(this.z);
31513 if (this.x.cmp(rx) ===
0)
31516 var xc = x.clone();
31517 var t = this.curve.redN.redMul(this.z);
31519 xc.iadd(this.curve.n);
31520 if (xc.cmp(this.curve.p)
>=
0)
31524 if (this.x.cmp(rx) ===
0)
31530 // Compatibility with BaseCurve
31531 Point.prototype.toP = Point.prototype.normalize;
31532 Point.prototype.mixedAdd = Point.prototype.add;
31534 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
31537 var curve = exports;
31539 curve.base = require('./base');
31540 curve.short = require('./short');
31541 curve.mont = require('./mont');
31542 curve.edwards = require('./edwards');
31544 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
31547 var curve = require('../curve');
31548 var BN = require('bn.js');
31549 var inherits = require('inherits');
31550 var Base = curve.base;
31552 var elliptic = require('../../elliptic');
31553 var utils = elliptic.utils;
31555 function MontCurve(conf) {
31556 Base.call(this, 'mont', conf);
31558 this.a = new BN(conf.a,
16).toRed(this.red);
31559 this.b = new BN(conf.b,
16).toRed(this.red);
31560 this.i4 = new BN(
4).toRed(this.red).redInvm();
31561 this.two = new BN(
2).toRed(this.red);
31562 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
31564 inherits(MontCurve, Base);
31565 module.exports = MontCurve;
31567 MontCurve.prototype.validate = function validate(point) {
31568 var x = point.normalize().x;
31569 var x2 = x.redSqr();
31570 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
31571 var y = rhs.redSqrt();
31573 return y.redSqr().cmp(rhs) ===
0;
31576 function Point(curve, x, z) {
31577 Base.BasePoint.call(this, curve, 'projective');
31578 if (x === null && z === null) {
31579 this.x = this.curve.one;
31580 this.z = this.curve.zero;
31582 this.x = new BN(x,
16);
31583 this.z = new BN(z,
16);
31585 this.x = this.x.toRed(this.curve.red);
31587 this.z = this.z.toRed(this.curve.red);
31590 inherits(Point, Base.BasePoint);
31592 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
31593 return this.point(utils.toArray(bytes, enc),
1);
31596 MontCurve.prototype.point = function point(x, z) {
31597 return new Point(this, x, z);
31600 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
31601 return Point.fromJSON(this, obj);
31604 Point.prototype.precompute = function precompute() {
31608 Point.prototype._encode = function _encode() {
31609 return this.getX().toArray('be', this.curve.p.byteLength());
31612 Point.fromJSON = function fromJSON(curve, obj) {
31613 return new Point(curve, obj[
0], obj[
1] || curve.one);
31616 Point.prototype.inspect = function inspect() {
31617 if (this.isInfinity())
31618 return '
<EC Point Infinity
>';
31619 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
31620 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
31623 Point.prototype.isInfinity = function isInfinity() {
31624 // XXX This code assumes that zero is always zero in red
31625 return this.z.cmpn(
0) ===
0;
31628 Point.prototype.dbl = function dbl() {
31629 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
31633 var a = this.x.redAdd(this.z);
31635 var aa = a.redSqr();
31637 var b = this.x.redSub(this.z);
31639 var bb = b.redSqr();
31641 var c = aa.redSub(bb);
31643 var nx = aa.redMul(bb);
31644 // Z3 = C * (BB + A24 * C)
31645 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
31646 return this.curve.point(nx, nz);
31649 Point.prototype.add = function add() {
31650 throw new Error('Not supported on Montgomery curve');
31653 Point.prototype.diffAdd = function diffAdd(p, diff) {
31654 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
31658 var a = this.x.redAdd(this.z);
31660 var b = this.x.redSub(this.z);
31662 var c = p.x.redAdd(p.z);
31664 var d = p.x.redSub(p.z);
31666 var da = d.redMul(a);
31668 var cb = c.redMul(b);
31669 // X5 = Z1 * (DA + CB)^
2
31670 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
31671 // Z5 = X1 * (DA - CB)^
2
31672 var nz = diff.x.redMul(da.redISub(cb).redSqr());
31673 return this.curve.point(nx, nz);
31676 Point.prototype.mul = function mul(k) {
31678 var a = this; // (N /
2) * Q + Q
31679 var b = this.curve.point(null, null); // (N /
2) * Q
31682 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
31683 bits.push(t.andln(
1));
31685 for (var i = bits.length -
1; i
>=
0; i--) {
31686 if (bits[i] ===
0) {
31687 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
31688 a = a.diffAdd(b, c);
31689 // N * Q =
2 * ((N /
2) * Q + Q))
31692 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
31693 b = a.diffAdd(b, c);
31694 // N * Q + Q =
2 * ((N /
2) * Q + Q)
31701 Point.prototype.mulAdd = function mulAdd() {
31702 throw new Error('Not supported on Montgomery curve');
31705 Point.prototype.jumlAdd = function jumlAdd() {
31706 throw new Error('Not supported on Montgomery curve');
31709 Point.prototype.eq = function eq(other) {
31710 return this.getX().cmp(other.getX()) ===
0;
31713 Point.prototype.normalize = function normalize() {
31714 this.x = this.x.redMul(this.z.redInvm());
31715 this.z = this.curve.one;
31719 Point.prototype.getX = function getX() {
31720 // Normalize coordinates
31723 return this.x.fromRed();
31726 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
31729 var curve = require('../curve');
31730 var elliptic = require('../../elliptic');
31731 var BN = require('bn.js');
31732 var inherits = require('inherits');
31733 var Base = curve.base;
31735 var assert = elliptic.utils.assert;
31737 function ShortCurve(conf) {
31738 Base.call(this, 'short', conf);
31740 this.a = new BN(conf.a,
16).toRed(this.red);
31741 this.b = new BN(conf.b,
16).toRed(this.red);
31742 this.tinv = this.two.redInvm();
31744 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
31745 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
31747 // If the curve is endomorphic, precalculate beta and lambda
31748 this.endo = this._getEndomorphism(conf);
31749 this._endoWnafT1 = new Array(
4);
31750 this._endoWnafT2 = new Array(
4);
31752 inherits(ShortCurve, Base);
31753 module.exports = ShortCurve;
31755 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
31756 // No efficient endomorphism
31757 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
31760 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
31764 beta = new BN(conf.beta,
16).toRed(this.red);
31766 var betas = this._getEndoRoots(this.p);
31767 // Choose the smallest beta
31768 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
31769 beta = beta.toRed(this.red);
31772 lambda = new BN(conf.lambda,
16);
31774 // Choose the lambda that is matching selected beta
31775 var lambdas = this._getEndoRoots(this.n);
31776 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
31777 lambda = lambdas[
0];
31779 lambda = lambdas[
1];
31780 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
31784 // Get basis vectors, used for balanced length-two representation
31787 basis = conf.basis.map(function(vec) {
31789 a: new BN(vec.a,
16),
31790 b: new BN(vec.b,
16)
31794 basis = this._getEndoBasis(lambda);
31804 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
31805 // Find roots of for x^
2 + x +
1 in F
31806 // Root = (-
1 +- Sqrt(-
3)) /
2
31808 var red = num === this.p ? this.red : BN.mont(num);
31809 var tinv = new BN(
2).toRed(red).redInvm();
31810 var ntinv = tinv.redNeg();
31812 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
31814 var l1 = ntinv.redAdd(s).fromRed();
31815 var l2 = ntinv.redSub(s).fromRed();
31819 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
31820 // aprxSqrt
>= sqrt(this.n)
31821 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
31824 // Run EGCD, until r(L +
1) < aprxSqrt
31826 var v = this.n.clone();
31827 var x1 = new BN(
1);
31828 var y1 = new BN(
0);
31829 var x2 = new BN(
0);
31830 var y2 = new BN(
1);
31832 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
31846 while (u.cmpn(
0) !==
0) {
31848 r = v.sub(q.mul(u));
31849 x = x2.sub(q.mul(x1));
31850 var y = y2.sub(q.mul(y1));
31852 if (!a1 && r.cmp(aprxSqrt) <
0) {
31857 } else if (a1 && ++i ===
2) {
31872 var len1 = a1.sqr().add(b1.sqr());
31873 var len2 = a2.sqr().add(b2.sqr());
31874 if (len2.cmp(len1)
>=
0) {
31895 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
31896 var basis = this.endo.basis;
31900 var c1 = v2.b.mul(k).divRound(this.n);
31901 var c2 = v1.b.neg().mul(k).divRound(this.n);
31903 var p1 = c1.mul(v1.a);
31904 var p2 = c2.mul(v2.a);
31905 var q1 = c1.mul(v1.b);
31906 var q2 = c2.mul(v2.b);
31908 // Calculate answer
31909 var k1 = k.sub(p1).sub(p2);
31910 var k2 = q1.add(q2).neg();
31911 return { k1: k1, k2: k2 };
31914 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
31917 x = x.toRed(this.red);
31919 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
31920 var y = y2.redSqrt();
31921 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
31922 throw new Error('invalid point');
31924 // XXX Is there any way to tell if the number is odd without converting it
31925 // to non-red form?
31926 var isOdd = y.fromRed().isOdd();
31927 if (odd && !isOdd || !odd && isOdd)
31930 return this.point(x, y);
31933 ShortCurve.prototype.validate = function validate(point) {
31940 var ax = this.a.redMul(x);
31941 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
31942 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
31945 ShortCurve.prototype._endoWnafMulAdd =
31946 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
31947 var npoints = this._endoWnafT1;
31948 var ncoeffs = this._endoWnafT2;
31949 for (var i =
0; i < points.length; i++) {
31950 var split = this._endoSplit(coeffs[i]);
31952 var beta = p._getBeta();
31954 if (split.k1.negative) {
31958 if (split.k2.negative) {
31960 beta = beta.neg(true);
31963 npoints[i *
2] = p;
31964 npoints[i *
2 +
1] = beta;
31965 ncoeffs[i *
2] = split.k1;
31966 ncoeffs[i *
2 +
1] = split.k2;
31968 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
31970 // Clean-up references to points and coefficients
31971 for (var j =
0; j < i *
2; j++) {
31978 function Point(curve, x, y, isRed) {
31979 Base.BasePoint.call(this, curve, 'affine');
31980 if (x === null && y === null) {
31985 this.x = new BN(x,
16);
31986 this.y = new BN(y,
16);
31987 // Force redgomery representation when loading from JSON
31989 this.x.forceRed(this.curve.red);
31990 this.y.forceRed(this.curve.red);
31993 this.x = this.x.toRed(this.curve.red);
31995 this.y = this.y.toRed(this.curve.red);
31999 inherits(Point, Base.BasePoint);
32001 ShortCurve.prototype.point = function point(x, y, isRed) {
32002 return new Point(this, x, y, isRed);
32005 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
32006 return Point.fromJSON(this, obj, red);
32009 Point.prototype._getBeta = function _getBeta() {
32010 if (!this.curve.endo)
32013 var pre = this.precomputed;
32014 if (pre && pre.beta)
32017 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
32019 var curve = this.curve;
32020 var endoMul = function(p) {
32021 return curve.point(p.x.redMul(curve.endo.beta), p.y);
32024 beta.precomputed = {
32028 points: pre.naf.points.map(endoMul)
32030 doubles: pre.doubles && {
32031 step: pre.doubles.step,
32032 points: pre.doubles.points.map(endoMul)
32039 Point.prototype.toJSON = function toJSON() {
32040 if (!this.precomputed)
32041 return [ this.x, this.y ];
32043 return [ this.x, this.y, this.precomputed && {
32044 doubles: this.precomputed.doubles && {
32045 step: this.precomputed.doubles.step,
32046 points: this.precomputed.doubles.points.slice(
1)
32048 naf: this.precomputed.naf && {
32049 wnd: this.precomputed.naf.wnd,
32050 points: this.precomputed.naf.points.slice(
1)
32055 Point.fromJSON = function fromJSON(curve, obj, red) {
32056 if (typeof obj === 'string')
32057 obj = JSON.parse(obj);
32058 var res = curve.point(obj[
0], obj[
1], red);
32062 function obj2point(obj) {
32063 return curve.point(obj[
0], obj[
1], red);
32067 res.precomputed = {
32069 doubles: pre.doubles && {
32070 step: pre.doubles.step,
32071 points: [ res ].concat(pre.doubles.points.map(obj2point))
32075 points: [ res ].concat(pre.naf.points.map(obj2point))
32081 Point.prototype.inspect = function inspect() {
32082 if (this.isInfinity())
32083 return '
<EC Point Infinity
>';
32084 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
32085 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
32088 Point.prototype.isInfinity = function isInfinity() {
32092 Point.prototype.add = function add(p) {
32106 if (this.neg().eq(p))
32107 return this.curve.point(null, null);
32110 if (this.x.cmp(p.x) ===
0)
32111 return this.curve.point(null, null);
32113 var c = this.y.redSub(p.y);
32114 if (c.cmpn(
0) !==
0)
32115 c = c.redMul(this.x.redSub(p.x).redInvm());
32116 var nx = c.redSqr().redISub(this.x).redISub(p.x);
32117 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
32118 return this.curve.point(nx, ny);
32121 Point.prototype.dbl = function dbl() {
32126 var ys1 = this.y.redAdd(this.y);
32127 if (ys1.cmpn(
0) ===
0)
32128 return this.curve.point(null, null);
32130 var a = this.curve.a;
32132 var x2 = this.x.redSqr();
32133 var dyinv = ys1.redInvm();
32134 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
32136 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
32137 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
32138 return this.curve.point(nx, ny);
32141 Point.prototype.getX = function getX() {
32142 return this.x.fromRed();
32145 Point.prototype.getY = function getY() {
32146 return this.y.fromRed();
32149 Point.prototype.mul = function mul(k) {
32152 if (this._hasDoubles(k))
32153 return this.curve._fixedNafMul(this, k);
32154 else if (this.curve.endo)
32155 return this.curve._endoWnafMulAdd([ this ], [ k ]);
32157 return this.curve._wnafMul(this, k);
32160 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
32161 var points = [ this, p2 ];
32162 var coeffs = [ k1, k2 ];
32163 if (this.curve.endo)
32164 return this.curve._endoWnafMulAdd(points, coeffs);
32166 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
32169 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
32170 var points = [ this, p2 ];
32171 var coeffs = [ k1, k2 ];
32172 if (this.curve.endo)
32173 return this.curve._endoWnafMulAdd(points, coeffs, true);
32175 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
32178 Point.prototype.eq = function eq(p) {
32179 return this === p ||
32180 this.inf === p.inf &&
32181 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
32184 Point.prototype.neg = function neg(_precompute) {
32188 var res = this.curve.point(this.x, this.y.redNeg());
32189 if (_precompute && this.precomputed) {
32190 var pre = this.precomputed;
32191 var negate = function(p) {
32194 res.precomputed = {
32197 points: pre.naf.points.map(negate)
32199 doubles: pre.doubles && {
32200 step: pre.doubles.step,
32201 points: pre.doubles.points.map(negate)
32208 Point.prototype.toJ = function toJ() {
32210 return this.curve.jpoint(null, null, null);
32212 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
32216 function JPoint(curve, x, y, z) {
32217 Base.BasePoint.call(this, curve, 'jacobian');
32218 if (x === null && y === null && z === null) {
32219 this.x = this.curve.one;
32220 this.y = this.curve.one;
32221 this.z = new BN(
0);
32223 this.x = new BN(x,
16);
32224 this.y = new BN(y,
16);
32225 this.z = new BN(z,
16);
32228 this.x = this.x.toRed(this.curve.red);
32230 this.y = this.y.toRed(this.curve.red);
32232 this.z = this.z.toRed(this.curve.red);
32234 this.zOne = this.z === this.curve.one;
32236 inherits(JPoint, Base.BasePoint);
32238 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
32239 return new JPoint(this, x, y, z);
32242 JPoint.prototype.toP = function toP() {
32243 if (this.isInfinity())
32244 return this.curve.point(null, null);
32246 var zinv = this.z.redInvm();
32247 var zinv2 = zinv.redSqr();
32248 var ax = this.x.redMul(zinv2);
32249 var ay = this.y.redMul(zinv2).redMul(zinv);
32251 return this.curve.point(ax, ay);
32254 JPoint.prototype.neg = function neg() {
32255 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
32258 JPoint.prototype.add = function add(p) {
32260 if (this.isInfinity())
32264 if (p.isInfinity())
32268 var pz2 = p.z.redSqr();
32269 var z2 = this.z.redSqr();
32270 var u1 = this.x.redMul(pz2);
32271 var u2 = p.x.redMul(z2);
32272 var s1 = this.y.redMul(pz2.redMul(p.z));
32273 var s2 = p.y.redMul(z2.redMul(this.z));
32275 var h = u1.redSub(u2);
32276 var r = s1.redSub(s2);
32277 if (h.cmpn(
0) ===
0) {
32278 if (r.cmpn(
0) !==
0)
32279 return this.curve.jpoint(null, null, null);
32284 var h2 = h.redSqr();
32285 var h3 = h2.redMul(h);
32286 var v = u1.redMul(h2);
32288 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
32289 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
32290 var nz = this.z.redMul(p.z).redMul(h);
32292 return this.curve.jpoint(nx, ny, nz);
32295 JPoint.prototype.mixedAdd = function mixedAdd(p) {
32297 if (this.isInfinity())
32301 if (p.isInfinity())
32305 var z2 = this.z.redSqr();
32307 var u2 = p.x.redMul(z2);
32309 var s2 = p.y.redMul(z2).redMul(this.z);
32311 var h = u1.redSub(u2);
32312 var r = s1.redSub(s2);
32313 if (h.cmpn(
0) ===
0) {
32314 if (r.cmpn(
0) !==
0)
32315 return this.curve.jpoint(null, null, null);
32320 var h2 = h.redSqr();
32321 var h3 = h2.redMul(h);
32322 var v = u1.redMul(h2);
32324 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
32325 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
32326 var nz = this.z.redMul(h);
32328 return this.curve.jpoint(nx, ny, nz);
32331 JPoint.prototype.dblp = function dblp(pow) {
32334 if (this.isInfinity())
32339 if (this.curve.zeroA || this.curve.threeA) {
32341 for (var i =
0; i < pow; i++)
32346 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
32347 // N =
1 =
> 6M +
6S +
9A
32348 var a = this.curve.a;
32349 var tinv = this.curve.tinv;
32354 var jz4 = jz.redSqr().redSqr();
32357 var jyd = jy.redAdd(jy);
32358 for (var i =
0; i < pow; i++) {
32359 var jx2 = jx.redSqr();
32360 var jyd2 = jyd.redSqr();
32361 var jyd4 = jyd2.redSqr();
32362 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
32364 var t1 = jx.redMul(jyd2);
32365 var nx = c.redSqr().redISub(t1.redAdd(t1));
32366 var t2 = t1.redISub(nx);
32367 var dny = c.redMul(t2);
32368 dny = dny.redIAdd(dny).redISub(jyd4);
32369 var nz = jyd.redMul(jz);
32371 jz4 = jz4.redMul(jyd4);
32378 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
32381 JPoint.prototype.dbl = function dbl() {
32382 if (this.isInfinity())
32385 if (this.curve.zeroA)
32386 return this._zeroDbl();
32387 else if (this.curve.threeA)
32388 return this._threeDbl();
32390 return this._dbl();
32393 JPoint.prototype._zeroDbl = function _zeroDbl() {
32399 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
32400 // #doubling-mdbl-
2007-bl
32404 var xx = this.x.redSqr();
32406 var yy = this.y.redSqr();
32408 var yyyy = yy.redSqr();
32409 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
32410 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32412 // M =
3 * XX + a; a =
0
32413 var m = xx.redAdd(xx).redIAdd(xx);
32415 var t = m.redSqr().redISub(s).redISub(s);
32418 var yyyy8 = yyyy.redIAdd(yyyy);
32419 yyyy8 = yyyy8.redIAdd(yyyy8);
32420 yyyy8 = yyyy8.redIAdd(yyyy8);
32424 // Y3 = M * (S - T) -
8 * YYYY
32425 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
32427 nz = this.y.redAdd(this.y);
32429 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
32430 // #doubling-dbl-
2009-l
32434 var a = this.x.redSqr();
32436 var b = this.y.redSqr();
32438 var c = b.redSqr();
32439 // D =
2 * ((X1 + B)^
2 - A - C)
32440 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
32443 var e = a.redAdd(a).redIAdd(a);
32445 var f = e.redSqr();
32448 var c8 = c.redIAdd(c);
32449 c8 = c8.redIAdd(c8);
32450 c8 = c8.redIAdd(c8);
32453 nx = f.redISub(d).redISub(d);
32454 // Y3 = E * (D - X3) -
8 * C
32455 ny = e.redMul(d.redISub(nx)).redISub(c8);
32456 // Z3 =
2 * Y1 * Z1
32457 nz = this.y.redMul(this.z);
32458 nz = nz.redIAdd(nz);
32461 return this.curve.jpoint(nx, ny, nz);
32464 JPoint.prototype._threeDbl = function _threeDbl() {
32470 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
32471 // #doubling-mdbl-
2007-bl
32475 var xx = this.x.redSqr();
32477 var yy = this.y.redSqr();
32479 var yyyy = yy.redSqr();
32480 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
32481 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32484 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
32486 var t = m.redSqr().redISub(s).redISub(s);
32489 // Y3 = M * (S - T) -
8 * YYYY
32490 var yyyy8 = yyyy.redIAdd(yyyy);
32491 yyyy8 = yyyy8.redIAdd(yyyy8);
32492 yyyy8 = yyyy8.redIAdd(yyyy8);
32493 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
32495 nz = this.y.redAdd(this.y);
32497 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
32501 var delta = this.z.redSqr();
32503 var gamma = this.y.redSqr();
32504 // beta = X1 * gamma
32505 var beta = this.x.redMul(gamma);
32506 // alpha =
3 * (X1 - delta) * (X1 + delta)
32507 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
32508 alpha = alpha.redAdd(alpha).redIAdd(alpha);
32509 // X3 = alpha^
2 -
8 * beta
32510 var beta4 = beta.redIAdd(beta);
32511 beta4 = beta4.redIAdd(beta4);
32512 var beta8 = beta4.redAdd(beta4);
32513 nx = alpha.redSqr().redISub(beta8);
32514 // Z3 = (Y1 + Z1)^
2 - gamma - delta
32515 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
32516 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
32517 var ggamma8 = gamma.redSqr();
32518 ggamma8 = ggamma8.redIAdd(ggamma8);
32519 ggamma8 = ggamma8.redIAdd(ggamma8);
32520 ggamma8 = ggamma8.redIAdd(ggamma8);
32521 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
32524 return this.curve.jpoint(nx, ny, nz);
32527 JPoint.prototype._dbl = function _dbl() {
32528 var a = this.curve.a;
32534 var jz4 = jz.redSqr().redSqr();
32536 var jx2 = jx.redSqr();
32537 var jy2 = jy.redSqr();
32539 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
32541 var jxd4 = jx.redAdd(jx);
32542 jxd4 = jxd4.redIAdd(jxd4);
32543 var t1 = jxd4.redMul(jy2);
32544 var nx = c.redSqr().redISub(t1.redAdd(t1));
32545 var t2 = t1.redISub(nx);
32547 var jyd8 = jy2.redSqr();
32548 jyd8 = jyd8.redIAdd(jyd8);
32549 jyd8 = jyd8.redIAdd(jyd8);
32550 jyd8 = jyd8.redIAdd(jyd8);
32551 var ny = c.redMul(t2).redISub(jyd8);
32552 var nz = jy.redAdd(jy).redMul(jz);
32554 return this.curve.jpoint(nx, ny, nz);
32557 JPoint.prototype.trpl = function trpl() {
32558 if (!this.curve.zeroA)
32559 return this.dbl().add(this);
32561 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
32565 var xx = this.x.redSqr();
32567 var yy = this.y.redSqr();
32569 var zz = this.z.redSqr();
32571 var yyyy = yy.redSqr();
32572 // M =
3 * XX + a * ZZ2; a =
0
32573 var m = xx.redAdd(xx).redIAdd(xx);
32575 var mm = m.redSqr();
32576 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
32577 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32579 e = e.redAdd(e).redIAdd(e);
32582 var ee = e.redSqr();
32584 var t = yyyy.redIAdd(yyyy);
32588 // U = (M + E)^
2 - MM - EE - T
32589 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
32590 // X3 =
4 * (X1 * EE -
4 * YY * U)
32591 var yyu4 = yy.redMul(u);
32592 yyu4 = yyu4.redIAdd(yyu4);
32593 yyu4 = yyu4.redIAdd(yyu4);
32594 var nx = this.x.redMul(ee).redISub(yyu4);
32595 nx = nx.redIAdd(nx);
32596 nx = nx.redIAdd(nx);
32597 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
32598 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
32599 ny = ny.redIAdd(ny);
32600 ny = ny.redIAdd(ny);
32601 ny = ny.redIAdd(ny);
32602 // Z3 = (Z1 + E)^
2 - ZZ - EE
32603 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
32605 return this.curve.jpoint(nx, ny, nz);
32608 JPoint.prototype.mul = function mul(k, kbase) {
32609 k = new BN(k, kbase);
32611 return this.curve._wnafMul(this, k);
32614 JPoint.prototype.eq = function eq(p) {
32615 if (p.type === 'affine')
32616 return this.eq(p.toJ());
32621 // x1 * z2^
2 == x2 * z1^
2
32622 var z2 = this.z.redSqr();
32623 var pz2 = p.z.redSqr();
32624 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
32627 // y1 * z2^
3 == y2 * z1^
3
32628 var z3 = z2.redMul(this.z);
32629 var pz3 = pz2.redMul(p.z);
32630 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
32633 JPoint.prototype.eqXToP = function eqXToP(x) {
32634 var zs = this.z.redSqr();
32635 var rx = x.toRed(this.curve.red).redMul(zs);
32636 if (this.x.cmp(rx) ===
0)
32639 var xc = x.clone();
32640 var t = this.curve.redN.redMul(zs);
32642 xc.iadd(this.curve.n);
32643 if (xc.cmp(this.curve.p)
>=
0)
32647 if (this.x.cmp(rx) ===
0)
32653 JPoint.prototype.inspect = function inspect() {
32654 if (this.isInfinity())
32655 return '
<EC JPoint Infinity
>';
32656 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
32657 ' y: ' + this.y.toString(
16,
2) +
32658 ' z: ' + this.z.toString(
16,
2) + '
>';
32661 JPoint.prototype.isInfinity = function isInfinity() {
32662 // XXX This code assumes that zero is always zero in red
32663 return this.z.cmpn(
0) ===
0;
32666 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
32669 var curves = exports;
32671 var hash = require('hash.js');
32672 var elliptic = require('../elliptic');
32674 var assert = elliptic.utils.assert;
32676 function PresetCurve(options) {
32677 if (options.type === 'short')
32678 this.curve = new elliptic.curve.short(options);
32679 else if (options.type === 'edwards')
32680 this.curve = new elliptic.curve.edwards(options);
32682 this.curve = new elliptic.curve.mont(options);
32683 this.g = this.curve.g;
32684 this.n = this.curve.n;
32685 this.hash = options.hash;
32687 assert(this.g.validate(), 'Invalid curve');
32688 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
32690 curves.PresetCurve = PresetCurve;
32692 function defineCurve(name, options) {
32693 Object.defineProperty(curves, name, {
32694 configurable: true,
32697 var curve = new PresetCurve(options);
32698 Object.defineProperty(curves, name, {
32699 configurable: true,
32708 defineCurve('p192', {
32711 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
32712 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
32713 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
32714 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
32718 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
32719 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
32723 defineCurve('p224', {
32726 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
32727 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
32728 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
32729 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
32733 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
32734 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
32738 defineCurve('p256', {
32741 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
32742 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
32743 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
32744 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
32748 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
32749 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
32753 defineCurve('p384', {
32756 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32757 'fffffffe ffffffff
00000000 00000000 ffffffff',
32758 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32759 'fffffffe ffffffff
00000000 00000000 fffffffc',
32760 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
32761 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
32762 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
32763 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
32767 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
32768 '
5502f25d bf55296c
3a545e38
72760ab7',
32769 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
32770 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
32774 defineCurve('p521', {
32777 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32778 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32779 'ffffffff ffffffff ffffffff ffffffff ffffffff',
32780 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32781 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32782 'ffffffff ffffffff ffffffff ffffffff fffffffc',
32783 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
32784 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
32785 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
32786 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32787 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
32788 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
32792 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
32793 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
32794 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
32795 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
32796 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
32797 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
32801 defineCurve('curve25519', {
32804 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
32807 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
32815 defineCurve('ed25519', {
32818 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
32821 // -
121665 * (
121666^(-
1)) (mod P)
32822 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
32823 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
32827 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
32830 '
6666666666666666666666666666666666666666666666666666666666666658'
32836 pre = require('./precomputed/secp256k1');
32841 defineCurve('secp256k1', {
32844 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
32847 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
32851 // Precomputed endomorphism
32852 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
32853 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
32856 a: '
3086d221a7d46bcde86c90e49284eb15',
32857 b: '-e4437ed6010e88286f547fa90abfe4c3'
32860 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
32861 b: '
3086d221a7d46bcde86c90e49284eb15'
32867 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
32868 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
32873 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
32876 var BN = require('bn.js');
32877 var elliptic = require('../../elliptic');
32878 var utils = elliptic.utils;
32879 var assert = utils.assert;
32881 var KeyPair = require('./key');
32882 var Signature = require('./signature');
32884 function EC(options) {
32885 if (!(this instanceof EC))
32886 return new EC(options);
32888 // Shortcut `elliptic.ec(curve-name)`
32889 if (typeof options === 'string') {
32890 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
32892 options = elliptic.curves[options];
32895 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
32896 if (options instanceof elliptic.curves.PresetCurve)
32897 options = { curve: options };
32899 this.curve = options.curve.curve;
32900 this.n = this.curve.n;
32901 this.nh = this.n.ushrn(
1);
32902 this.g = this.curve.g;
32905 this.g = options.curve.g;
32906 this.g.precompute(options.curve.n.bitLength() +
1);
32908 // Hash for function for DRBG
32909 this.hash = options.hash || options.curve.hash;
32911 module.exports = EC;
32913 EC.prototype.keyPair = function keyPair(options) {
32914 return new KeyPair(this, options);
32917 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
32918 return KeyPair.fromPrivate(this, priv, enc);
32921 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
32922 return KeyPair.fromPublic(this, pub, enc);
32925 EC.prototype.genKeyPair = function genKeyPair(options) {
32929 // Instantiate Hmac_DRBG
32930 var drbg = new elliptic.hmacDRBG({
32932 pers: options.pers,
32933 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
32934 nonce: this.n.toArray()
32937 var bytes = this.n.byteLength();
32938 var ns2 = this.n.sub(new BN(
2));
32940 var priv = new BN(drbg.generate(bytes));
32941 if (priv.cmp(ns2)
> 0)
32945 return this.keyFromPrivate(priv);
32949 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
32950 var delta = msg.byteLength() *
8 - this.n.bitLength();
32952 msg = msg.ushrn(delta);
32953 if (!truncOnly && msg.cmp(this.n)
>=
0)
32954 return msg.sub(this.n);
32959 EC.prototype.sign = function sign(msg, key, enc, options) {
32960 if (typeof enc === 'object') {
32967 key = this.keyFromPrivate(key, enc);
32968 msg = this._truncateToN(new BN(msg,
16));
32970 // Zero-extend key to provide enough entropy
32971 var bytes = this.n.byteLength();
32972 var bkey = key.getPrivate().toArray('be', bytes);
32974 // Zero-extend nonce to have the same byte size as N
32975 var nonce = msg.toArray('be', bytes);
32977 // Instantiate Hmac_DRBG
32978 var drbg = new elliptic.hmacDRBG({
32982 pers: options.pers,
32983 persEnc: options.persEnc
32986 // Number of bytes to generate
32987 var ns1 = this.n.sub(new BN(
1));
32989 for (var iter =
0; true; iter++) {
32990 var k = options.k ?
32992 new BN(drbg.generate(this.n.byteLength()));
32993 k = this._truncateToN(k, true);
32994 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
32997 var kp = this.g.mul(k);
32998 if (kp.isInfinity())
33001 var kpX = kp.getX();
33002 var r = kpX.umod(this.n);
33003 if (r.cmpn(
0) ===
0)
33006 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
33007 s = s.umod(this.n);
33008 if (s.cmpn(
0) ===
0)
33011 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
33012 (kpX.cmp(r) !==
0 ?
2 :
0);
33014 // Use complement of `s`, if it is
> `n /
2`
33015 if (options.canonical && s.cmp(this.nh)
> 0) {
33017 recoveryParam ^=
1;
33020 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
33024 EC.prototype.verify = function verify(msg, signature, key, enc) {
33025 msg = this._truncateToN(new BN(msg,
16));
33026 key = this.keyFromPublic(key, enc);
33027 signature = new Signature(signature, 'hex');
33029 // Perform primitive values validation
33030 var r = signature.r;
33031 var s = signature.s;
33032 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
33034 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
33037 // Validate signature
33038 var sinv = s.invm(this.n);
33039 var u1 = sinv.mul(msg).umod(this.n);
33040 var u2 = sinv.mul(r).umod(this.n);
33042 if (!this.curve._maxwellTrick) {
33043 var p = this.g.mulAdd(u1, key.getPublic(), u2);
33044 if (p.isInfinity())
33047 return p.getX().umod(this.n).cmp(r) ===
0;
33050 // NOTE: Greg Maxwell's trick, inspired by:
33051 // https://git.io/vad3K
33053 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
33054 if (p.isInfinity())
33057 // Compare `p.x` of Jacobian point with `r`,
33058 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
33059 // inverse of `p.z^
2`
33060 return p.eqXToP(r);
33063 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
33064 assert((
3 & j) === j, 'The recovery param is more than two bits');
33065 signature = new Signature(signature, enc);
33068 var e = new BN(msg);
33069 var r = signature.r;
33070 var s = signature.s;
33072 // A set LSB signifies that the y-coordinate is odd
33073 var isYOdd = j &
1;
33074 var isSecondKey = j
>> 1;
33075 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
33076 throw new Error('Unable to find sencond key candinate');
33078 //
1.1. Let x = r + jn.
33080 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
33082 r = this.curve.pointFromX(r, isYOdd);
33084 var rInv = signature.r.invm(n);
33085 var s1 = n.sub(e).mul(rInv).umod(n);
33086 var s2 = s.mul(rInv).umod(n);
33088 //
1.6.1 Compute Q = r^-
1 (sR - eG)
33089 // Q = r^-
1 (sR + -eG)
33090 return this.g.mulAdd(s1, r, s2);
33093 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
33094 signature = new Signature(signature, enc);
33095 if (signature.recoveryParam !== null)
33096 return signature.recoveryParam;
33098 for (var i =
0; i <
4; i++) {
33101 Qprime = this.recoverPubKey(e, signature, i);
33109 throw new Error('Unable to find valid recovery factor');
33112 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
33115 var BN = require('bn.js');
33116 var elliptic = require('../../elliptic');
33117 var utils = elliptic.utils;
33118 var assert = utils.assert;
33120 function KeyPair(ec, options) {
33125 // KeyPair(ec, { priv: ..., pub: ... })
33127 this._importPrivate(options.priv, options.privEnc);
33129 this._importPublic(options.pub, options.pubEnc);
33131 module.exports = KeyPair;
33133 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
33134 if (pub instanceof KeyPair)
33137 return new KeyPair(ec, {
33143 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
33144 if (priv instanceof KeyPair)
33147 return new KeyPair(ec, {
33153 KeyPair.prototype.validate = function validate() {
33154 var pub = this.getPublic();
33156 if (pub.isInfinity())
33157 return { result: false, reason: 'Invalid public key' };
33158 if (!pub.validate())
33159 return { result: false, reason: 'Public key is not a point' };
33160 if (!pub.mul(this.ec.curve.n).isInfinity())
33161 return { result: false, reason: 'Public key * N != O' };
33163 return { result: true, reason: null };
33166 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
33167 // compact is optional argument
33168 if (typeof compact === 'string') {
33174 this.pub = this.ec.g.mul(this.priv);
33179 return this.pub.encode(enc, compact);
33182 KeyPair.prototype.getPrivate = function getPrivate(enc) {
33184 return this.priv.toString(
16,
2);
33189 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
33190 this.priv = new BN(key, enc ||
16);
33192 // Ensure that the priv won't be bigger than n, otherwise we may fail
33193 // in fixed multiplication method
33194 this.priv = this.priv.umod(this.ec.curve.n);
33197 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
33198 if (key.x || key.y) {
33199 // Montgomery points only have an `x` coordinate.
33200 // Weierstrass/Edwards points on the other hand have both `x` and
33201 // `y` coordinates.
33202 if (this.ec.curve.type === 'mont') {
33203 assert(key.x, 'Need x coordinate');
33204 } else if (this.ec.curve.type === 'short' ||
33205 this.ec.curve.type === 'edwards') {
33206 assert(key.x && key.y, 'Need both x and y coordinate');
33208 this.pub = this.ec.curve.point(key.x, key.y);
33211 this.pub = this.ec.curve.decodePoint(key, enc);
33215 KeyPair.prototype.derive = function derive(pub) {
33216 return pub.mul(this.priv).getX();
33220 KeyPair.prototype.sign = function sign(msg, enc, options) {
33221 return this.ec.sign(msg, this, enc, options);
33224 KeyPair.prototype.verify = function verify(msg, signature) {
33225 return this.ec.verify(msg, signature, this);
33228 KeyPair.prototype.inspect = function inspect() {
33229 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
33230 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
33233 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
33236 var BN = require('bn.js');
33238 var elliptic = require('../../elliptic');
33239 var utils = elliptic.utils;
33240 var assert = utils.assert;
33242 function Signature(options, enc) {
33243 if (options instanceof Signature)
33246 if (this._importDER(options, enc))
33249 assert(options.r && options.s, 'Signature without r or s');
33250 this.r = new BN(options.r,
16);
33251 this.s = new BN(options.s,
16);
33252 if (options.recoveryParam === undefined)
33253 this.recoveryParam = null;
33255 this.recoveryParam = options.recoveryParam;
33257 module.exports = Signature;
33259 function Position() {
33263 function getLength(buf, p) {
33264 var initial = buf[p.place++];
33265 if (!(initial &
0x80)) {
33268 var octetLen = initial &
0xf;
33270 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
33278 function rmPadding(buf) {
33280 var len = buf.length -
1;
33281 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
33287 return buf.slice(i);
33290 Signature.prototype._importDER = function _importDER(data, enc) {
33291 data = utils.toArray(data, enc);
33292 var p = new Position();
33293 if (data[p.place++] !==
0x30) {
33296 var len = getLength(data, p);
33297 if ((len + p.place) !== data.length) {
33300 if (data[p.place++] !==
0x02) {
33303 var rlen = getLength(data, p);
33304 var r = data.slice(p.place, rlen + p.place);
33306 if (data[p.place++] !==
0x02) {
33309 var slen = getLength(data, p);
33310 if (data.length !== slen + p.place) {
33313 var s = data.slice(p.place, slen + p.place);
33314 if (r[
0] ===
0 && (r[
1] &
0x80)) {
33317 if (s[
0] ===
0 && (s[
1] &
0x80)) {
33321 this.r = new BN(r);
33322 this.s = new BN(s);
33323 this.recoveryParam = null;
33328 function constructLength(arr, len) {
33333 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
33334 arr.push(octets |
0x80);
33336 arr.push((len
>>> (octets <<
3)) &
0xff);
33341 Signature.prototype.toDER = function toDER(enc) {
33342 var r = this.r.toArray();
33343 var s = this.s.toArray();
33347 r = [
0 ].concat(r);
33350 s = [
0 ].concat(s);
33355 while (!s[
0] && !(s[
1] &
0x80)) {
33358 var arr = [
0x02 ];
33359 constructLength(arr, r.length);
33360 arr = arr.concat(r);
33362 constructLength(arr, s.length);
33363 var backHalf = arr.concat(s);
33364 var res = [
0x30 ];
33365 constructLength(res, backHalf.length);
33366 res = res.concat(backHalf);
33367 return utils.encode(res, enc);
33370 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
33373 var hash = require('hash.js');
33374 var elliptic = require('../../elliptic');
33375 var utils = elliptic.utils;
33376 var assert = utils.assert;
33377 var parseBytes = utils.parseBytes;
33378 var KeyPair = require('./key');
33379 var Signature = require('./signature');
33381 function EDDSA(curve) {
33382 assert(curve === 'ed25519', 'only tested with ed25519 so far');
33384 if (!(this instanceof EDDSA))
33385 return new EDDSA(curve);
33387 var curve = elliptic.curves[curve].curve;
33388 this.curve = curve;
33390 this.g.precompute(curve.n.bitLength() +
1);
33392 this.pointClass = curve.point().constructor;
33393 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
33394 this.hash = hash.sha512;
33397 module.exports = EDDSA;
33400 * @param {Array|String} message - message bytes
33401 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
33402 * @returns {Signature} - signature
33404 EDDSA.prototype.sign = function sign(message, secret) {
33405 message = parseBytes(message);
33406 var key = this.keyFromSecret(secret);
33407 var r = this.hashInt(key.messagePrefix(), message);
33408 var R = this.g.mul(r);
33409 var Rencoded = this.encodePoint(R);
33410 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
33412 var S = r.add(s_).umod(this.curve.n);
33413 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
33417 * @param {Array} message - message bytes
33418 * @param {Array|String|Signature} sig - sig bytes
33419 * @param {Array|String|Point|KeyPair} pub - public key
33420 * @returns {Boolean} - true if public key matches sig of message
33422 EDDSA.prototype.verify = function verify(message, sig, pub) {
33423 message = parseBytes(message);
33424 sig = this.makeSignature(sig);
33425 var key = this.keyFromPublic(pub);
33426 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
33427 var SG = this.g.mul(sig.S());
33428 var RplusAh = sig.R().add(key.pub().mul(h));
33429 return RplusAh.eq(SG);
33432 EDDSA.prototype.hashInt = function hashInt() {
33433 var hash = this.hash();
33434 for (var i =
0; i < arguments.length; i++)
33435 hash.update(arguments[i]);
33436 return utils.intFromLE(hash.digest()).umod(this.curve.n);
33439 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
33440 return KeyPair.fromPublic(this, pub);
33443 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
33444 return KeyPair.fromSecret(this, secret);
33447 EDDSA.prototype.makeSignature = function makeSignature(sig) {
33448 if (sig instanceof Signature)
33450 return new Signature(this, sig);
33454 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
33456 * EDDSA defines methods for encoding and decoding points and integers. These are
33457 * helper convenience methods, that pass along to utility functions implied
33461 EDDSA.prototype.encodePoint = function encodePoint(point) {
33462 var enc = point.getY().toArray('le', this.encodingLength);
33463 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
33467 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
33468 bytes = utils.parseBytes(bytes);
33470 var lastIx = bytes.length -
1;
33471 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
33472 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
33474 var y = utils.intFromLE(normed);
33475 return this.curve.pointFromY(y, xIsOdd);
33478 EDDSA.prototype.encodeInt = function encodeInt(num) {
33479 return num.toArray('le', this.encodingLength);
33482 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
33483 return utils.intFromLE(bytes);
33486 EDDSA.prototype.isPoint = function isPoint(val) {
33487 return val instanceof this.pointClass;
33490 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
33493 var elliptic = require('../../elliptic');
33494 var utils = elliptic.utils;
33495 var assert = utils.assert;
33496 var parseBytes = utils.parseBytes;
33497 var cachedProperty = utils.cachedProperty;
33500 * @param {EDDSA} eddsa - instance
33501 * @param {Object} params - public/private key parameters
33503 * @param {Array
<Byte>} [params.secret] - secret seed bytes
33504 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
33505 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
33508 function KeyPair(eddsa, params) {
33509 this.eddsa = eddsa;
33510 this._secret = parseBytes(params.secret);
33511 if (eddsa.isPoint(params.pub))
33512 this._pub = params.pub;
33514 this._pubBytes = parseBytes(params.pub);
33517 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
33518 if (pub instanceof KeyPair)
33520 return new KeyPair(eddsa, { pub: pub });
33523 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
33524 if (secret instanceof KeyPair)
33526 return new KeyPair(eddsa, { secret: secret });
33529 KeyPair.prototype.secret = function secret() {
33530 return this._secret;
33533 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
33534 return this.eddsa.encodePoint(this.pub());
33537 cachedProperty(KeyPair, 'pub', function pub() {
33538 if (this._pubBytes)
33539 return this.eddsa.decodePoint(this._pubBytes);
33540 return this.eddsa.g.mul(this.priv());
33543 cachedProperty(KeyPair, 'privBytes', function privBytes() {
33544 var eddsa = this.eddsa;
33545 var hash = this.hash();
33546 var lastIx = eddsa.encodingLength -
1;
33548 var a = hash.slice(
0, eddsa.encodingLength);
33556 cachedProperty(KeyPair, 'priv', function priv() {
33557 return this.eddsa.decodeInt(this.privBytes());
33560 cachedProperty(KeyPair, 'hash', function hash() {
33561 return this.eddsa.hash().update(this.secret()).digest();
33564 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
33565 return this.hash().slice(this.eddsa.encodingLength);
33568 KeyPair.prototype.sign = function sign(message) {
33569 assert(this._secret, 'KeyPair can only verify');
33570 return this.eddsa.sign(message, this);
33573 KeyPair.prototype.verify = function verify(message, sig) {
33574 return this.eddsa.verify(message, sig, this);
33577 KeyPair.prototype.getSecret = function getSecret(enc) {
33578 assert(this._secret, 'KeyPair is public only');
33579 return utils.encode(this.secret(), enc);
33582 KeyPair.prototype.getPublic = function getPublic(enc) {
33583 return utils.encode(this.pubBytes(), enc);
33586 module.exports = KeyPair;
33588 },{"../../elliptic":
39}],
51:[function(require,module,exports){
33591 var BN = require('bn.js');
33592 var elliptic = require('../../elliptic');
33593 var utils = elliptic.utils;
33594 var assert = utils.assert;
33595 var cachedProperty = utils.cachedProperty;
33596 var parseBytes = utils.parseBytes;
33599 * @param {EDDSA} eddsa - eddsa instance
33600 * @param {Array
<Bytes>|Object} sig -
33601 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
33602 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
33603 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
33604 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
33606 function Signature(eddsa, sig) {
33607 this.eddsa = eddsa;
33609 if (typeof sig !== 'object')
33610 sig = parseBytes(sig);
33612 if (Array.isArray(sig)) {
33614 R: sig.slice(
0, eddsa.encodingLength),
33615 S: sig.slice(eddsa.encodingLength)
33619 assert(sig.R && sig.S, 'Signature without R or S');
33621 if (eddsa.isPoint(sig.R))
33623 if (sig.S instanceof BN)
33626 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
33627 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
33630 cachedProperty(Signature, 'S', function S() {
33631 return this.eddsa.decodeInt(this.Sencoded());
33634 cachedProperty(Signature, 'R', function R() {
33635 return this.eddsa.decodePoint(this.Rencoded());
33638 cachedProperty(Signature, 'Rencoded', function Rencoded() {
33639 return this.eddsa.encodePoint(this.R());
33642 cachedProperty(Signature, 'Sencoded', function Sencoded() {
33643 return this.eddsa.encodeInt(this.S());
33646 Signature.prototype.toBytes = function toBytes() {
33647 return this.Rencoded().concat(this.Sencoded());
33650 Signature.prototype.toHex = function toHex() {
33651 return utils.encode(this.toBytes(), 'hex').toUpperCase();
33654 module.exports = Signature;
33656 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
33659 var hash = require('hash.js');
33660 var elliptic = require('../elliptic');
33661 var utils = elliptic.utils;
33662 var assert = utils.assert;
33664 function HmacDRBG(options) {
33665 if (!(this instanceof HmacDRBG))
33666 return new HmacDRBG(options);
33667 this.hash = options.hash;
33668 this.predResist = !!options.predResist;
33670 this.outLen = this.hash.outSize;
33671 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
33673 this.reseed = null;
33674 this.reseedInterval = null;
33678 var entropy = utils.toArray(options.entropy, options.entropyEnc);
33679 var nonce = utils.toArray(options.nonce, options.nonceEnc);
33680 var pers = utils.toArray(options.pers, options.persEnc);
33681 assert(entropy.length
>= (this.minEntropy /
8),
33682 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
33683 this._init(entropy, nonce, pers);
33685 module.exports = HmacDRBG;
33687 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
33688 var seed = entropy.concat(nonce).concat(pers);
33690 this.K = new Array(this.outLen /
8);
33691 this.V = new Array(this.outLen /
8);
33692 for (var i =
0; i < this.V.length; i++) {
33697 this._update(seed);
33699 this.reseedInterval =
0x1000000000000; //
2^
48
33702 HmacDRBG.prototype._hmac = function hmac() {
33703 return new hash.hmac(this.hash, this.K);
33706 HmacDRBG.prototype._update = function update(seed) {
33707 var kmac = this._hmac()
33711 kmac = kmac.update(seed);
33712 this.K = kmac.digest();
33713 this.V = this._hmac().update(this.V).digest();
33717 this.K = this._hmac()
33722 this.V = this._hmac().update(this.V).digest();
33725 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
33726 // Optional entropy enc
33727 if (typeof entropyEnc !== 'string') {
33733 entropy = utils.toBuffer(entropy, entropyEnc);
33734 add = utils.toBuffer(add, addEnc);
33736 assert(entropy.length
>= (this.minEntropy /
8),
33737 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
33739 this._update(entropy.concat(add || []));
33743 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
33744 if (this.reseed
> this.reseedInterval)
33745 throw new Error('Reseed is required');
33747 // Optional encoding
33748 if (typeof enc !== 'string') {
33754 // Optional additional data
33756 add = utils.toArray(add, addEnc);
33761 while (temp.length < len) {
33762 this.V = this._hmac().update(this.V).digest();
33763 temp = temp.concat(this.V);
33766 var res = temp.slice(
0, len);
33769 return utils.encode(res, enc);
33772 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
33778 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
33779 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
33782 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
33783 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
33786 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
33787 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
33790 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
33791 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
33794 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
33795 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
33798 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
33799 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
33802 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
33803 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
33806 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
33807 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
33810 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
33811 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
33814 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
33815 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
33818 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
33819 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
33822 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
33823 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
33826 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
33827 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
33830 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
33831 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
33834 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
33835 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
33838 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
33839 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
33842 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
33843 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
33846 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
33847 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
33850 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
33851 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
33854 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
33855 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
33858 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
33859 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
33862 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
33863 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
33866 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
33867 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
33870 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
33871 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
33874 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
33875 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
33878 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
33879 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
33882 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
33883 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
33886 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
33887 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
33890 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
33891 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
33894 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
33895 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
33898 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
33899 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
33902 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
33903 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
33906 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
33907 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
33910 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
33911 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
33914 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
33915 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
33918 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
33919 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
33922 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
33923 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
33926 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
33927 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
33930 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
33931 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
33934 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
33935 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
33938 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
33939 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
33942 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
33943 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
33946 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
33947 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
33950 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
33951 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
33954 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
33955 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
33958 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
33959 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
33962 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
33963 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
33966 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
33967 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
33970 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
33971 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
33974 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
33975 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
33978 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
33979 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
33982 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
33983 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
33986 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
33987 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
33990 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
33991 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
33994 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
33995 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
33998 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
33999 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
34002 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
34003 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
34006 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
34007 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
34010 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
34011 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
34014 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
34015 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
34018 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
34019 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
34022 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
34023 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
34026 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
34027 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
34030 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
34031 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
34034 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
34035 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
34043 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
34044 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
34047 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
34048 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
34051 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
34052 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
34055 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
34056 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
34059 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
34060 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
34063 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
34064 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
34067 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
34068 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
34071 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
34072 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
34075 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
34076 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
34079 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
34080 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
34083 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
34084 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
34087 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
34088 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
34091 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
34092 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
34095 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
34096 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
34099 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
34100 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
34103 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
34104 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
34107 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
34108 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
34111 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
34112 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
34115 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
34116 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
34119 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
34120 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
34123 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
34124 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
34127 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
34128 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
34131 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
34132 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
34135 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
34136 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
34139 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
34140 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
34143 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
34144 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
34147 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
34148 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
34151 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
34152 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
34155 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
34156 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
34159 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
34160 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
34163 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
34164 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
34167 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
34168 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
34171 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
34172 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
34175 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
34176 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
34179 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
34180 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
34183 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
34184 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
34187 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
34188 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
34191 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
34192 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
34195 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
34196 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
34199 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
34200 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
34203 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
34204 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
34207 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
34208 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
34211 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
34212 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
34215 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
34216 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
34219 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
34220 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
34223 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
34224 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
34227 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
34228 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
34231 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
34232 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
34235 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
34236 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
34239 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
34240 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
34243 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
34244 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
34247 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
34248 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
34251 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
34252 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
34255 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
34256 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
34259 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
34260 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
34263 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
34264 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
34267 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
34268 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
34271 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
34272 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
34275 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
34276 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
34279 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
34280 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
34283 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
34284 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
34287 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
34288 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
34291 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
34292 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
34295 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
34296 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
34299 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
34300 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
34303 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
34304 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
34307 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
34308 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
34311 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
34312 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
34315 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
34316 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
34319 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
34320 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
34323 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
34324 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
34327 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
34328 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
34331 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
34332 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
34335 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
34336 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
34339 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
34340 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
34343 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
34344 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
34347 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
34348 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
34351 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
34352 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
34355 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
34356 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
34359 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
34360 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
34363 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
34364 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
34367 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
34368 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
34371 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
34372 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
34375 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
34376 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
34379 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
34380 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
34383 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
34384 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
34387 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
34388 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
34391 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
34392 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
34395 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
34396 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
34399 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
34400 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
34403 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
34404 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
34407 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
34408 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
34411 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
34412 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
34415 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
34416 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
34419 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
34420 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
34423 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
34424 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
34427 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
34428 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
34431 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
34432 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
34435 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
34436 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
34439 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
34440 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
34443 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
34444 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
34447 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
34448 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
34451 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
34452 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
34455 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
34456 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
34459 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
34460 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
34463 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
34464 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
34467 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
34468 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
34471 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
34472 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
34475 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
34476 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
34479 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
34480 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
34483 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
34484 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
34487 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
34488 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
34491 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
34492 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
34495 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
34496 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
34499 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
34500 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
34503 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
34504 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
34507 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
34508 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
34511 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
34512 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
34515 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
34516 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
34519 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
34520 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
34523 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
34524 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
34527 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
34528 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
34531 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
34532 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
34535 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
34536 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
34539 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
34540 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
34543 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
34544 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
34547 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
34548 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
34554 },{}],
54:[function(require,module,exports){
34557 var utils = exports;
34558 var BN = require('bn.js');
34560 utils.assert = function assert(val, msg) {
34562 throw new Error(msg || 'Assertion failed');
34565 function toArray(msg, enc) {
34566 if (Array.isArray(msg))
34567 return msg.slice();
34571 if (typeof msg !== 'string') {
34572 for (var i =
0; i < msg.length; i++)
34573 res[i] = msg[i] |
0;
34577 for (var i =
0; i < msg.length; i++) {
34578 var c = msg.charCodeAt(i);
34586 } else if (enc === 'hex') {
34587 msg = msg.replace(/[^a-z0-
9]+/ig, '');
34588 if (msg.length %
2 !==
0)
34590 for (var i =
0; i < msg.length; i +=
2)
34591 res.push(parseInt(msg[i] + msg[i +
1],
16));
34595 utils.toArray = toArray;
34597 function zero2(word) {
34598 if (word.length ===
1)
34603 utils.zero2 = zero2;
34605 function toHex(msg) {
34607 for (var i =
0; i < msg.length; i++)
34608 res += zero2(msg[i].toString(
16));
34611 utils.toHex = toHex;
34613 utils.encode = function encode(arr, enc) {
34620 // Represent num in a w-NAF form
34621 function getNAF(num, w) {
34623 var ws =
1 << (w +
1);
34624 var k = num.clone();
34625 while (k.cmpn(
1)
>=
0) {
34628 var mod = k.andln(ws -
1);
34629 if (mod
> (ws
>> 1) -
1)
34630 z = (ws
>> 1) - mod;
34639 // Optimization, shift by word if possible
34640 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
34641 for (var i =
1; i < shift; i++)
34648 utils.getNAF = getNAF;
34650 // Represent k1, k2 in a Joint Sparse Form
34651 function getJSF(k1, k2) {
34661 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
34664 var m14 = (k1.andln(
3) + d1) &
3;
34665 var m24 = (k2.andln(
3) + d2) &
3;
34671 if ((m14 &
1) ===
0) {
34674 var m8 = (k1.andln(
7) + d1) &
7;
34675 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
34683 if ((m24 &
1) ===
0) {
34686 var m8 = (k2.andln(
7) + d2) &
7;
34687 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
34695 if (
2 * d1 === u1 +
1)
34697 if (
2 * d2 === u2 +
1)
34705 utils.getJSF = getJSF;
34707 function cachedProperty(obj, name, computer) {
34708 var key = '_' + name;
34709 obj.prototype[name] = function cachedProperty() {
34710 return this[key] !== undefined ? this[key] :
34711 this[key] = computer.call(this);
34714 utils.cachedProperty = cachedProperty;
34716 function parseBytes(bytes) {
34717 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
34720 utils.parseBytes = parseBytes;
34722 function intFromLE(bytes) {
34723 return new BN(bytes, 'hex', 'le');
34725 utils.intFromLE = intFromLE;
34728 },{
"bn.js":
33}],
55:[function(require,module,exports){
34733 "raw":
"elliptic@^6.2.3",
34735 "escapedName":
"elliptic",
34736 "name":
"elliptic",
34737 "rawSpec":
"^6.2.3",
34738 "spec":
">=6.2.3 <7.0.0",
34741 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
34744 "_from":
"elliptic@>=6.2.3 <7.0.0",
34745 "_id":
"elliptic@6.3.3",
34747 "_location":
"/elliptic",
34748 "_nodeVersion":
"7.0.0",
34749 "_npmOperationalInternal": {
34750 "host":
"packages-18-east.internal.npmjs.com",
34751 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
34755 "email":
"fedor@indutny.com"
34757 "_npmVersion":
"3.10.8",
34758 "_phantomChildren": {},
34760 "raw":
"elliptic@^6.2.3",
34762 "escapedName":
"elliptic",
34763 "name":
"elliptic",
34764 "rawSpec":
"^6.2.3",
34765 "spec":
">=6.2.3 <7.0.0",
34769 "/browserify-sign",
34773 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
34774 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
34775 "_shrinkwrap": null,
34776 "_spec":
"elliptic@^6.2.3",
34777 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
34779 "name":
"Fedor Indutny",
34780 "email":
"fedor@indutny.com"
34783 "url":
"https://github.com/indutny/elliptic/issues"
34787 "brorand":
"^1.0.1",
34788 "hash.js":
"^1.0.0",
34789 "inherits":
"^2.0.1"
34791 "description":
"EC cryptography",
34792 "devDependencies": {
34794 "coveralls":
"^2.11.3",
34796 "grunt-browserify":
"^5.0.0",
34797 "grunt-cli":
"^1.2.0",
34798 "grunt-contrib-connect":
"^1.0.0",
34799 "grunt-contrib-copy":
"^1.0.0",
34800 "grunt-contrib-uglify":
"^1.0.1",
34801 "grunt-mocha-istanbul":
"^3.0.1",
34802 "grunt-saucelabs":
"^8.6.2",
34803 "istanbul":
"^0.4.2",
34805 "jshint":
"^2.6.0",
34810 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
34811 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
34816 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
34817 "homepage":
"https://github.com/indutny/elliptic",
34825 "main":
"lib/elliptic.js",
34829 "email":
"fedor@indutny.com"
34832 "name":
"elliptic",
34833 "optionalDependencies": {},
34834 "readme":
"ERROR: No README data found!",
34837 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
34840 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
34841 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
34842 "lint":
"npm run jscs && npm run jshint",
34843 "test":
"npm run lint && npm run unit",
34844 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
34845 "version":
"grunt dist && git add dist/"
34850 },{}],
56:[function(require,module,exports){
34851 (function (Buffer){
34854 var isHexPrefixed = require('is-hex-prefixed');
34855 var stripHexPrefix = require('strip-hex-prefix');
34858 * Pads a `String` to have an even length
34859 * @param {String} value
34860 * @return {String} output
34862 function padToEven(value) {
34863 var a = value; // eslint-disable-line
34865 if (typeof a !== 'string') {
34866 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
34869 if (a.length %
2) {
34877 * Converts a `Number` into a hex `String`
34878 * @param {Number} i
34881 function intToHex(i) {
34882 var hex = i.toString(
16); // eslint-disable-line
34884 return '
0x' + padToEven(hex);
34888 * Converts an `Number` to a `Buffer`
34889 * @param {Number} i
34892 function intToBuffer(i) {
34893 var hex = intToHex(i);
34895 return new Buffer(hex.slice(
2), 'hex');
34899 * Get the binary size of a string
34900 * @param {String} str
34903 function getBinarySize(str) {
34904 if (typeof str !== 'string') {
34905 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
34908 return Buffer.byteLength(str, 'utf8');
34912 * Returns TRUE if the first specified array contains all elements
34913 * from the second one. FALSE otherwise.
34915 * @param {array} superset
34916 * @param {array} subset
34918 * @returns {boolean}
34920 function arrayContainsArray(superset, subset, some) {
34921 if (Array.isArray(superset) !== true) {
34922 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
34924 if (Array.isArray(subset) !== true) {
34925 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
34928 return subset[Boolean(some) && 'some' || 'every'](function (value) {
34929 return superset.indexOf(value)
>=
0;
34934 * Should be called to get utf8 from it's hex representation
34937 * @param {String} string in hex
34938 * @returns {String} ascii string representation of hex value
34940 function toUtf8(hex) {
34941 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
34943 return bufferValue.toString('utf8');
34947 * Should be called to get ascii from it's hex representation
34950 * @param {String} string in hex
34951 * @returns {String} ascii string representation of hex value
34953 function toAscii(hex) {
34954 var str = ''; // eslint-disable-line
34956 l = hex.length; // eslint-disable-line
34958 if (hex.substring(
0,
2) === '
0x') {
34962 for (; i < l; i +=
2) {
34963 var code = parseInt(hex.substr(i,
2),
16);
34964 str += String.fromCharCode(code);
34971 * Should be called to get hex representation (prefixed by
0x) of utf8 string
34974 * @param {String} string
34975 * @param {Number} optional padding
34976 * @returns {String} hex representation of input string
34978 function fromUtf8(stringValue) {
34979 var str = new Buffer(stringValue, 'utf8');
34981 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
34985 * Should be called to get hex representation (prefixed by
0x) of ascii string
34987 * @method fromAscii
34988 * @param {String} string
34989 * @param {Number} optional padding
34990 * @returns {String} hex representation of input string
34992 function fromAscii(stringValue) {
34993 var hex = ''; // eslint-disable-line
34994 for (var i =
0; i < stringValue.length; i++) {
34995 // eslint-disable-line
34996 var code = stringValue.charCodeAt(i);
34997 var n = code.toString(
16);
34998 hex += n.length <
2 ? '
0' + n : n;
35005 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
35007 * @method getKeys get specific key from inner object array of objects
35008 * @param {String} params
35009 * @param {String} key
35010 * @param {Boolean} allowEmpty
35011 * @returns {Array} output just a simple array of output keys
35013 function getKeys(params, key, allowEmpty) {
35014 if (!Array.isArray(params)) {
35015 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
35017 if (typeof key !== 'string') {
35018 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
35021 var result = []; // eslint-disable-line
35023 for (var i =
0; i < params.length; i++) {
35024 // eslint-disable-line
35025 var value = params[i][key]; // eslint-disable-line
35026 if (allowEmpty && !value) {
35028 } else if (typeof value !== 'string') {
35029 throw new Error('invalid abi');
35031 result.push(value);
35038 * Is the string a hex string.
35040 * @method check if string is hex string of specific length
35041 * @param {String} value
35042 * @param {Number} length
35043 * @returns {Boolean} output the string is a hex string
35045 function isHexString(value, length) {
35046 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
35050 if (length && value.length !==
2 +
2 * length) {
35058 arrayContainsArray: arrayContainsArray,
35059 intToBuffer: intToBuffer,
35060 getBinarySize: getBinarySize,
35061 isHexPrefixed: isHexPrefixed,
35062 stripHexPrefix: stripHexPrefix,
35063 padToEven: padToEven,
35064 intToHex: intToHex,
35065 fromAscii: fromAscii,
35066 fromUtf8: fromUtf8,
35070 isHexString: isHexString
35072 }).call(this,require("buffer").Buffer)
35073 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
35074 var hash = exports;
35076 hash.utils = require('./hash/utils');
35077 hash.common = require('./hash/common');
35078 hash.sha = require('./hash/sha');
35079 hash.ripemd = require('./hash/ripemd');
35080 hash.hmac = require('./hash/hmac');
35082 // Proxy hash functions to the main object
35083 hash.sha1 = hash.sha.sha1;
35084 hash.sha256 = hash.sha.sha256;
35085 hash.sha224 = hash.sha.sha224;
35086 hash.sha384 = hash.sha.sha384;
35087 hash.sha512 = hash.sha.sha512;
35088 hash.ripemd160 = hash.ripemd.ripemd160;
35090 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
35091 var hash = require('../hash');
35092 var utils = hash.utils;
35093 var assert = utils.assert;
35095 function BlockHash() {
35096 this.pending = null;
35097 this.pendingTotal =
0;
35098 this.blockSize = this.constructor.blockSize;
35099 this.outSize = this.constructor.outSize;
35100 this.hmacStrength = this.constructor.hmacStrength;
35101 this.padLength = this.constructor.padLength /
8;
35102 this.endian = 'big';
35104 this._delta8 = this.blockSize /
8;
35105 this._delta32 = this.blockSize /
32;
35107 exports.BlockHash = BlockHash;
35109 BlockHash.prototype.update = function update(msg, enc) {
35110 // Convert message to array, pad it, and join into
32bit blocks
35111 msg = utils.toArray(msg, enc);
35113 this.pending = msg;
35115 this.pending = this.pending.concat(msg);
35116 this.pendingTotal += msg.length;
35118 // Enough data, try updating
35119 if (this.pending.length
>= this._delta8) {
35120 msg = this.pending;
35122 // Process pending data in blocks
35123 var r = msg.length % this._delta8;
35124 this.pending = msg.slice(msg.length - r, msg.length);
35125 if (this.pending.length ===
0)
35126 this.pending = null;
35128 msg = utils.join32(msg,
0, msg.length - r, this.endian);
35129 for (var i =
0; i < msg.length; i += this._delta32)
35130 this._update(msg, i, i + this._delta32);
35136 BlockHash.prototype.digest = function digest(enc) {
35137 this.update(this._pad());
35138 assert(this.pending === null);
35140 return this._digest(enc);
35143 BlockHash.prototype._pad = function pad() {
35144 var len = this.pendingTotal;
35145 var bytes = this._delta8;
35146 var k = bytes - ((len + this.padLength) % bytes);
35147 var res = new Array(k + this.padLength);
35149 for (var i =
1; i < k; i++)
35154 if (this.endian === 'big') {
35155 for (var t =
8; t < this.padLength; t++)
35162 res[i++] = (len
>>> 24) &
0xff;
35163 res[i++] = (len
>>> 16) &
0xff;
35164 res[i++] = (len
>>> 8) &
0xff;
35165 res[i++] = len &
0xff;
35167 res[i++] = len &
0xff;
35168 res[i++] = (len
>>> 8) &
0xff;
35169 res[i++] = (len
>>> 16) &
0xff;
35170 res[i++] = (len
>>> 24) &
0xff;
35176 for (var t =
8; t < this.padLength; t++)
35183 },{
"../hash":
57}],
59:[function(require,module,exports){
35184 var hmac = exports;
35186 var hash = require('../hash');
35187 var utils = hash.utils;
35188 var assert = utils.assert;
35190 function Hmac(hash, key, enc) {
35191 if (!(this instanceof Hmac))
35192 return new Hmac(hash, key, enc);
35194 this.blockSize = hash.blockSize /
8;
35195 this.outSize = hash.outSize /
8;
35199 this._init(utils.toArray(key, enc));
35201 module.exports = Hmac;
35203 Hmac.prototype._init = function init(key) {
35204 // Shorten key, if needed
35205 if (key.length
> this.blockSize)
35206 key = new this.Hash().update(key).digest();
35207 assert(key.length <= this.blockSize);
35209 // Add padding to key
35210 for (var i = key.length; i < this.blockSize; i++)
35213 for (var i =
0; i < key.length; i++)
35215 this.inner = new this.Hash().update(key);
35217 //
0x36 ^
0x5c =
0x6a
35218 for (var i =
0; i < key.length; i++)
35220 this.outer = new this.Hash().update(key);
35223 Hmac.prototype.update = function update(msg, enc) {
35224 this.inner.update(msg, enc);
35228 Hmac.prototype.digest = function digest(enc) {
35229 this.outer.update(this.inner.digest());
35230 return this.outer.digest(enc);
35233 },{"../hash":
57}],
60:[function(require,module,exports){
35234 var hash = require('../hash');
35235 var utils = hash.utils;
35237 var rotl32 = utils.rotl32;
35238 var sum32 = utils.sum32;
35239 var sum32_3 = utils.sum32_3;
35240 var sum32_4 = utils.sum32_4;
35241 var BlockHash = hash.common.BlockHash;
35243 function RIPEMD160() {
35244 if (!(this instanceof RIPEMD160))
35245 return new RIPEMD160();
35247 BlockHash.call(this);
35249 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
35250 this.endian = 'little';
35252 utils.inherits(RIPEMD160, BlockHash);
35253 exports.ripemd160 = RIPEMD160;
35255 RIPEMD160.blockSize =
512;
35256 RIPEMD160.outSize =
160;
35257 RIPEMD160.hmacStrength =
192;
35258 RIPEMD160.padLength =
64;
35260 RIPEMD160.prototype._update = function update(msg, start) {
35271 for (var j =
0; j <
80; j++) {
35274 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
35284 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
35289 Dh = rotl32(Ch,
10);
35293 T = sum32_3(this.h[
1], C, Dh);
35294 this.h[
1] = sum32_3(this.h[
2], D, Eh);
35295 this.h[
2] = sum32_3(this.h[
3], E, Ah);
35296 this.h[
3] = sum32_3(this.h[
4], A, Bh);
35297 this.h[
4] = sum32_3(this.h[
0], B, Ch);
35301 RIPEMD160.prototype._digest = function digest(enc) {
35303 return utils.toHex32(this.h, 'little');
35305 return utils.split32(this.h, 'little');
35308 function f(j, x, y, z) {
35312 return (x & y) | ((~x) & z);
35314 return (x | (~y)) ^ z;
35316 return (x & z) | (y & (~z));
35318 return x ^ (y | (~z));
35348 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
35349 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
35350 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
35351 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
35352 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
35356 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
35357 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
35358 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
35359 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
35360 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
35364 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
35365 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
35366 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
35367 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
35368 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
35372 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
35373 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
35374 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
35375 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
35376 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
35379 },{"../hash":
57}],
61:[function(require,module,exports){
35380 var hash = require('../hash');
35381 var utils = hash.utils;
35382 var assert = utils.assert;
35384 var rotr32 = utils.rotr32;
35385 var rotl32 = utils.rotl32;
35386 var sum32 = utils.sum32;
35387 var sum32_4 = utils.sum32_4;
35388 var sum32_5 = utils.sum32_5;
35389 var rotr64_hi = utils.rotr64_hi;
35390 var rotr64_lo = utils.rotr64_lo;
35391 var shr64_hi = utils.shr64_hi;
35392 var shr64_lo = utils.shr64_lo;
35393 var sum64 = utils.sum64;
35394 var sum64_hi = utils.sum64_hi;
35395 var sum64_lo = utils.sum64_lo;
35396 var sum64_4_hi = utils.sum64_4_hi;
35397 var sum64_4_lo = utils.sum64_4_lo;
35398 var sum64_5_hi = utils.sum64_5_hi;
35399 var sum64_5_lo = utils.sum64_5_lo;
35400 var BlockHash = hash.common.BlockHash;
35403 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
35404 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
35405 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
35406 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
35407 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
35408 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
35409 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
35410 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
35411 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
35412 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
35413 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
35414 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
35415 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
35416 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
35417 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
35418 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
35422 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
35423 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
35424 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
35425 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
35426 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
35427 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
35428 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
35429 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
35430 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
35431 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
35432 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
35433 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
35434 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
35435 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
35436 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
35437 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
35438 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
35439 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
35440 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
35441 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
35442 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
35443 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
35444 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
35445 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
35446 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
35447 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
35448 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
35449 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
35450 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
35451 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
35452 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
35453 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
35454 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
35455 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
35456 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
35457 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
35458 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
35459 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
35460 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
35461 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
35465 0x5A827999,
0x6ED9EBA1,
35466 0x8F1BBCDC,
0xCA62C1D6
35469 function SHA256() {
35470 if (!(this instanceof SHA256))
35471 return new SHA256();
35473 BlockHash.call(this);
35474 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
35475 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
35477 this.W = new Array(
64);
35479 utils.inherits(SHA256, BlockHash);
35480 exports.sha256 = SHA256;
35482 SHA256.blockSize =
512;
35483 SHA256.outSize =
256;
35484 SHA256.hmacStrength =
192;
35485 SHA256.padLength =
64;
35487 SHA256.prototype._update = function _update(msg, start) {
35490 for (var i =
0; i <
16; i++)
35491 W[i] = msg[start + i];
35492 for (; i < W.length; i++)
35493 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
35504 assert(this.k.length === W.length);
35505 for (var i =
0; i < W.length; i++) {
35506 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
35507 var T2 = sum32(s0_256(a), maj32(a, b, c));
35518 this.h[
0] = sum32(this.h[
0], a);
35519 this.h[
1] = sum32(this.h[
1], b);
35520 this.h[
2] = sum32(this.h[
2], c);
35521 this.h[
3] = sum32(this.h[
3], d);
35522 this.h[
4] = sum32(this.h[
4], e);
35523 this.h[
5] = sum32(this.h[
5], f);
35524 this.h[
6] = sum32(this.h[
6], g);
35525 this.h[
7] = sum32(this.h[
7], h);
35528 SHA256.prototype._digest = function digest(enc) {
35530 return utils.toHex32(this.h, 'big');
35532 return utils.split32(this.h, 'big');
35535 function SHA224() {
35536 if (!(this instanceof SHA224))
35537 return new SHA224();
35540 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
35541 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
35543 utils.inherits(SHA224, SHA256);
35544 exports.sha224 = SHA224;
35546 SHA224.blockSize =
512;
35547 SHA224.outSize =
224;
35548 SHA224.hmacStrength =
192;
35549 SHA224.padLength =
64;
35551 SHA224.prototype._digest = function digest(enc) {
35552 // Just truncate output
35554 return utils.toHex32(this.h.slice(
0,
7), 'big');
35556 return utils.split32(this.h.slice(
0,
7), 'big');
35559 function SHA512() {
35560 if (!(this instanceof SHA512))
35561 return new SHA512();
35563 BlockHash.call(this);
35564 this.h = [
0x6a09e667,
0xf3bcc908,
35565 0xbb67ae85,
0x84caa73b,
35566 0x3c6ef372,
0xfe94f82b,
35567 0xa54ff53a,
0x5f1d36f1,
35568 0x510e527f,
0xade682d1,
35569 0x9b05688c,
0x2b3e6c1f,
35570 0x1f83d9ab,
0xfb41bd6b,
35571 0x5be0cd19,
0x137e2179 ];
35573 this.W = new Array(
160);
35575 utils.inherits(SHA512, BlockHash);
35576 exports.sha512 = SHA512;
35578 SHA512.blockSize =
1024;
35579 SHA512.outSize =
512;
35580 SHA512.hmacStrength =
192;
35581 SHA512.padLength =
128;
35583 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
35586 //
32 x
32bit words
35587 for (var i =
0; i <
32; i++)
35588 W[i] = msg[start + i];
35589 for (; i < W.length; i +=
2) {
35590 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
35591 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
35592 var c1_hi = W[i -
14]; // i -
7
35593 var c1_lo = W[i -
13];
35594 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
35595 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
35596 var c3_hi = W[i -
32]; // i -
16
35597 var c3_lo = W[i -
31];
35599 W[i] = sum64_4_hi(c0_hi, c0_lo,
35603 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
35610 SHA512.prototype._update = function _update(msg, start) {
35611 this._prepareBlock(msg, start);
35615 var ah = this.h[
0];
35616 var al = this.h[
1];
35617 var bh = this.h[
2];
35618 var bl = this.h[
3];
35619 var ch = this.h[
4];
35620 var cl = this.h[
5];
35621 var dh = this.h[
6];
35622 var dl = this.h[
7];
35623 var eh = this.h[
8];
35624 var el = this.h[
9];
35625 var fh = this.h[
10];
35626 var fl = this.h[
11];
35627 var gh = this.h[
12];
35628 var gl = this.h[
13];
35629 var hh = this.h[
14];
35630 var hl = this.h[
15];
35632 assert(this.k.length === W.length);
35633 for (var i =
0; i < W.length; i +=
2) {
35636 var c1_hi = s1_512_hi(eh, el);
35637 var c1_lo = s1_512_lo(eh, el);
35638 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
35639 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
35640 var c3_hi = this.k[i];
35641 var c3_lo = this.k[i +
1];
35643 var c4_lo = W[i +
1];
35645 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
35650 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
35656 var c0_hi = s0_512_hi(ah, al);
35657 var c0_lo = s0_512_lo(ah, al);
35658 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
35659 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
35661 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
35662 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
35673 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
35674 el = sum64_lo(dl, dl, T1_hi, T1_lo);
35685 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
35686 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
35689 sum64(this.h,
0, ah, al);
35690 sum64(this.h,
2, bh, bl);
35691 sum64(this.h,
4, ch, cl);
35692 sum64(this.h,
6, dh, dl);
35693 sum64(this.h,
8, eh, el);
35694 sum64(this.h,
10, fh, fl);
35695 sum64(this.h,
12, gh, gl);
35696 sum64(this.h,
14, hh, hl);
35699 SHA512.prototype._digest = function digest(enc) {
35701 return utils.toHex32(this.h, 'big');
35703 return utils.split32(this.h, 'big');
35706 function SHA384() {
35707 if (!(this instanceof SHA384))
35708 return new SHA384();
35711 this.h = [
0xcbbb9d5d,
0xc1059ed8,
35712 0x629a292a,
0x367cd507,
35713 0x9159015a,
0x3070dd17,
35714 0x152fecd8,
0xf70e5939,
35715 0x67332667,
0xffc00b31,
35716 0x8eb44a87,
0x68581511,
35717 0xdb0c2e0d,
0x64f98fa7,
35718 0x47b5481d,
0xbefa4fa4 ];
35720 utils.inherits(SHA384, SHA512);
35721 exports.sha384 = SHA384;
35723 SHA384.blockSize =
1024;
35724 SHA384.outSize =
384;
35725 SHA384.hmacStrength =
192;
35726 SHA384.padLength =
128;
35728 SHA384.prototype._digest = function digest(enc) {
35730 return utils.toHex32(this.h.slice(
0,
12), 'big');
35732 return utils.split32(this.h.slice(
0,
12), 'big');
35736 if (!(this instanceof SHA1))
35739 BlockHash.call(this);
35740 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
35741 0x10325476,
0xc3d2e1f0 ];
35742 this.W = new Array(
80);
35745 utils.inherits(SHA1, BlockHash);
35746 exports.sha1 = SHA1;
35748 SHA1.blockSize =
512;
35749 SHA1.outSize =
160;
35750 SHA1.hmacStrength =
80;
35751 SHA1.padLength =
64;
35753 SHA1.prototype._update = function _update(msg, start) {
35756 for (var i =
0; i <
16; i++)
35757 W[i] = msg[start + i];
35759 for(; i < W.length; i++)
35760 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
35768 for (var i =
0; i < W.length; i++) {
35769 var s = ~~(i /
20);
35770 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
35778 this.h[
0] = sum32(this.h[
0], a);
35779 this.h[
1] = sum32(this.h[
1], b);
35780 this.h[
2] = sum32(this.h[
2], c);
35781 this.h[
3] = sum32(this.h[
3], d);
35782 this.h[
4] = sum32(this.h[
4], e);
35785 SHA1.prototype._digest = function digest(enc) {
35787 return utils.toHex32(this.h, 'big');
35789 return utils.split32(this.h, 'big');
35792 function ch32(x, y, z) {
35793 return (x & y) ^ ((~x) & z);
35796 function maj32(x, y, z) {
35797 return (x & y) ^ (x & z) ^ (y & z);
35800 function p32(x, y, z) {
35804 function s0_256(x) {
35805 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
35808 function s1_256(x) {
35809 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
35812 function g0_256(x) {
35813 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
35816 function g1_256(x) {
35817 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
35820 function ft_1(s, x, y, z) {
35822 return ch32(x, y, z);
35823 if (s ===
1 || s ===
3)
35824 return p32(x, y, z);
35826 return maj32(x, y, z);
35829 function ch64_hi(xh, xl, yh, yl, zh, zl) {
35830 var r = (xh & yh) ^ ((~xh) & zh);
35836 function ch64_lo(xh, xl, yh, yl, zh, zl) {
35837 var r = (xl & yl) ^ ((~xl) & zl);
35843 function maj64_hi(xh, xl, yh, yl, zh, zl) {
35844 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
35850 function maj64_lo(xh, xl, yh, yl, zh, zl) {
35851 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
35857 function s0_512_hi(xh, xl) {
35858 var c0_hi = rotr64_hi(xh, xl,
28);
35859 var c1_hi = rotr64_hi(xl, xh,
2); //
34
35860 var c2_hi = rotr64_hi(xl, xh,
7); //
39
35862 var r = c0_hi ^ c1_hi ^ c2_hi;
35868 function s0_512_lo(xh, xl) {
35869 var c0_lo = rotr64_lo(xh, xl,
28);
35870 var c1_lo = rotr64_lo(xl, xh,
2); //
34
35871 var c2_lo = rotr64_lo(xl, xh,
7); //
39
35873 var r = c0_lo ^ c1_lo ^ c2_lo;
35879 function s1_512_hi(xh, xl) {
35880 var c0_hi = rotr64_hi(xh, xl,
14);
35881 var c1_hi = rotr64_hi(xh, xl,
18);
35882 var c2_hi = rotr64_hi(xl, xh,
9); //
41
35884 var r = c0_hi ^ c1_hi ^ c2_hi;
35890 function s1_512_lo(xh, xl) {
35891 var c0_lo = rotr64_lo(xh, xl,
14);
35892 var c1_lo = rotr64_lo(xh, xl,
18);
35893 var c2_lo = rotr64_lo(xl, xh,
9); //
41
35895 var r = c0_lo ^ c1_lo ^ c2_lo;
35901 function g0_512_hi(xh, xl) {
35902 var c0_hi = rotr64_hi(xh, xl,
1);
35903 var c1_hi = rotr64_hi(xh, xl,
8);
35904 var c2_hi = shr64_hi(xh, xl,
7);
35906 var r = c0_hi ^ c1_hi ^ c2_hi;
35912 function g0_512_lo(xh, xl) {
35913 var c0_lo = rotr64_lo(xh, xl,
1);
35914 var c1_lo = rotr64_lo(xh, xl,
8);
35915 var c2_lo = shr64_lo(xh, xl,
7);
35917 var r = c0_lo ^ c1_lo ^ c2_lo;
35923 function g1_512_hi(xh, xl) {
35924 var c0_hi = rotr64_hi(xh, xl,
19);
35925 var c1_hi = rotr64_hi(xl, xh,
29); //
61
35926 var c2_hi = shr64_hi(xh, xl,
6);
35928 var r = c0_hi ^ c1_hi ^ c2_hi;
35934 function g1_512_lo(xh, xl) {
35935 var c0_lo = rotr64_lo(xh, xl,
19);
35936 var c1_lo = rotr64_lo(xl, xh,
29); //
61
35937 var c2_lo = shr64_lo(xh, xl,
6);
35939 var r = c0_lo ^ c1_lo ^ c2_lo;
35945 },{
"../hash":
57}],
62:[function(require,module,exports){
35946 var utils = exports;
35947 var inherits = require('inherits');
35949 function toArray(msg, enc) {
35950 if (Array.isArray(msg))
35951 return msg.slice();
35955 if (typeof msg === 'string') {
35957 for (var i =
0; i < msg.length; i++) {
35958 var c = msg.charCodeAt(i);
35966 } else if (enc === 'hex') {
35967 msg = msg.replace(/[^a-z0-
9]+/ig, '');
35968 if (msg.length %
2 !==
0)
35970 for (var i =
0; i < msg.length; i +=
2)
35971 res.push(parseInt(msg[i] + msg[i +
1],
16));
35974 for (var i =
0; i < msg.length; i++)
35975 res[i] = msg[i] |
0;
35979 utils.toArray = toArray;
35981 function toHex(msg) {
35983 for (var i =
0; i < msg.length; i++)
35984 res += zero2(msg[i].toString(
16));
35987 utils.toHex = toHex;
35989 function htonl(w) {
35990 var res = (w
>>> 24) |
35991 ((w
>>> 8) &
0xff00) |
35992 ((w <<
8) &
0xff0000) |
35993 ((w &
0xff) <<
24);
35996 utils.htonl = htonl;
35998 function toHex32(msg, endian) {
36000 for (var i =
0; i < msg.length; i++) {
36002 if (endian === 'little')
36004 res += zero8(w.toString(
16));
36008 utils.toHex32 = toHex32;
36010 function zero2(word) {
36011 if (word.length ===
1)
36016 utils.zero2 = zero2;
36018 function zero8(word) {
36019 if (word.length ===
7)
36021 else if (word.length ===
6)
36022 return '
00' + word;
36023 else if (word.length ===
5)
36024 return '
000' + word;
36025 else if (word.length ===
4)
36026 return '
0000' + word;
36027 else if (word.length ===
3)
36028 return '
00000' + word;
36029 else if (word.length ===
2)
36030 return '
000000' + word;
36031 else if (word.length ===
1)
36032 return '
0000000' + word;
36036 utils.zero8 = zero8;
36038 function join32(msg, start, end, endian) {
36039 var len = end - start;
36040 assert(len %
4 ===
0);
36041 var res = new Array(len /
4);
36042 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
36044 if (endian === 'big')
36045 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
36047 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
36052 utils.join32 = join32;
36054 function split32(msg, endian) {
36055 var res = new Array(msg.length *
4);
36056 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
36058 if (endian === 'big') {
36060 res[k +
1] = (m
>>> 16) &
0xff;
36061 res[k +
2] = (m
>>> 8) &
0xff;
36062 res[k +
3] = m &
0xff;
36064 res[k +
3] = m
>>> 24;
36065 res[k +
2] = (m
>>> 16) &
0xff;
36066 res[k +
1] = (m
>>> 8) &
0xff;
36072 utils.split32 = split32;
36074 function rotr32(w, b) {
36075 return (w
>>> b) | (w << (
32 - b));
36077 utils.rotr32 = rotr32;
36079 function rotl32(w, b) {
36080 return (w << b) | (w
>>> (
32 - b));
36082 utils.rotl32 = rotl32;
36084 function sum32(a, b) {
36085 return (a + b)
>>> 0;
36087 utils.sum32 = sum32;
36089 function sum32_3(a, b, c) {
36090 return (a + b + c)
>>> 0;
36092 utils.sum32_3 = sum32_3;
36094 function sum32_4(a, b, c, d) {
36095 return (a + b + c + d)
>>> 0;
36097 utils.sum32_4 = sum32_4;
36099 function sum32_5(a, b, c, d, e) {
36100 return (a + b + c + d + e)
>>> 0;
36102 utils.sum32_5 = sum32_5;
36104 function assert(cond, msg) {
36106 throw new Error(msg || 'Assertion failed');
36108 utils.assert = assert;
36110 utils.inherits = inherits;
36112 function sum64(buf, pos, ah, al) {
36114 var bl = buf[pos +
1];
36116 var lo = (al + bl)
>>> 0;
36117 var hi = (lo < al ?
1 :
0) + ah + bh;
36118 buf[pos] = hi
>>> 0;
36121 exports.sum64 = sum64;
36123 function sum64_hi(ah, al, bh, bl) {
36124 var lo = (al + bl)
>>> 0;
36125 var hi = (lo < al ?
1 :
0) + ah + bh;
36128 exports.sum64_hi = sum64_hi;
36130 function sum64_lo(ah, al, bh, bl) {
36134 exports.sum64_lo = sum64_lo;
36136 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
36139 lo = (lo + bl)
>>> 0;
36140 carry += lo < al ?
1 :
0;
36141 lo = (lo + cl)
>>> 0;
36142 carry += lo < cl ?
1 :
0;
36143 lo = (lo + dl)
>>> 0;
36144 carry += lo < dl ?
1 :
0;
36146 var hi = ah + bh + ch + dh + carry;
36149 exports.sum64_4_hi = sum64_4_hi;
36151 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
36152 var lo = al + bl + cl + dl;
36155 exports.sum64_4_lo = sum64_4_lo;
36157 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
36160 lo = (lo + bl)
>>> 0;
36161 carry += lo < al ?
1 :
0;
36162 lo = (lo + cl)
>>> 0;
36163 carry += lo < cl ?
1 :
0;
36164 lo = (lo + dl)
>>> 0;
36165 carry += lo < dl ?
1 :
0;
36166 lo = (lo + el)
>>> 0;
36167 carry += lo < el ?
1 :
0;
36169 var hi = ah + bh + ch + dh + eh + carry;
36172 exports.sum64_5_hi = sum64_5_hi;
36174 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
36175 var lo = al + bl + cl + dl + el;
36179 exports.sum64_5_lo = sum64_5_lo;
36181 function rotr64_hi(ah, al, num) {
36182 var r = (al << (
32 - num)) | (ah
>>> num);
36185 exports.rotr64_hi = rotr64_hi;
36187 function rotr64_lo(ah, al, num) {
36188 var r = (ah << (
32 - num)) | (al
>>> num);
36191 exports.rotr64_lo = rotr64_lo;
36193 function shr64_hi(ah, al, num) {
36196 exports.shr64_hi = shr64_hi;
36198 function shr64_lo(ah, al, num) {
36199 var r = (ah << (
32 - num)) | (al
>>> num);
36202 exports.shr64_lo = shr64_lo;
36204 },{
"inherits":
63}],
63:[function(require,module,exports){
36205 arguments[
4][
9][
0].apply(exports,arguments)
36206 },{
"dup":
9}],
64:[function(require,module,exports){
36208 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
36209 * @param {String} str the string input value
36210 * @return {Boolean} a boolean if it is or is not hex prefixed
36211 * @throws if the str input is not a string
36213 module.exports = function isHexPrefixed(str) {
36214 if (typeof str !== 'string') {
36215 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
36218 return str.slice(
0,
2) === '
0x';
36221 },{}],
65:[function(require,module,exports){
36223 module.exports = require('./lib/api')(require('./lib/keccak'))
36225 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
36227 var createKeccak = require('./keccak')
36228 var createShake = require('./shake')
36230 module.exports = function (KeccakState) {
36231 var Keccak = createKeccak(KeccakState)
36232 var Shake = createShake(KeccakState)
36234 return function (algorithm, options) {
36235 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
36237 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
36238 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
36239 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
36240 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
36242 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
36243 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
36244 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
36245 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
36247 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
36248 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
36250 default: throw new Error('Invald algorithm: ' + algorithm)
36255 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
36256 (function (Buffer){
36258 var Transform = require('stream').Transform
36259 var inherits = require('inherits')
36261 module.exports = function (KeccakState) {
36262 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
36263 Transform.call(this, options)
36266 this._capacity = capacity
36267 this._delimitedSuffix = delimitedSuffix
36268 this._hashBitLength = hashBitLength
36269 this._options = options
36271 this._state = new KeccakState()
36272 this._state.initialize(rate, capacity)
36273 this._finalized = false
36276 inherits(Keccak, Transform)
36278 Keccak.prototype._transform = function (chunk, encoding, callback) {
36281 this.update(chunk, encoding)
36289 Keccak.prototype._flush = function (callback) {
36292 this.push(this.digest())
36300 Keccak.prototype.update = function (data, encoding) {
36301 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
36302 if (this._finalized) throw new Error('Digest already called')
36303 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
36305 this._state.absorb(data)
36310 Keccak.prototype.digest = function (encoding) {
36311 if (this._finalized) throw new Error('Digest already called')
36312 this._finalized = true
36314 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
36315 var digest = this._state.squeeze(this._hashBitLength /
8)
36316 if (encoding !== undefined) digest = digest.toString(encoding)
36323 // remove result from memory
36324 Keccak.prototype._resetState = function () {
36325 this._state.initialize(this._rate, this._capacity)
36329 // because sometimes we need hash right now and little later
36330 Keccak.prototype._clone = function () {
36331 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
36332 this._state.copy(clone._state)
36333 clone._finalized = this._finalized
36341 }).call(this,require(
"buffer").Buffer)
36342 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
36343 (function (Buffer){
36345 var Transform = require('stream').Transform
36346 var inherits = require('inherits')
36348 module.exports = function (KeccakState) {
36349 function Shake (rate, capacity, delimitedSuffix, options) {
36350 Transform.call(this, options)
36353 this._capacity = capacity
36354 this._delimitedSuffix = delimitedSuffix
36355 this._options = options
36357 this._state = new KeccakState()
36358 this._state.initialize(rate, capacity)
36359 this._finalized = false
36362 inherits(Shake, Transform)
36364 Shake.prototype._transform = function (chunk, encoding, callback) {
36367 this.update(chunk, encoding)
36375 Shake.prototype._flush = function () {}
36377 Shake.prototype._read = function (size) {
36378 this.push(this.squeeze(size))
36381 Shake.prototype.update = function (data, encoding) {
36382 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
36383 if (this._finalized) throw new Error('Squeeze already called')
36384 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
36386 this._state.absorb(data)
36391 Shake.prototype.squeeze = function (dataByteLength, encoding) {
36392 if (!this._finalized) {
36393 this._finalized = true
36394 this._state.absorbLastFewBits(this._delimitedSuffix)
36397 var data = this._state.squeeze(dataByteLength)
36398 if (encoding !== undefined) data = data.toString(encoding)
36403 Shake.prototype._resetState = function () {
36404 this._state.initialize(this._rate, this._capacity)
36408 Shake.prototype._clone = function () {
36409 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
36410 this._state.copy(clone._state)
36411 clone._finalized = this._finalized
36419 }).call(this,require(
"buffer").Buffer)
36420 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
36422 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]
36424 exports.p1600 = function (s) {
36425 for (var round =
0; round <
24; ++round) {
36427 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
36428 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
36429 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
36430 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
36431 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
36432 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
36433 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
36434 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
36435 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
36436 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
36438 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
36439 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
36440 var t1slo0 = s[
0] ^ lo
36441 var t1shi0 = s[
1] ^ hi
36442 var t1slo5 = s[
10] ^ lo
36443 var t1shi5 = s[
11] ^ hi
36444 var t1slo10 = s[
20] ^ lo
36445 var t1shi10 = s[
21] ^ hi
36446 var t1slo15 = s[
30] ^ lo
36447 var t1shi15 = s[
31] ^ hi
36448 var t1slo20 = s[
40] ^ lo
36449 var t1shi20 = s[
41] ^ hi
36450 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
36451 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
36452 var t1slo1 = s[
2] ^ lo
36453 var t1shi1 = s[
3] ^ hi
36454 var t1slo6 = s[
12] ^ lo
36455 var t1shi6 = s[
13] ^ hi
36456 var t1slo11 = s[
22] ^ lo
36457 var t1shi11 = s[
23] ^ hi
36458 var t1slo16 = s[
32] ^ lo
36459 var t1shi16 = s[
33] ^ hi
36460 var t1slo21 = s[
42] ^ lo
36461 var t1shi21 = s[
43] ^ hi
36462 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
36463 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
36464 var t1slo2 = s[
4] ^ lo
36465 var t1shi2 = s[
5] ^ hi
36466 var t1slo7 = s[
14] ^ lo
36467 var t1shi7 = s[
15] ^ hi
36468 var t1slo12 = s[
24] ^ lo
36469 var t1shi12 = s[
25] ^ hi
36470 var t1slo17 = s[
34] ^ lo
36471 var t1shi17 = s[
35] ^ hi
36472 var t1slo22 = s[
44] ^ lo
36473 var t1shi22 = s[
45] ^ hi
36474 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
36475 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
36476 var t1slo3 = s[
6] ^ lo
36477 var t1shi3 = s[
7] ^ hi
36478 var t1slo8 = s[
16] ^ lo
36479 var t1shi8 = s[
17] ^ hi
36480 var t1slo13 = s[
26] ^ lo
36481 var t1shi13 = s[
27] ^ hi
36482 var t1slo18 = s[
36] ^ lo
36483 var t1shi18 = s[
37] ^ hi
36484 var t1slo23 = s[
46] ^ lo
36485 var t1shi23 = s[
47] ^ hi
36486 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
36487 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
36488 var t1slo4 = s[
8] ^ lo
36489 var t1shi4 = s[
9] ^ hi
36490 var t1slo9 = s[
18] ^ lo
36491 var t1shi9 = s[
19] ^ hi
36492 var t1slo14 = s[
28] ^ lo
36493 var t1shi14 = s[
29] ^ hi
36494 var t1slo19 = s[
38] ^ lo
36495 var t1shi19 = s[
39] ^ hi
36496 var t1slo24 = s[
48] ^ lo
36497 var t1shi24 = s[
49] ^ hi
36500 var t2slo0 = t1slo0
36501 var t2shi0 = t1shi0
36502 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
36503 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
36504 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
36505 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
36506 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
36507 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
36508 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
36509 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
36510 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
36511 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
36512 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
36513 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
36514 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
36515 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
36516 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
36517 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
36518 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
36519 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
36520 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
36521 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
36522 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
36523 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
36524 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
36525 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
36526 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
36527 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
36528 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
36529 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
36530 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
36531 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
36532 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
36533 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
36534 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
36535 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
36536 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
36537 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
36538 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
36539 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
36540 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
36541 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
36542 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
36543 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
36544 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
36545 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
36546 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
36547 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
36548 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
36549 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
36552 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
36553 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
36554 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
36555 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
36556 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
36557 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
36558 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
36559 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
36560 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
36561 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
36562 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
36563 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
36564 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
36565 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
36566 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
36567 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
36568 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
36569 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
36570 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
36571 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
36572 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
36573 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
36574 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
36575 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
36576 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
36577 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
36578 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
36579 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
36580 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
36581 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
36582 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
36583 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
36584 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
36585 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
36586 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
36587 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
36588 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
36589 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
36590 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
36591 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
36592 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
36593 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
36594 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
36595 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
36596 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
36597 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
36598 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
36599 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
36600 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
36601 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
36604 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
36605 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
36609 },{}],
70:[function(require,module,exports){
36610 (function (Buffer){
36612 var keccakState = require('./keccak-state-unroll')
36614 function Keccak () {
36615 // much faster than `new Array(
50)`
36624 this.blockSize = null
36626 this.squeezing = false
36629 Keccak.prototype.initialize = function (rate, capacity) {
36630 for (var i =
0; i <
50; ++i) this.state[i] =
0
36631 this.blockSize = rate /
8
36633 this.squeezing = false
36636 Keccak.prototype.absorb = function (data) {
36637 for (var i =
0; i < data.length; ++i) {
36638 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
36640 if (this.count === this.blockSize) {
36641 keccakState.p1600(this.state)
36647 Keccak.prototype.absorbLastFewBits = function (bits) {
36648 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
36649 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
36650 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
36651 keccakState.p1600(this.state)
36653 this.squeezing = true
36656 Keccak.prototype.squeeze = function (length) {
36657 if (!this.squeezing) this.absorbLastFewBits(
0x01)
36659 var output = Buffer.allocUnsafe(length)
36660 for (var i =
0; i < length; ++i) {
36661 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
36663 if (this.count === this.blockSize) {
36664 keccakState.p1600(this.state)
36672 Keccak.prototype.copy = function (dest) {
36673 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
36674 dest.blockSize = this.blockSize
36675 dest.count = this.count
36676 dest.squeezing = this.squeezing
36679 module.exports = Keccak
36681 }).call(this,require("buffer").Buffer)
36682 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
36683 (function (Buffer){
36686 code.google.com/p/crypto-js
36687 (c)
2009-
2013 by Jeff Mott. All rights reserved.
36688 code.google.com/p/crypto-js/wiki/License
36691 (c)
2012 by Cédric Mesnil. All rights reserved.
36693 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
36695 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
36696 - 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.
36698 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.
36703 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
36704 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
36705 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
36706 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
36707 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
36711 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
36712 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
36713 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
36714 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
36715 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
36719 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
36720 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
36721 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
36722 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
36723 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
36727 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
36728 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
36729 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
36730 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
36731 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
36734 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
36735 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
36737 function bytesToWords (bytes) {
36739 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
36740 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
36745 function wordsToBytes (words) {
36747 for (var b =
0; b < words.length *
32; b +=
8) {
36748 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
36753 function processBlock (H, M, offset) {
36755 for (var i =
0; i <
16; i++) {
36756 var offset_i = offset + i
36757 var M_offset_i = M[offset_i]
36761 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
36762 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
36766 // Working variables
36767 var al, bl, cl, dl, el
36768 var ar, br, cr, dr, er
36778 for (i =
0; i <
80; i +=
1) {
36779 t = (al + M[offset + zl[i]]) |
0
36781 t += f1(bl, cl, dl) + hl[
0]
36782 } else if (i <
32) {
36783 t += f2(bl, cl, dl) + hl[
1]
36784 } else if (i <
48) {
36785 t += f3(bl, cl, dl) + hl[
2]
36786 } else if (i <
64) {
36787 t += f4(bl, cl, dl) + hl[
3]
36788 } else {// if (i
<80) {
36789 t += f5(bl, cl, dl) + hl[
4]
36800 t = (ar + M[offset + zr[i]]) |
0
36802 t += f5(br, cr, dr) + hr[
0]
36803 } else if (i <
32) {
36804 t += f4(br, cr, dr) + hr[
1]
36805 } else if (i <
48) {
36806 t += f3(br, cr, dr) + hr[
2]
36807 } else if (i <
64) {
36808 t += f2(br, cr, dr) + hr[
3]
36809 } else {// if (i
<80) {
36810 t += f1(br, cr, dr) + hr[
4]
36823 // intermediate hash value
36824 t = (H[
1] + cl + dr) |
0
36825 H[
1] = (H[
2] + dl + er) |
0
36826 H[
2] = (H[
3] + el + ar) |
0
36827 H[
3] = (H[
4] + al + br) |
0
36828 H[
4] = (H[
0] + bl + cr) |
0
36832 function f1 (x, y, z) {
36833 return ((x) ^ (y) ^ (z))
36836 function f2 (x, y, z) {
36837 return (((x) & (y)) | ((~x) & (z)))
36840 function f3 (x, y, z) {
36841 return (((x) | (~(y))) ^ (z))
36844 function f4 (x, y, z) {
36845 return (((x) & (z)) | ((y) & (~(z))))
36848 function f5 (x, y, z) {
36849 return ((x) ^ ((y) | (~(z))))
36852 function rotl (x, n) {
36853 return (x << n) | (x
>>> (
32 - n))
36856 function ripemd160 (message) {
36857 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
36859 if (typeof message === 'string') {
36860 message = new Buffer(message, 'utf8')
36863 var m = bytesToWords(message)
36865 var nBitsLeft = message.length *
8
36866 var nBitsTotal = message.length *
8
36869 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
36870 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
36871 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
36872 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
36875 for (var i =
0; i < m.length; i +=
16) {
36876 processBlock(H, m, i)
36880 for (i =
0; i <
5; i++) {
36885 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
36886 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
36889 var digestbytes = wordsToBytes(H)
36890 return new Buffer(digestbytes)
36893 module.exports = ripemd160
36895 }).call(this,require(
"buffer").Buffer)
36896 },{
"buffer":
5}],
72:[function(require,module,exports){
36897 (function (Buffer){
36898 const assert = require('assert')
36900 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
36901 * This function takes in a data, convert it to buffer if not, and a length for recursion
36903 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
36904 * @returns {Buffer} - returns buffer of encoded data
36906 exports.encode = function (input) {
36907 if (input instanceof Array) {
36909 for (var i =
0; i < input.length; i++) {
36910 output.push(exports.encode(input[i]))
36912 var buf = Buffer.concat(output)
36913 return Buffer.concat([encodeLength(buf.length,
192), buf])
36915 input = toBuffer(input)
36916 if (input.length ===
1 && input[
0] <
128) {
36919 return Buffer.concat([encodeLength(input.length,
128), input])
36924 function safeParseInt (v, base) {
36925 if (v.slice(
0,
2) === '
00') {
36926 throw (new Error('invalid RLP: extra zeros'))
36929 return parseInt(v, base)
36932 function encodeLength (len, offset) {
36934 return new Buffer([len + offset])
36936 var hexLength = intToHex(len)
36937 var lLength = hexLength.length /
2
36938 var firstByte = intToHex(offset +
55 + lLength)
36939 return new Buffer(firstByte + hexLength, 'hex')
36944 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
36945 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
36946 * @returns {Array} - returns decode Array of Buffers containg the original message
36948 exports.decode = function (input, stream) {
36949 if (!input || input.length ===
0) {
36950 return new Buffer([])
36953 input = toBuffer(input)
36954 var decoded = _decode(input)
36960 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
36961 return decoded.data
36964 exports.getLength = function (input) {
36965 if (!input || input.length ===
0) {
36966 return new Buffer([])
36969 input = toBuffer(input)
36970 var firstByte = input[
0]
36971 if (firstByte <=
0x7f) {
36972 return input.length
36973 } else if (firstByte <=
0xb7) {
36974 return firstByte -
0x7f
36975 } else if (firstByte <=
0xbf) {
36976 return firstByte -
0xb6
36977 } else if (firstByte <=
0xf7) {
36978 // a list between
0-
55 bytes long
36979 return firstByte -
0xbf
36981 // a list over
55 bytes long
36982 var llength = firstByte -
0xf6
36983 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
36984 return llength + length
36988 function _decode (input) {
36989 var length, llength, data, innerRemainder, d
36991 var firstByte = input[
0]
36993 if (firstByte <=
0x7f) {
36994 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
36996 data: input.slice(
0,
1),
36997 remainder: input.slice(
1)
36999 } else if (firstByte <=
0xb7) {
37000 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
37001 // The range of the first byte is [
0x80,
0xb7]
37002 length = firstByte -
0x7f
37004 // set
0x80 null to
0
37005 if (firstByte ===
0x80) {
37006 data = new Buffer([])
37008 data = input.slice(
1, length)
37011 if (length ===
2 && data[
0] <
0x80) {
37012 throw new Error('invalid rlp encoding: byte must be less
0x80')
37017 remainder: input.slice(length)
37019 } else if (firstByte <=
0xbf) {
37020 llength = firstByte -
0xb6
37021 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
37022 data = input.slice(llength, length + llength)
37023 if (data.length < length) {
37024 throw (new Error('invalid RLP'))
37029 remainder: input.slice(length + llength)
37031 } else if (firstByte <=
0xf7) {
37032 // a list between
0-
55 bytes long
37033 length = firstByte -
0xbf
37034 innerRemainder = input.slice(
1, length)
37035 while (innerRemainder.length) {
37036 d = _decode(innerRemainder)
37037 decoded.push(d.data)
37038 innerRemainder = d.remainder
37043 remainder: input.slice(length)
37046 // a list over
55 bytes long
37047 llength = firstByte -
0xf6
37048 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
37049 var totalLength = llength + length
37050 if (totalLength
> input.length) {
37051 throw new Error('invalid rlp: total length is larger than the data')
37054 innerRemainder = input.slice(llength, totalLength)
37055 if (innerRemainder.length ===
0) {
37056 throw new Error('invalid rlp, List has a invalid length')
37059 while (innerRemainder.length) {
37060 d = _decode(innerRemainder)
37061 decoded.push(d.data)
37062 innerRemainder = d.remainder
37066 remainder: input.slice(totalLength)
37071 function isHexPrefixed (str) {
37072 return str.slice(
0,
2) === '
0x'
37075 // Removes
0x from a given String
37076 function stripHexPrefix (str) {
37077 if (typeof str !== 'string') {
37080 return isHexPrefixed(str) ? str.slice(
2) : str
37083 function intToHex (i) {
37084 var hex = i.toString(
16)
37085 if (hex.length %
2) {
37092 function padToEven (a) {
37093 if (a.length %
2) a = '
0' + a
37097 function intToBuffer (i) {
37098 var hex = intToHex(i)
37099 return new Buffer(hex, 'hex')
37102 function toBuffer (v) {
37103 if (!Buffer.isBuffer(v)) {
37104 if (typeof v === 'string') {
37105 if (isHexPrefixed(v)) {
37106 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
37110 } else if (typeof v === 'number') {
37116 } else if (v === null || v === undefined) {
37118 } else if (v.toArray) {
37119 // converts a BN to a Buffer
37120 v = new Buffer(v.toArray())
37122 throw new Error('invalid type')
37128 }).call(this,require("buffer").Buffer)
37129 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
37131 module.exports = require('./lib')(require('./lib/elliptic'))
37133 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
37134 (function (Buffer){
37136 var toString = Object.prototype.toString
37139 exports.isArray = function (value, message) {
37140 if (!Array.isArray(value)) throw TypeError(message)
37143 exports.isBoolean = function (value, message) {
37144 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
37147 exports.isBuffer = function (value, message) {
37148 if (!Buffer.isBuffer(value)) throw TypeError(message)
37151 exports.isFunction = function (value, message) {
37152 if (toString.call(value) !== '[object Function]') throw TypeError(message)
37155 exports.isNumber = function (value, message) {
37156 if (toString.call(value) !== '[object Number]') throw TypeError(message)
37159 exports.isObject = function (value, message) {
37160 if (toString.call(value) !== '[object Object]') throw TypeError(message)
37164 exports.isBufferLength = function (buffer, length, message) {
37165 if (buffer.length !== length) throw RangeError(message)
37168 exports.isBufferLength2 = function (buffer, length1, length2, message) {
37169 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
37172 exports.isLengthGTZero = function (value, message) {
37173 if (value.length ===
0) throw RangeError(message)
37176 exports.isNumberInInterval = function (number, x, y, message) {
37177 if (number <= x || number
>= y) throw RangeError(message)
37180 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
37181 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
37182 (function (Buffer){
37184 var bip66 = require('bip66')
37186 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
37188 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
37190 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37191 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37193 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
37194 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37195 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37196 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
37197 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
37198 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
37199 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37200 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
37201 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
37203 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37204 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37208 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
37210 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
37212 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37213 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37215 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
37216 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37217 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37218 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
37219 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
37220 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
37221 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
37222 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
37223 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37224 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
37225 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
37227 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37228 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37229 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37230 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37234 var ZERO_BUFFER_32 = new Buffer([
37235 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37236 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
37239 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
37240 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
37241 privateKey.copy(result, compressed ?
8 :
9)
37242 publicKey.copy(result, compressed ?
181 :
214)
37246 exports.privateKeyImport = function (privateKey) {
37247 var length = privateKey.length
37251 if (length < index +
1 || privateKey[index] !==
0x30) return
37254 // sequence length constructor
37255 if (length < index +
1 || !(privateKey[index] &
0x80)) return
37257 var lenb = privateKey[index] &
0x7f
37259 if (lenb <
1 || lenb
> 2) return
37260 if (length < index + lenb) return
37263 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
37265 if (length < index + len) return
37267 // sequence element
0: version number (=
1)
37268 if (length < index +
3 ||
37269 privateKey[index] !==
0x02 ||
37270 privateKey[index +
1] !==
0x01 ||
37271 privateKey[index +
2] !==
0x01) {
37276 // sequence element
1: octet string, up to
32 bytes
37277 if (length < index +
2 ||
37278 privateKey[index] !==
0x04 ||
37279 privateKey[index +
1]
> 0x20 ||
37280 length < index +
2 + privateKey[index +
1]) {
37284 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
37287 exports.signatureExport = function (sigObj) {
37288 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
37289 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
37291 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
37292 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
37294 return bip66.encode(r.slice(posR), s.slice(posS))
37297 exports.signatureImport = function (sig) {
37298 var r = new Buffer(ZERO_BUFFER_32)
37299 var s = new Buffer(ZERO_BUFFER_32)
37302 var sigObj = bip66.decode(sig)
37303 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
37304 if (sigObj.r.length
> 32) throw new Error('R length is too long')
37305 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
37306 if (sigObj.s.length
> 32) throw new Error('S length is too long')
37311 sigObj.r.copy(r,
32 - sigObj.r.length)
37312 sigObj.s.copy(s,
32 - sigObj.s.length)
37314 return { r: r, s: s }
37317 exports.signatureImportLax = function (sig) {
37318 var r = new Buffer(ZERO_BUFFER_32)
37319 var s = new Buffer(ZERO_BUFFER_32)
37321 var length = sig.length
37324 // sequence tag byte
37325 if (sig[index++] !==
0x30) return
37327 // sequence length byte
37328 var lenbyte = sig[index++]
37329 if (lenbyte &
0x80) {
37330 index += lenbyte -
0x80
37331 if (index
> length) return
37334 // sequence tag byte for r
37335 if (sig[index++] !==
0x02) return
37338 var rlen = sig[index++]
37340 lenbyte = rlen -
0x80
37341 if (index + lenbyte
> length) return
37342 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
37343 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
37345 if (rlen
> length - index) return
37349 // sequence tag byte for s
37350 if (sig[index++] !==
0x02) return
37353 var slen = sig[index++]
37355 lenbyte = slen -
0x80
37356 if (index + lenbyte
> length) return
37357 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
37358 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
37360 if (slen
> length - index) return
37364 // ignore leading zeros in r
37365 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
37367 if (rlen
> 32) return
37368 var rvalue = sig.slice(rindex, rindex + rlen)
37369 rvalue.copy(r,
32 - rvalue.length)
37371 // ignore leading zeros in s
37372 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
37374 if (slen
> 32) return
37375 var svalue = sig.slice(sindex, sindex + slen)
37376 svalue.copy(s,
32 - svalue.length)
37378 return { r: r, s: s }
37381 }).call(this,require(
"buffer").Buffer)
37382 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
37383 (function (Buffer){
37385 var createHash = require('create-hash')
37386 var BN = require('bn.js')
37387 var EC = require('elliptic').ec
37389 var messages = require('../messages.json')
37391 var ec = new EC('secp256k1')
37392 var ecparams = ec.curve
37394 function loadCompressedPublicKey (first, xBuffer) {
37395 var x = new BN(xBuffer)
37398 if (x.cmp(ecparams.p)
>=
0) return null
37399 x = x.toRed(ecparams.red)
37401 // compute corresponding Y
37402 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
37403 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
37405 return ec.keyPair({ pub: { x: x, y: y } })
37408 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
37409 var x = new BN(xBuffer)
37410 var y = new BN(yBuffer)
37413 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
37415 x = x.toRed(ecparams.red)
37416 y = y.toRed(ecparams.red)
37419 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
37422 var x3 = x.redSqr().redIMul(x)
37423 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
37425 return ec.keyPair({ pub: { x: x, y: y } })
37428 function loadPublicKey (publicKey) {
37429 var first = publicKey[
0]
37433 if (publicKey.length !==
33) return null
37434 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
37438 if (publicKey.length !==
65) return null
37439 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
37445 exports.privateKeyVerify = function (privateKey) {
37446 var bn = new BN(privateKey)
37447 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
37450 exports.privateKeyExport = function (privateKey, compressed) {
37451 var d = new BN(privateKey)
37452 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
37454 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
37457 exports.privateKeyTweakAdd = function (privateKey, tweak) {
37458 var bn = new BN(tweak)
37459 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
37461 bn.iadd(new BN(privateKey))
37462 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
37463 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
37465 return bn.toArrayLike(Buffer, 'be',
32)
37468 exports.privateKeyTweakMul = function (privateKey, tweak) {
37469 var bn = new BN(tweak)
37470 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
37472 bn.imul(new BN(privateKey))
37473 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
37475 return bn.toArrayLike(Buffer, 'be',
32)
37478 exports.publicKeyCreate = function (privateKey, compressed) {
37479 var d = new BN(privateKey)
37480 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
37482 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
37485 exports.publicKeyConvert = function (publicKey, compressed) {
37486 var pair = loadPublicKey(publicKey)
37487 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37489 return new Buffer(pair.getPublic(compressed, true))
37492 exports.publicKeyVerify = function (publicKey) {
37493 return loadPublicKey(publicKey) !== null
37496 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
37497 var pair = loadPublicKey(publicKey)
37498 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37500 tweak = new BN(tweak)
37501 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
37503 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
37506 exports.publicKeyTweakMul = 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 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
37513 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
37516 exports.publicKeyCombine = function (publicKeys, compressed) {
37517 var pairs = new Array(publicKeys.length)
37518 for (var i =
0; i < publicKeys.length; ++i) {
37519 pairs[i] = loadPublicKey(publicKeys[i])
37520 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37523 var point = pairs[
0].pub
37524 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
37525 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
37527 return new Buffer(point.encode(true, compressed))
37530 exports.signatureNormalize = function (signature) {
37531 var r = new BN(signature.slice(
0,
32))
37532 var s = new BN(signature.slice(
32,
64))
37533 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37535 var result = new Buffer(signature)
37536 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
37541 exports.signatureExport = function (signature) {
37542 var r = signature.slice(
0,
32)
37543 var s = signature.slice(
32,
64)
37544 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37546 return { r: r, s: s }
37549 exports.signatureImport = function (sigObj) {
37550 var r = new BN(sigObj.r)
37551 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
37553 var s = new BN(sigObj.s)
37554 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
37556 return Buffer.concat([
37557 r.toArrayLike(Buffer, 'be',
32),
37558 s.toArrayLike(Buffer, 'be',
32)
37562 exports.sign = function (message, privateKey, noncefn, data) {
37563 if (typeof noncefn === 'function') {
37564 var getNonce = noncefn
37565 noncefn = function (counter) {
37566 var nonce = getNonce(message, privateKey, null, data, counter)
37567 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
37569 return new BN(nonce)
37573 var d = new BN(privateKey)
37574 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
37576 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
37578 signature: Buffer.concat([
37579 result.r.toArrayLike(Buffer, 'be',
32),
37580 result.s.toArrayLike(Buffer, 'be',
32)
37582 recovery: result.recoveryParam
37586 exports.verify = function (message, signature, publicKey) {
37587 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
37589 var sigr = new BN(sigObj.r)
37590 var sigs = new BN(sigObj.s)
37591 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37592 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
37594 var pair = loadPublicKey(publicKey)
37595 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37597 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
37600 exports.recover = function (message, signature, recovery, compressed) {
37601 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
37603 var sigr = new BN(sigObj.r)
37604 var sigs = new BN(sigObj.s)
37605 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37608 if (sigr.isZero() || sigs.isZero()) throw new Error()
37610 var point = ec.recoverPubKey(message, sigObj, recovery)
37611 return new Buffer(point.encode(true, compressed))
37613 throw new Error(messages.ECDSA_RECOVER_FAIL)
37617 exports.ecdh = function (publicKey, privateKey) {
37618 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
37619 return createHash('sha256').update(shared).digest()
37622 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
37623 var pair = loadPublicKey(publicKey)
37624 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37626 var scalar = new BN(privateKey)
37627 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
37629 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
37632 }).call(this,require("buffer").Buffer)
37633 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
37635 var assert = require('./assert')
37636 var der = require('./der')
37637 var messages = require('./messages.json')
37639 function initCompressedValue (value, defaultValue) {
37640 if (value === undefined) return defaultValue
37642 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
37646 module.exports = function (secp256k1) {
37648 privateKeyVerify: function (privateKey) {
37649 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37650 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
37653 privateKeyExport: function (privateKey, compressed) {
37654 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37655 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37657 compressed = initCompressedValue(compressed, true)
37658 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
37660 return der.privateKeyExport(privateKey, publicKey, compressed)
37663 privateKeyImport: function (privateKey) {
37664 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37666 privateKey = der.privateKeyImport(privateKey)
37667 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
37669 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
37672 privateKeyTweakAdd: function (privateKey, tweak) {
37673 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37674 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37676 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37677 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37679 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
37682 privateKeyTweakMul: 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.privateKeyTweakMul(privateKey, tweak)
37692 publicKeyCreate: function (privateKey, compressed) {
37693 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37694 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37696 compressed = initCompressedValue(compressed, true)
37698 return secp256k1.publicKeyCreate(privateKey, compressed)
37701 publicKeyConvert: function (publicKey, compressed) {
37702 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37703 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37705 compressed = initCompressedValue(compressed, true)
37707 return secp256k1.publicKeyConvert(publicKey, compressed)
37710 publicKeyVerify: function (publicKey) {
37711 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37712 return secp256k1.publicKeyVerify(publicKey)
37715 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
37716 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37717 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37719 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37720 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37722 compressed = initCompressedValue(compressed, true)
37724 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
37727 publicKeyTweakMul: function (publicKey, tweak, compressed) {
37728 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37729 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37731 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37732 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37734 compressed = initCompressedValue(compressed, true)
37736 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
37739 publicKeyCombine: function (publicKeys, compressed) {
37740 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
37741 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
37742 for (var i =
0; i < publicKeys.length; ++i) {
37743 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
37744 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37747 compressed = initCompressedValue(compressed, true)
37749 return secp256k1.publicKeyCombine(publicKeys, compressed)
37752 signatureNormalize: function (signature) {
37753 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37754 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37756 return secp256k1.signatureNormalize(signature)
37759 signatureExport: function (signature) {
37760 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37761 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37763 var sigObj = secp256k1.signatureExport(signature)
37764 return der.signatureExport(sigObj)
37767 signatureImport: function (sig) {
37768 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37769 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37771 var sigObj = der.signatureImport(sig)
37772 if (sigObj) return secp256k1.signatureImport(sigObj)
37774 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
37777 signatureImportLax: function (sig) {
37778 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37779 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37781 var sigObj = der.signatureImportLax(sig)
37782 if (sigObj) return secp256k1.signatureImport(sigObj)
37784 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
37787 sign: function (message, privateKey, options) {
37788 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37789 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37791 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37792 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37796 if (options !== undefined) {
37797 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
37799 if (options.data !== undefined) {
37800 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
37801 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
37802 data = options.data
37805 if (options.noncefn !== undefined) {
37806 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
37807 noncefn = options.noncefn
37811 return secp256k1.sign(message, privateKey, noncefn, data)
37814 verify: function (message, signature, publicKey) {
37815 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37816 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37818 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37819 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37821 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37822 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37824 return secp256k1.verify(message, signature, publicKey)
37827 recover: function (message, signature, recovery, compressed) {
37828 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37829 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37831 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37832 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37834 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
37835 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
37837 compressed = initCompressedValue(compressed, true)
37839 return secp256k1.recover(message, signature, recovery, compressed)
37842 ecdh: function (publicKey, privateKey) {
37843 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37844 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37846 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37847 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37849 return secp256k1.ecdh(publicKey, privateKey)
37852 ecdhUnsafe: function (publicKey, privateKey, compressed) {
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 compressed = initCompressedValue(compressed, true)
37861 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
37866 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
37868 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
37869 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
37870 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
37871 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
37872 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
37873 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
37874 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
37875 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
37876 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
37877 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
37878 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
37879 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
37880 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
37881 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
37882 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
37883 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
37884 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
37885 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
37886 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
37887 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
37888 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
37889 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
37890 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
37891 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
37892 "MSG32_TYPE_INVALID": "message should be a Buffer",
37893 "MSG32_LENGTH_INVALID": "message length is invalid",
37894 "OPTIONS_TYPE_INVALID": "options should be an Object",
37895 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
37896 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
37897 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
37898 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
37899 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
37900 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
37901 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
37904 },{}],
79:[function(require,module,exports){
37905 (function (Buffer){
37906 // prototype class for hash functions
37907 function Hash (blockSize, finalSize) {
37908 this._block = new Buffer(blockSize)
37909 this._finalSize = finalSize
37910 this._blockSize = blockSize
37915 Hash.prototype.update = function (data, enc) {
37916 if (typeof data === 'string') {
37917 enc = enc || 'utf8'
37918 data = new Buffer(data, enc)
37921 var l = this._len += data.length
37922 var s = this._s ||
0
37924 var buffer = this._block
37927 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
37930 for (var i =
0; i < ch; i++) {
37931 buffer[(s % this._blockSize) + i] = data[i + f]
37937 if ((s % this._blockSize) ===
0) {
37938 this._update(buffer)
37946 Hash.prototype.digest = function (enc) {
37947 // Suppose the length of the message M, in bits, is l
37948 var l = this._len *
8
37950 // Append the bit
1 to the end of the message
37951 this._block[this._len % this._blockSize] =
0x80
37953 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
37954 this._block.fill(
0, this._len % this._blockSize +
1)
37956 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
37957 this._update(this._block)
37958 this._block.fill(
0)
37961 // to this append the block which is equal to the number l written in binary
37962 // TODO: handle case where l is
> Math.pow(
2,
29)
37963 this._block.writeInt32BE(l, this._blockSize -
4)
37965 var hash = this._update(this._block) || this._hash()
37967 return enc ? hash.toString(enc) : hash
37970 Hash.prototype._update = function () {
37971 throw new Error('_update must be implemented by subclass')
37974 module.exports = Hash
37976 }).call(this,require("buffer").Buffer)
37977 },{"buffer":
5}],
80:[function(require,module,exports){
37978 var exports = module.exports = function SHA (algorithm) {
37979 algorithm = algorithm.toLowerCase()
37981 var Algorithm = exports[algorithm]
37982 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
37984 return new Algorithm()
37987 exports.sha = require('./sha')
37988 exports.sha1 = require('./sha1')
37989 exports.sha224 = require('./sha224')
37990 exports.sha256 = require('./sha256')
37991 exports.sha384 = require('./sha384')
37992 exports.sha512 = require('./sha512')
37994 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
37995 (function (Buffer){
37997 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
37998 * in FIPS PUB
180-
1
37999 * This source code is derived from sha1.js of the same repository.
38000 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
38001 * operation was added.
38004 var inherits = require('inherits')
38005 var Hash = require('./hash')
38008 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
38011 var W = new Array(
80)
38017 Hash.call(this,
64,
56)
38020 inherits(Sha, Hash)
38022 Sha.prototype.init = function () {
38023 this._a =
0x67452301
38024 this._b =
0xefcdab89
38025 this._c =
0x98badcfe
38026 this._d =
0x10325476
38027 this._e =
0xc3d2e1f0
38032 function rotl5 (num) {
38033 return (num <<
5) | (num
>>> 27)
38036 function rotl30 (num) {
38037 return (num <<
30) | (num
>>> 2)
38040 function ft (s, b, c, d) {
38041 if (s ===
0) return (b & c) | ((~b) & d)
38042 if (s ===
2) return (b & c) | (b & d) | (c & d)
38046 Sha.prototype._update = function (M) {
38049 var a = this._a |
0
38050 var b = this._b |
0
38051 var c = this._c |
0
38052 var d = this._d |
0
38053 var e = this._e |
0
38055 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38056 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
38058 for (var j =
0; j <
80; ++j) {
38060 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
38069 this._a = (a + this._a) |
0
38070 this._b = (b + this._b) |
0
38071 this._c = (c + this._c) |
0
38072 this._d = (d + this._d) |
0
38073 this._e = (e + this._e) |
0
38076 Sha.prototype._hash = function () {
38077 var H = new Buffer(
20)
38079 H.writeInt32BE(this._a |
0,
0)
38080 H.writeInt32BE(this._b |
0,
4)
38081 H.writeInt32BE(this._c |
0,
8)
38082 H.writeInt32BE(this._d |
0,
12)
38083 H.writeInt32BE(this._e |
0,
16)
38088 module.exports = Sha
38090 }).call(this,require(
"buffer").Buffer)
38091 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
38092 (function (Buffer){
38094 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
38095 * in FIPS PUB
180-
1
38096 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
38097 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38098 * Distributed under the BSD License
38099 * See http://pajhome.org.uk/crypt/md5 for details.
38102 var inherits = require('inherits')
38103 var Hash = require('./hash')
38106 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
38109 var W = new Array(
80)
38115 Hash.call(this,
64,
56)
38118 inherits(Sha1, Hash)
38120 Sha1.prototype.init = function () {
38121 this._a =
0x67452301
38122 this._b =
0xefcdab89
38123 this._c =
0x98badcfe
38124 this._d =
0x10325476
38125 this._e =
0xc3d2e1f0
38130 function rotl1 (num) {
38131 return (num <<
1) | (num
>>> 31)
38134 function rotl5 (num) {
38135 return (num <<
5) | (num
>>> 27)
38138 function rotl30 (num) {
38139 return (num <<
30) | (num
>>> 2)
38142 function ft (s, b, c, d) {
38143 if (s ===
0) return (b & c) | ((~b) & d)
38144 if (s ===
2) return (b & c) | (b & d) | (c & d)
38148 Sha1.prototype._update = function (M) {
38151 var a = this._a |
0
38152 var b = this._b |
0
38153 var c = this._c |
0
38154 var d = this._d |
0
38155 var e = this._e |
0
38157 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38158 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
38160 for (var j =
0; j <
80; ++j) {
38162 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
38171 this._a = (a + this._a) |
0
38172 this._b = (b + this._b) |
0
38173 this._c = (c + this._c) |
0
38174 this._d = (d + this._d) |
0
38175 this._e = (e + this._e) |
0
38178 Sha1.prototype._hash = function () {
38179 var H = new Buffer(
20)
38181 H.writeInt32BE(this._a |
0,
0)
38182 H.writeInt32BE(this._b |
0,
4)
38183 H.writeInt32BE(this._c |
0,
8)
38184 H.writeInt32BE(this._d |
0,
12)
38185 H.writeInt32BE(this._e |
0,
16)
38190 module.exports = Sha1
38192 }).call(this,require(
"buffer").Buffer)
38193 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
38194 (function (Buffer){
38196 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
38198 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
38199 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38203 var inherits = require('inherits')
38204 var Sha256 = require('./sha256')
38205 var Hash = require('./hash')
38207 var W = new Array(
64)
38209 function Sha224 () {
38212 this._w = W // new Array(
64)
38214 Hash.call(this,
64,
56)
38217 inherits(Sha224, Sha256)
38219 Sha224.prototype.init = function () {
38220 this._a =
0xc1059ed8
38221 this._b =
0x367cd507
38222 this._c =
0x3070dd17
38223 this._d =
0xf70e5939
38224 this._e =
0xffc00b31
38225 this._f =
0x68581511
38226 this._g =
0x64f98fa7
38227 this._h =
0xbefa4fa4
38232 Sha224.prototype._hash = function () {
38233 var H = new Buffer(
28)
38235 H.writeInt32BE(this._a,
0)
38236 H.writeInt32BE(this._b,
4)
38237 H.writeInt32BE(this._c,
8)
38238 H.writeInt32BE(this._d,
12)
38239 H.writeInt32BE(this._e,
16)
38240 H.writeInt32BE(this._f,
20)
38241 H.writeInt32BE(this._g,
24)
38246 module.exports = Sha224
38248 }).call(this,require(
"buffer").Buffer)
38249 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
38250 (function (Buffer){
38252 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
38254 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
38255 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38259 var inherits = require('inherits')
38260 var Hash = require('./hash')
38263 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
38264 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
38265 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
38266 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
38267 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
38268 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
38269 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
38270 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
38271 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
38272 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
38273 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
38274 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
38275 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
38276 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
38277 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
38278 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
38281 var W = new Array(
64)
38283 function Sha256 () {
38286 this._w = W // new Array(
64)
38288 Hash.call(this,
64,
56)
38291 inherits(Sha256, Hash)
38293 Sha256.prototype.init = function () {
38294 this._a =
0x6a09e667
38295 this._b =
0xbb67ae85
38296 this._c =
0x3c6ef372
38297 this._d =
0xa54ff53a
38298 this._e =
0x510e527f
38299 this._f =
0x9b05688c
38300 this._g =
0x1f83d9ab
38301 this._h =
0x5be0cd19
38306 function ch (x, y, z) {
38307 return z ^ (x & (y ^ z))
38310 function maj (x, y, z) {
38311 return (x & y) | (z & (x | y))
38314 function sigma0 (x) {
38315 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
38318 function sigma1 (x) {
38319 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
38322 function gamma0 (x) {
38323 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
38326 function gamma1 (x) {
38327 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
38330 Sha256.prototype._update = function (M) {
38333 var a = this._a |
0
38334 var b = this._b |
0
38335 var c = this._c |
0
38336 var d = this._d |
0
38337 var e = this._e |
0
38338 var f = this._f |
0
38339 var g = this._g |
0
38340 var h = this._h |
0
38342 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38343 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
38345 for (var j =
0; j <
64; ++j) {
38346 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
38347 var T2 = (sigma0(a) + maj(a, b, c)) |
0
38359 this._a = (a + this._a) |
0
38360 this._b = (b + this._b) |
0
38361 this._c = (c + this._c) |
0
38362 this._d = (d + this._d) |
0
38363 this._e = (e + this._e) |
0
38364 this._f = (f + this._f) |
0
38365 this._g = (g + this._g) |
0
38366 this._h = (h + this._h) |
0
38369 Sha256.prototype._hash = function () {
38370 var H = new Buffer(
32)
38372 H.writeInt32BE(this._a,
0)
38373 H.writeInt32BE(this._b,
4)
38374 H.writeInt32BE(this._c,
8)
38375 H.writeInt32BE(this._d,
12)
38376 H.writeInt32BE(this._e,
16)
38377 H.writeInt32BE(this._f,
20)
38378 H.writeInt32BE(this._g,
24)
38379 H.writeInt32BE(this._h,
28)
38384 module.exports = Sha256
38386 }).call(this,require(
"buffer").Buffer)
38387 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
38388 (function (Buffer){
38389 var inherits = require('inherits')
38390 var SHA512 = require('./sha512')
38391 var Hash = require('./hash')
38393 var W = new Array(
160)
38395 function Sha384 () {
38399 Hash.call(this,
128,
112)
38402 inherits(Sha384, SHA512)
38404 Sha384.prototype.init = function () {
38405 this._ah =
0xcbbb9d5d
38406 this._bh =
0x629a292a
38407 this._ch =
0x9159015a
38408 this._dh =
0x152fecd8
38409 this._eh =
0x67332667
38410 this._fh =
0x8eb44a87
38411 this._gh =
0xdb0c2e0d
38412 this._hh =
0x47b5481d
38414 this._al =
0xc1059ed8
38415 this._bl =
0x367cd507
38416 this._cl =
0x3070dd17
38417 this._dl =
0xf70e5939
38418 this._el =
0xffc00b31
38419 this._fl =
0x68581511
38420 this._gl =
0x64f98fa7
38421 this._hl =
0xbefa4fa4
38426 Sha384.prototype._hash = function () {
38427 var H = new Buffer(
48)
38429 function writeInt64BE (h, l, offset) {
38430 H.writeInt32BE(h, offset)
38431 H.writeInt32BE(l, offset +
4)
38434 writeInt64BE(this._ah, this._al,
0)
38435 writeInt64BE(this._bh, this._bl,
8)
38436 writeInt64BE(this._ch, this._cl,
16)
38437 writeInt64BE(this._dh, this._dl,
24)
38438 writeInt64BE(this._eh, this._el,
32)
38439 writeInt64BE(this._fh, this._fl,
40)
38444 module.exports = Sha384
38446 }).call(this,require(
"buffer").Buffer)
38447 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
38448 (function (Buffer){
38449 var inherits = require('inherits')
38450 var Hash = require('./hash')
38453 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
38454 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
38455 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
38456 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
38457 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
38458 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
38459 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
38460 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
38461 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
38462 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
38463 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
38464 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
38465 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
38466 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
38467 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
38468 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
38469 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
38470 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
38471 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
38472 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
38473 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
38474 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
38475 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
38476 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
38477 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
38478 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
38479 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
38480 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
38481 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
38482 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
38483 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
38484 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
38485 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
38486 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
38487 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
38488 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
38489 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
38490 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
38491 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
38492 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
38495 var W = new Array(
160)
38497 function Sha512 () {
38501 Hash.call(this,
128,
112)
38504 inherits(Sha512, Hash)
38506 Sha512.prototype.init = function () {
38507 this._ah =
0x6a09e667
38508 this._bh =
0xbb67ae85
38509 this._ch =
0x3c6ef372
38510 this._dh =
0xa54ff53a
38511 this._eh =
0x510e527f
38512 this._fh =
0x9b05688c
38513 this._gh =
0x1f83d9ab
38514 this._hh =
0x5be0cd19
38516 this._al =
0xf3bcc908
38517 this._bl =
0x84caa73b
38518 this._cl =
0xfe94f82b
38519 this._dl =
0x5f1d36f1
38520 this._el =
0xade682d1
38521 this._fl =
0x2b3e6c1f
38522 this._gl =
0xfb41bd6b
38523 this._hl =
0x137e2179
38528 function Ch (x, y, z) {
38529 return z ^ (x & (y ^ z))
38532 function maj (x, y, z) {
38533 return (x & y) | (z & (x | y))
38536 function sigma0 (x, xl) {
38537 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
38540 function sigma1 (x, xl) {
38541 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
38544 function Gamma0 (x, xl) {
38545 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
38548 function Gamma0l (x, xl) {
38549 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
38552 function Gamma1 (x, xl) {
38553 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
38556 function Gamma1l (x, xl) {
38557 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
38560 function getCarry (a, b) {
38561 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
38564 Sha512.prototype._update = function (M) {
38567 var ah = this._ah |
0
38568 var bh = this._bh |
0
38569 var ch = this._ch |
0
38570 var dh = this._dh |
0
38571 var eh = this._eh |
0
38572 var fh = this._fh |
0
38573 var gh = this._gh |
0
38574 var hh = this._hh |
0
38576 var al = this._al |
0
38577 var bl = this._bl |
0
38578 var cl = this._cl |
0
38579 var dl = this._dl |
0
38580 var el = this._el |
0
38581 var fl = this._fl |
0
38582 var gl = this._gl |
0
38583 var hl = this._hl |
0
38585 for (var i =
0; i <
32; i +=
2) {
38586 W[i] = M.readInt32BE(i *
4)
38587 W[i +
1] = M.readInt32BE(i *
4 +
4)
38589 for (; i <
160; i +=
2) {
38590 var xh = W[i -
15 *
2]
38591 var xl = W[i -
15 *
2 +
1]
38592 var gamma0 = Gamma0(xh, xl)
38593 var gamma0l = Gamma0l(xl, xh)
38596 xl = W[i -
2 *
2 +
1]
38597 var gamma1 = Gamma1(xh, xl)
38598 var gamma1l = Gamma1l(xl, xh)
38600 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
38601 var Wi7h = W[i -
7 *
2]
38602 var Wi7l = W[i -
7 *
2 +
1]
38604 var Wi16h = W[i -
16 *
2]
38605 var Wi16l = W[i -
16 *
2 +
1]
38607 var Wil = (gamma0l + Wi7l) |
0
38608 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
38609 Wil = (Wil + gamma1l) |
0
38610 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
38611 Wil = (Wil + Wi16l) |
0
38612 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
38618 for (var j =
0; j <
160; j +=
2) {
38622 var majh = maj(ah, bh, ch)
38623 var majl = maj(al, bl, cl)
38625 var sigma0h = sigma0(ah, al)
38626 var sigma0l = sigma0(al, ah)
38627 var sigma1h = sigma1(eh, el)
38628 var sigma1l = sigma1(el, eh)
38630 // t1 = h + sigma1 + ch + K[j] + W[j]
38634 var chh = Ch(eh, fh, gh)
38635 var chl = Ch(el, fl, gl)
38637 var t1l = (hl + sigma1l) |
0
38638 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
38639 t1l = (t1l + chl) |
0
38640 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
38641 t1l = (t1l + Kil) |
0
38642 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
38643 t1l = (t1l + Wil) |
0
38644 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
38646 // t2 = sigma0 + maj
38647 var t2l = (sigma0l + majl) |
0
38648 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
38656 el = (dl + t1l) |
0
38657 eh = (dh + t1h + getCarry(el, dl)) |
0
38664 al = (t1l + t2l) |
0
38665 ah = (t1h + t2h + getCarry(al, t1l)) |
0
38668 this._al = (this._al + al) |
0
38669 this._bl = (this._bl + bl) |
0
38670 this._cl = (this._cl + cl) |
0
38671 this._dl = (this._dl + dl) |
0
38672 this._el = (this._el + el) |
0
38673 this._fl = (this._fl + fl) |
0
38674 this._gl = (this._gl + gl) |
0
38675 this._hl = (this._hl + hl) |
0
38677 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
38678 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
38679 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
38680 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
38681 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
38682 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
38683 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
38684 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
38687 Sha512.prototype._hash = function () {
38688 var H = new Buffer(
64)
38690 function writeInt64BE (h, l, offset) {
38691 H.writeInt32BE(h, offset)
38692 H.writeInt32BE(l, offset +
4)
38695 writeInt64BE(this._ah, this._al,
0)
38696 writeInt64BE(this._bh, this._bl,
8)
38697 writeInt64BE(this._ch, this._cl,
16)
38698 writeInt64BE(this._dh, this._dl,
24)
38699 writeInt64BE(this._eh, this._el,
32)
38700 writeInt64BE(this._fh, this._fl,
40)
38701 writeInt64BE(this._gh, this._gl,
48)
38702 writeInt64BE(this._hh, this._hl,
56)
38707 module.exports = Sha512
38709 }).call(this,require(
"buffer").Buffer)
38710 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
38711 var isHexPrefixed = require('is-hex-prefixed');
38714 * Removes '
0x' from a given `String` is present
38715 * @param {String} str the string value
38716 * @return {String|Optional} a string by pass if necessary
38718 module.exports = function stripHexPrefix(str) {
38719 if (typeof str !== 'string') {
38723 return isHexPrefixed(str) ? str.slice(
2) : str;
38726 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
38728 <script>function convertRippleAdrr(address) {
38729 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
38730 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
38734 function convertRipplePriv(priv) {
38735 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
38739 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
38743 /** @fileOverview Javascript cryptography implementation.
38745 * Crush to remove comments, shorten variable names and
38746 * generally reduce transmission size.
38748 * @author Emily Stark
38749 * @author Mike Hamburg
38750 * @author Dan Boneh
38754 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
38755 /*global document, window, escape, unescape, module, require, Uint32Array */
38757 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
38759 /** @namespace Symmetric ciphers. */
38762 /** @namespace Hash functions. Right now only SHA256 is implemented. */
38765 /** @namespace Key exchange functions. Right now only SRP is implemented. */
38768 /** @namespace Block cipher modes of operation. */
38771 /** @namespace Miscellaneous. HMAC and PBKDF2. */
38775 * @namespace Bit array encoders and decoders.
38778 * The members of this namespace are functions which translate between
38779 * SJCL's bitArrays and other objects (usually strings). Because it
38780 * isn't always clear which direction is encoding and which is decoding,
38781 * the method names are "fromBits" and "toBits".
38785 /** @namespace Exceptions. */
38787 /** @constructor Ciphertext is corrupt. */
38788 corrupt: function(message) {
38789 this.toString = function() { return "CORRUPT: "+this.message; };
38790 this.message = message;
38793 /** @constructor Invalid parameter. */
38794 invalid: function(message) {
38795 this.toString = function() { return "INVALID: "+this.message; };
38796 this.message = message;
38799 /** @constructor Bug or missing feature in SJCL. @constructor */
38800 bug: function(message) {
38801 this.toString = function() { return "BUG: "+this.message; };
38802 this.message = message;
38805 /** @constructor Something isn't ready. */
38806 notReady: function(message) {
38807 this.toString = function() { return "NOT READY: "+this.message; };
38808 this.message = message;
38813 if(typeof module !== 'undefined' && module.exports){
38814 module.exports = sjcl;
38816 if (typeof define === "function") {
38817 define([], function () {
38825 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
38827 * @author Emily Stark
38828 * @author Mike Hamburg
38829 * @author Dan Boneh
38832 /** @namespace Arrays of bits, encoded as arrays of Numbers.
38836 * These objects are the currency accepted by SJCL's crypto functions.
38840 * Most of our crypto primitives operate on arrays of
4-byte words internally,
38841 * but many of them can take arguments that are not a multiple of
4 bytes.
38842 * This library encodes arrays of bits (whose size need not be a multiple of
8
38843 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
38844 * array of words,
32 bits at a time. Since the words are double-precision
38845 * floating point numbers, they fit some extra data. We use this (in a private,
38846 * possibly-changing manner) to encode the number of bits actually present
38847 * in the last word of the array.
38851 * Because bitwise ops clear this out-of-band data, these arrays can be passed
38852 * to ciphers like AES which want arrays of words.
38857 * Array slices in units of bits.
38858 * @param {bitArray} a The array to slice.
38859 * @param {Number} bstart The offset to the start of the slice, in bits.
38860 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
38861 * slice until the end of the array.
38862 * @return {bitArray} The requested slice.
38864 bitSlice: function (a, bstart, bend) {
38865 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
38866 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
38870 * Extract a number packed into a bit array.
38871 * @param {bitArray} a The array to slice.
38872 * @param {Number} bstart The offset to the start of the slice, in bits.
38873 * @param {Number} length The length of the number to extract.
38874 * @return {Number} The requested slice.
38876 extract: function(a, bstart, blength) {
38877 // FIXME: this Math.floor is not necessary at all, but for some reason
38878 // seems to suppress a bug in the Chromium JIT.
38879 var x, sh = Math.floor((-bstart-blength) &
31);
38880 if ((bstart + blength -
1 ^ bstart) & -
32) {
38881 // it crosses a boundary
38882 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
38884 // within a single word
38885 x = a[bstart/
32|
0]
>>> sh;
38887 return x & ((
1<
<blength) -
1);
38891 * Concatenate two bit arrays.
38892 * @param {bitArray} a1 The first array.
38893 * @param {bitArray} a2 The second array.
38894 * @return {bitArray} The concatenation of a1 and a2.
38896 concat: function (a1, a2) {
38897 if (a1.length ===
0 || a2.length ===
0) {
38898 return a1.concat(a2);
38901 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
38902 if (shift ===
32) {
38903 return a1.concat(a2);
38905 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
38910 * Find the length of an array of bits.
38911 * @param {bitArray} a The array.
38912 * @return {Number} The length of a, in bits.
38914 bitLength: function (a) {
38915 var l = a.length, x;
38916 if (l ===
0) { return
0; }
38918 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
38922 * Truncate an array.
38923 * @param {bitArray} a The array.
38924 * @param {Number} len The length to truncate to, in bits.
38925 * @return {bitArray} A new array, truncated to len bits.
38927 clamp: function (a, len) {
38928 if (a.length *
32 < len) { return a; }
38929 a = a.slice(
0, Math.ceil(len /
32));
38932 if (l
> 0 && len) {
38933 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
38939 * Make a partial word for a bit array.
38940 * @param {Number} len The number of bits in the word.
38941 * @param {Number} x The bits.
38942 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
38943 * @return {Number} The partial word.
38945 partial: function (len, x, _end) {
38946 if (len ===
32) { return x; }
38947 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
38951 * Get the number of bits used by a partial word.
38952 * @param {Number} x The partial word.
38953 * @return {Number} The number of bits used by the partial word.
38955 getPartial: function (x) {
38956 return Math.round(x/
0x10000000000) ||
32;
38960 * Compare two arrays for equality in a predictable amount of time.
38961 * @param {bitArray} a The first array.
38962 * @param {bitArray} b The second array.
38963 * @return {boolean} true if a == b; false otherwise.
38965 equal: function (a, b) {
38966 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
38970 for (i=
0; i
<a.length; i++) {
38976 /** Shift an array right.
38977 * @param {bitArray} a The array to shift.
38978 * @param {Number} shift The number of bits to shift.
38979 * @param {Number} [carry=
0] A byte to carry in
38980 * @param {bitArray} [out=[]] An array to prepend to the output.
38983 _shiftRight: function (a, shift, carry, out) {
38984 var i, last2=
0, shift2;
38985 if (out === undefined) { out = []; }
38987 for (; shift
>=
32; shift -=
32) {
38992 return out.concat(a);
38995 for (i=
0; i
<a.length; i++) {
38996 out.push(carry | a[i]
>>>shift);
38997 carry = a[i] << (
32-shift);
38999 last2 = a.length ? a[a.length-
1] :
0;
39000 shift2 = sjcl.bitArray.getPartial(last2);
39001 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
39005 /** xor a block of
4 words together.
39008 _xor4: function(x,y) {
39009 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
39012 /** byteswap a word array inplace.
39013 * (does not handle partial words)
39014 * @param {sjcl.bitArray} a word array
39015 * @return {sjcl.bitArray} byteswapped array
39017 byteswapM: function(a) {
39018 var i, v, m =
0xff00;
39019 for (i =
0; i < a.length; ++i) {
39021 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
39028 //// codecString.js
39030 /** @fileOverview Bit array codec implementations.
39032 * @author Emily Stark
39033 * @author Mike Hamburg
39034 * @author Dan Boneh
39037 /** @namespace UTF-
8 strings */
39038 sjcl.codec.utf8String = {
39039 /** Convert from a bitArray to a UTF-
8 string. */
39040 fromBits: function (arr) {
39041 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
39042 for (i=
0; i
<bl/
8; i++) {
39046 out += String.fromCharCode(tmp
>>> 24);
39049 return decodeURIComponent(escape(out));
39052 /** Convert from a UTF-
8 string to a bitArray. */
39053 toBits: function (str) {
39054 str = unescape(encodeURIComponent(str));
39055 var out = [], i, tmp=
0;
39056 for (i=
0; i
<str.length; i++) {
39057 tmp = tmp <<
8 | str.charCodeAt(i);
39064 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
39073 /** @fileOverview Bit array codec implementations.
39075 * @author Emily Stark
39076 * @author Mike Hamburg
39077 * @author Dan Boneh
39080 /** @namespace Hexadecimal */
39082 /** Convert from a bitArray to a hex string. */
39083 fromBits: function (arr) {
39085 for (i=
0; i
<arr.length; i++) {
39086 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
39088 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
39090 /** Convert from a hex string to a bitArray. */
39091 toBits: function (str) {
39092 var i, out=[], len;
39093 str = str.replace(/\s|
0x/g,
"");
39095 str = str +
"00000000";
39096 for (i=
0; i
<str.length; i+=
8) {
39097 out.push(parseInt(str.substr(i,
8),
16)^
0);
39099 return sjcl.bitArray.clamp(out, len*
4);
39106 /** @fileOverview Javascript SHA-
512 implementation.
39108 * This implementation was written for CryptoJS by Jeff Mott and adapted for
39109 * SJCL by Stefan Thomas.
39111 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
39112 * Released with New BSD License
39114 * @author Emily Stark
39115 * @author Mike Hamburg
39116 * @author Dan Boneh
39117 * @author Jeff Mott
39118 * @author Stefan Thomas
39122 * Context for a SHA-
512 operation in progress.
39124 * @class Secure Hash Algorithm,
512 bits.
39126 sjcl.hash.sha512 = function (hash) {
39127 if (!this._key[
0]) { this._precompute(); }
39129 this._h = hash._h.slice(
0);
39130 this._buffer = hash._buffer.slice(
0);
39131 this._length = hash._length;
39138 * Hash a string or an array of words.
39140 * @param {bitArray|String} data the data to hash.
39141 * @return {bitArray} The hash value, an array of
16 big-endian words.
39143 sjcl.hash.sha512.hash = function (data) {
39144 return (new sjcl.hash.sha512()).update(data).finalize();
39147 sjcl.hash.sha512.prototype = {
39149 * The hash's block size, in bits.
39155 * Reset the hash state.
39158 reset:function () {
39159 this._h = this._init.slice(
0);
39166 * Input several words to the hash.
39167 * @param {bitArray|String} data the data to hash.
39170 update: function (data) {
39171 if (typeof data ===
"string") {
39172 data = sjcl.codec.utf8String.toBits(data);
39174 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
39176 nl = this._length = ol + sjcl.bitArray.bitLength(data);
39177 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
39178 this._block(b.splice(
0,
32));
39184 * Complete hashing and output the hash value.
39185 * @return {bitArray} The hash value, an array of
16 big-endian words.
39187 finalize:function () {
39188 var i, b = this._buffer, h = this._h;
39190 // Round out and push the buffer
39191 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
39193 // Round out the buffer to a multiple of
32 words, less the
4 length words.
39194 for (i = b.length +
4; i &
31; i++) {
39198 // append the length
39201 b.push(Math.floor(this._length /
0x100000000));
39202 b.push(this._length |
0);
39205 this._block(b.splice(
0,
32));
39213 * The SHA-
512 initialization vector, to be precomputed.
39219 * Least significant
24 bits of SHA512 initialization values.
39221 * Javascript only has
53 bits of precision, so we compute the
40 most
39222 * significant bits and add the remaining
24 bits as constants.
39226 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
39230 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
39231 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
39235 * The SHA-
512 hash key, to be precomputed.
39241 * Least significant
24 bits of SHA512 key values.
39245 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
39246 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
39247 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
39248 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
39249 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
39250 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
39251 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
39252 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
39253 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
39254 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
39258 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
39259 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
39260 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
39261 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
39262 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
39263 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
39264 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
39265 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
39266 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
39267 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
39268 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
39269 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
39270 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
39271 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
39272 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
39273 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
39274 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
39275 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
39276 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
39277 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
39281 * Function to precompute _init and _key.
39284 _precompute: function () {
39285 // XXX: This code is for precomputing the SHA256 constants, change for
39286 // SHA512 and re-enable.
39287 var i =
0, prime =
2, factor;
39289 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
39290 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
39292 outer: for (; i
<80; prime++) {
39293 for (factor=
2; factor*factor <= prime; factor++) {
39294 if (prime % factor ===
0) {
39301 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
39302 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
39304 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
39305 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
39311 * Perform one cycle of SHA-
512.
39312 * @param {bitArray} words one block of words.
39315 _block:function (words) {
39317 w = words.slice(
0),
39320 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
39321 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
39322 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
39323 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
39325 // Working variables
39326 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
39327 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
39328 eh = h4h, el = h4l, fh = h5h, fl = h5l,
39329 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
39331 for (i=
0; i
<80; i++) {
39332 // load up the input word for this round
39335 wrl = w[i *
2 +
1];
39338 var gamma0xh = w[(i-
15) *
2];
39339 var gamma0xl = w[(i-
15) *
2 +
1];
39341 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
39342 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
39345 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
39346 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
39347 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
39350 var gamma1xh = w[(i-
2) *
2];
39351 var gamma1xl = w[(i-
2) *
2 +
1];
39353 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
39354 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
39357 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
39358 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
39359 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
39362 var wr7h = w[(i-
7) *
2];
39363 var wr7l = w[(i-
7) *
2 +
1];
39365 var wr16h = w[(i-
16) *
2];
39366 var wr16l = w[(i-
16) *
2 +
1];
39368 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
39369 wrl = gamma0l + wr7l;
39370 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
39372 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
39374 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
39378 w[i*
2 +
1] = wrl |=
0;
39381 var chh = (eh & fh) ^ (~eh & gh);
39382 var chl = (el & fl) ^ (~el & gl);
39385 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
39386 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
39389 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
39390 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
39393 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
39394 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
39398 var krl = k[i*
2+
1];
39400 // t1 = h + sigma1 + ch + K(round) + W(round)
39401 var t1l = hl + sigma1l;
39402 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
39404 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
39406 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
39407 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
39408 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
39410 // t2 = sigma0 + maj
39411 var t2l = sigma0l + majl;
39412 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
39414 // Update working variables
39421 el = (dl + t1l) |
0;
39422 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
39429 al = (t1l + t2l) |
0;
39430 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
39433 // Intermediate hash
39434 h0l = h[
1] = (h0l + al) |
0;
39435 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
39436 h1l = h[
3] = (h1l + bl) |
0;
39437 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
39438 h2l = h[
5] = (h2l + cl) |
0;
39439 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
39440 h3l = h[
7] = (h3l + dl) |
0;
39441 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
39442 h4l = h[
9] = (h4l + el) |
0;
39443 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
39444 h5l = h[
11] = (h5l + fl) |
0;
39445 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
39446 h6l = h[
13] = (h6l + gl) |
0;
39447 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
39448 h7l = h[
15] = (h7l + hl) |
0;
39449 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
39456 /** @fileOverview HMAC implementation.
39458 * @author Emily Stark
39459 * @author Mike Hamburg
39460 * @author Dan Boneh
39463 /** HMAC with the specified hash function.
39465 * @param {bitArray} key the key for HMAC.
39466 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
39468 sjcl.misc.hmac = function (key, Hash) {
39469 this._hash = Hash = Hash || sjcl.hash.sha256;
39470 var exKey = [[],[]], i,
39471 bs = Hash.prototype.blockSize /
32;
39472 this._baseHash = [new Hash(), new Hash()];
39474 if (key.length
> bs) {
39475 key = Hash.hash(key);
39478 for (i=
0; i
<bs; i++) {
39479 exKey[
0][i] = key[i]^
0x36363636;
39480 exKey[
1][i] = key[i]^
0x5C5C5C5C;
39483 this._baseHash[
0].update(exKey[
0]);
39484 this._baseHash[
1].update(exKey[
1]);
39485 this._resultHash = new Hash(this._baseHash[
0]);
39488 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
39489 * @param {bitArray|String} data The data to mac.
39491 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
39492 if (!this._updated) {
39494 return this.digest(data);
39496 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
39500 sjcl.misc.hmac.prototype.reset = function () {
39501 this._resultHash = new this._hash(this._baseHash[
0]);
39502 this._updated = false;
39505 sjcl.misc.hmac.prototype.update = function (data) {
39506 this._updated = true;
39507 this._resultHash.update(data);
39510 sjcl.misc.hmac.prototype.digest = function () {
39511 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
39522 /** @fileOverview Password-based key-derivation function, version
2.0.
39524 * @author Emily Stark
39525 * @author Mike Hamburg
39526 * @author Dan Boneh
39529 /** Password-Based Key-Derivation Function, version
2.0.
39531 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
39533 * This is the method specified by RSA's PKCS #
5 standard.
39535 * @param {bitArray|String} password The password.
39536 * @param {bitArray|String} salt The salt. Should have lots of entropy.
39537 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
39538 * @param {Number} [length] The length of the derived key. Defaults to the
39539 output size of the hash function.
39540 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
39541 * @return {bitArray} the derived key.
39543 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
39544 count = count ||
1000;
39546 if (length <
0 || count <
0) {
39547 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
39550 if (typeof password ===
"string") {
39551 password = sjcl.codec.utf8String.toBits(password);
39554 if (typeof salt ===
"string") {
39555 salt = sjcl.codec.utf8String.toBits(salt);
39558 Prff = Prff || sjcl.misc.hmac;
39560 var prf = new Prff(password),
39561 u, ui, i, j, k, out = [], b = sjcl.bitArray;
39563 for (k =
1;
32 * out.length < (length ||
1); k++) {
39564 u = ui = prf.encrypt(b.concat(salt,[k]));
39566 for (i=
1; i
<count; i++) {
39567 ui = prf.encrypt(ui);
39568 for (j=
0; j
<ui.length; j++) {
39573 out = out.concat(u);
39576 if (length) { out = b.clamp(out, length); }
39584 /** @fileOverview Javascript SHA-
256 implementation.
39586 * An older version of this implementation is available in the public
39587 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
39588 * Stanford University
2008-
2010 and BSD-licensed for liability
39591 * Special thanks to Aldo Cortesi for pointing out several bugs in
39594 * @author Emily Stark
39595 * @author Mike Hamburg
39596 * @author Dan Boneh
39600 * Context for a SHA-
256 operation in progress.
39602 * @class Secure Hash Algorithm,
256 bits.
39604 sjcl.hash.sha256 = function (hash) {
39605 if (!this._key[
0]) { this._precompute(); }
39607 this._h = hash._h.slice(
0);
39608 this._buffer = hash._buffer.slice(
0);
39609 this._length = hash._length;
39616 * Hash a string or an array of words.
39618 * @param {bitArray|String} data the data to hash.
39619 * @return {bitArray} The hash value, an array of
16 big-endian words.
39621 sjcl.hash.sha256.hash = function (data) {
39622 return (new sjcl.hash.sha256()).update(data).finalize();
39625 sjcl.hash.sha256.prototype = {
39627 * The hash's block size, in bits.
39633 * Reset the hash state.
39636 reset:function () {
39637 this._h = this._init.slice(
0);
39644 * Input several words to the hash.
39645 * @param {bitArray|String} data the data to hash.
39648 update: function (data) {
39649 if (typeof data ===
"string") {
39650 data = sjcl.codec.utf8String.toBits(data);
39652 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
39654 nl = this._length = ol + sjcl.bitArray.bitLength(data);
39655 for (i =
512+ol & -
512; i <= nl; i+=
512) {
39656 this._block(b.splice(
0,
16));
39662 * Complete hashing and output the hash value.
39663 * @return {bitArray} The hash value, an array of
8 big-endian words.
39665 finalize:function () {
39666 var i, b = this._buffer, h = this._h;
39668 // Round out and push the buffer
39669 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
39671 // Round out the buffer to a multiple of
16 words, less the
2 length words.
39672 for (i = b.length +
2; i &
15; i++) {
39676 // append the length
39677 b.push(Math.floor(this._length /
0x100000000));
39678 b.push(this._length |
0);
39681 this._block(b.splice(
0,
16));
39689 * The SHA-
256 initialization vector, to be precomputed.
39694 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
39698 * The SHA-
256 hash key, to be precomputed.
39704 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
39705 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
39706 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
39707 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
39708 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
39709 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
39710 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
39711 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
39716 * Function to precompute _init and _key.
39719 _precompute: function () {
39720 var i =
0, prime =
2, factor;
39722 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
39724 outer: for (; i
<64; prime++) {
39725 for (factor=
2; factor*factor <= prime; factor++) {
39726 if (prime % factor ===
0) {
39733 this._init[i] = frac(Math.pow(prime,
1/
2));
39735 this._key[i] = frac(Math.pow(prime,
1/
3));
39741 * Perform one cycle of SHA-
256.
39742 * @param {bitArray} words one block of words.
39745 _block:function (words) {
39747 w = words.slice(
0),
39750 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
39751 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
39753 /* Rationale for placement of |
0 :
39754 * If a value can overflow is original
32 bits by a factor of more than a few
39755 * million (
2^
23 ish), there is a possibility that it might overflow the
39756 *
53-bit mantissa and lose precision.
39758 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
39759 * propagates around the loop, and on the hash state h[]. I don't believe
39760 * that the clamps on h4 and on h0 are strictly necessary, but it's close
39761 * (for h4 anyway), and better safe than sorry.
39763 * The clamps on h[] are necessary for the output to be correct even in the
39764 * common case and for short inputs.
39766 for (i=
0; i
<64; i++) {
39767 // load up the input word for this round
39771 a = w[(i+
1 ) &
15];
39772 b = w[(i+
14) &
15];
39773 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
39774 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
39775 w[i&
15] + w[(i+
9) &
15]) |
0;
39778 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
39781 h7 = h6; h6 = h5; h5 = h4;
39783 h3 = h2; h2 = h1; h1 = h0;
39785 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
39788 h[
0] = h[
0]+h0 |
0;
39789 h[
1] = h[
1]+h1 |
0;
39790 h[
2] = h[
2]+h2 |
0;
39791 h[
3] = h[
3]+h3 |
0;
39792 h[
4] = h[
4]+h4 |
0;
39793 h[
5] = h[
5]+h5 |
0;
39794 h[
6] = h[
6]+h6 |
0;
39795 h[
7] = h[
7]+h7 |
0;
39799 <script>// An extremely basic translation library
39803 // Set some html to be translated. Do this using the 'data-translate' attribute:
39805 //
<div data-translate
>Test
</div>
39806 //
<div data-translate-html
><em>keep em tag
</em></div>
39807 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
39808 //
<span data-translate-title
title=
"Example title"></span>
39810 // Obtain all the phrases to be translated via js debug console:
39812 // Translate.phrasesAsJson();
39814 // Use that template to translate the phrases into another language.
39815 // Leave the key the same. Change the value to the new language.
39817 // Create a js file to load the new phrases. In this example for Spanish,
39818 // es.js will contain the following code:
39820 // Translate.loadForeignPhrases("es", {
39821 // "Test": "Test in Spanish",
39822 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
39823 // "Example placeholder
": "Example placeholder in Spanish
"
39824 // "Example title
": "Example title in Spanish
"
39827 // In your UI put a listener for clicking on the Spanish button:
39829 // mySpanishButton.addEventListener("click
", function() {
39830 // Translate.setLanguage("es
");
39832 // myEnglishButton.addEventListener("click
", function() {
39833 // Translate.setLanguage("en
");
39836 Translate = new (function() {
39838 var defaultLanguage = "en
";
39840 var allPhrases = {};
39841 allPhrases[defaultLanguage] = {};
39846 selector: "[data-translate]
",
39847 getKey: function() {
39848 return this.textContent.trim().replace(/\s+/g, " ");
39850 setPhrase: function(p) {
39851 this.textContent = p;
39856 selector: "[data-translate-html]
",
39857 getKey: function() {
39858 return this.innerHTML.trim().replace(/\s+/g, " ");
39860 setPhrase: function(p) {
39861 this.innerHTML = p;
39865 var placeholder = {
39866 selector: "[data-translate-placeholder]
",
39867 getKey: function() {
39868 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
39870 setPhrase: function(p) {
39871 this.setAttribute("placeholder
", p);
39876 selector: "[data-translate-title]
",
39877 getKey: function() {
39878 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
39880 setPhrase: function(p) {
39881 this.setAttribute("title
", p);
39885 // Get elements to be translated
39886 var allEls = getEls(text)
39887 .concat(getEls(html))
39888 .concat(getEls(placeholder))
39889 .concat(getEls(title));
39891 // Provides access to phrases from a non-default language.
39892 // See phrases_en.js for example usage.
39893 this.loadForeignPhrases = function(language, phrases) {
39894 allPhrases[language] = phrases;
39897 // Displays a different language, eg "en
" or "fr
"
39898 this.setLanguage = function(language) {
39899 for (var i=0; i<allEls.length; i++) {
39900 var el = allEls[i];
39902 if (!(language in allPhrases)) {
39903 console.log(language + " not in allPhrases
");
39906 if (!(key in allPhrases[language])) {
39907 console.log(language + " does not contain phrase:
" + key);
39910 var phrase = allPhrases[language][key];
39911 el.setPhrase(phrase);
39915 // Converts the phrases to a key-pair json file.
39916 // This is a good way to export phrases for use in translation tools.
39917 this.phrasesAsJson = function(language) {
39919 for (var i=0; i<allEls.length; i++) {
39920 var el = allEls[i];
39926 for (var i=0; i<keys.length; i++) {
39928 var translated = "";
39929 if (language in allPhrases && key in allPhrases[language]) {
39930 translated = allPhrases[language][key];
39932 output[key] = translated;
39934 return JSON.stringify(output, null, 2);
39937 function getEls(nodeType) {
39938 var nodes = document.querySelectorAll(nodeType.selector);
39940 for (var i=0; i<nodes.length; i++) {
39941 var node = nodes[i];
39942 node.getKey = nodeType.getKey;
39943 node.setPhrase = nodeType.setPhrase;
39944 node.key = node.getKey();
39945 allPhrases[defaultLanguage][node.key] = node.key;
39953 <script>Translate.loadForeignPhrases("en",
39955 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
39956 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
39957 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
39958 "
<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).",
39959 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
39960 "Account": "Account",
39961 "Address": "Address",
39962 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
39963 "BIP32 Derivation Path": "BIP32 Derivation Path",
39964 "BIP32 Extended Key": "BIP32 Extended Key",
39965 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
39966 "BIP32 Root Key": "BIP32 Root Key",
39967 "BIP39 Mnemonic": "BIP39 Mnemonic",
39968 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
39969 "BIP39 Seed": "BIP39 Seed",
39970 "Base
10": "Base
10",
39971 "Base
6": "Base
6",
39972 "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.",
39973 "Binary": "Binary",
39974 "Bitcoin Core": "Bitcoin Core",
39975 "Bits Per Event": "Bits Per Event",
39976 "Block Explorers": "Block Explorers",
39977 "Can be used with": "Can be used with",
39981 "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.",
39982 "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.",
39983 "Entropy": "Entropy",
39984 "Entropy Type": "Entropy Type",
39985 "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.",
39986 "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>.",
39987 "Event Count": "Event Count",
39988 "External / Internal": "External / Internal",
39989 "Filtered Entropy": "Filtered Entropy",
39990 "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>",
39991 "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>.",
39992 "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>.",
39993 "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>",
39994 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
39995 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
39996 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
39997 "Get the source code from the repository
": "Get the source code from the repository
",
39999 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
40000 "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.
",
40001 "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.
",
40002 "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.
",
40003 "Libraries
": "Libraries
",
40004 "Mnemonic Language
": "Mnemonic Language
",
40005 "Mnemonic Length
": "Mnemonic Length
",
40006 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
40007 "More info
": "More info
",
40008 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
40009 "Mycelium Wallet
": "Mycelium Wallet
",
40010 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
40011 "Offline Usage
": "Offline Usage
",
40012 "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.",
40014 "Private Key": "Private Key",
40015 "Private Keys": "Private Keys",
40016 "Public Key": "Public Key",
40017 "Purpose": "Purpose",
40018 "Raw Binary": "Raw Binary",
40019 "Read more": "Read more",
40020 "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>",
40021 "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>",
40022 "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>",
40023 "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>",
40025 "Show more rows
": "Show more rows
",
40026 "Strength
": "Strength
",
40027 "Supply my own source of entropy
": "Supply my own source of entropy
",
40028 "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.
",
40029 "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>.",
40030 "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.",
40031 "This project is
100% open-source code": "This project is
100% open-source code",
40032 "Toggle": "Toggle",
40033 "Total Bits": "Total Bits",
40034 "Use hardened addresses": "Use hardened addresses",
40035 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
40036 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
40037 "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>.",
40038 "Valid entropy values include:": "Valid entropy values include:",
40039 "Warning": "Warning",
40040 "Word Count": "Word Count",
40041 "You are not a good source of entropy.": "You are not a good source of entropy.",
40042 "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).",
40043 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
40048 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40049 WORDLISTS["english"] = [
40050 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
40051 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
40052 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
40053 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
40054 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
40055 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
40056 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
40057 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
40058 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
40059 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
40060 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
40061 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
40062 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
40063 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
40064 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
40065 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
40066 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
40067 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
40068 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
40069 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
40070 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
40071 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
40072 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
40073 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
40074 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
40075 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
40076 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
40077 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
40078 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
40079 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
40080 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
40081 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
40082 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
40083 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
40084 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
40085 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
40086 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
40087 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
40088 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
40089 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
40090 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
40091 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
40092 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
40093 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
40094 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
40095 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
40096 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
40097 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
40098 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
40099 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
40100 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
40101 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
40102 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
40103 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
40104 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
40105 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
40106 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
40107 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
40108 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
40109 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
40110 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
40111 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
40112 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
40113 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
40114 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
40115 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
40116 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
40117 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
40118 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
40119 "film","filter","final","find","fine","finger","finish","fire","firm","first",
40120 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
40121 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
40122 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
40123 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
40124 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
40125 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
40126 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
40127 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
40128 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
40129 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
40130 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
40131 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
40132 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
40133 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
40134 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
40135 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
40136 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
40137 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
40138 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
40139 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
40140 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
40141 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
40142 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
40143 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
40144 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
40145 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
40146 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
40147 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
40148 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
40149 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
40150 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
40151 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
40152 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
40153 "liar","liberty","library","license","life","lift","light","like","limb","limit",
40154 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
40155 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
40156 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
40157 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
40158 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
40159 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
40160 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
40161 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
40162 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
40163 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
40164 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
40165 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
40166 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
40167 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
40168 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
40169 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
40170 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
40171 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
40172 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
40173 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
40174 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
40175 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
40176 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
40177 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
40178 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
40179 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
40180 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
40181 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
40182 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
40183 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
40184 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
40185 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
40186 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
40187 "prize","problem","process","produce","profit","program","project","promote","proof","property",
40188 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
40189 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
40190 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
40191 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
40192 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
40193 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
40194 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
40195 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
40196 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
40197 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
40198 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
40199 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
40200 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
40201 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
40202 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
40203 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
40204 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
40205 "scrub","sea","search","season","seat","second","secret","section","security","seed",
40206 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
40207 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
40208 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
40209 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
40210 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
40211 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
40212 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
40213 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
40214 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
40215 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
40216 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
40217 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
40218 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
40219 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
40220 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
40221 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
40222 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
40223 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
40224 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
40225 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
40226 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
40227 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
40228 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
40229 "thank","that","theme","then","theory","there","they","thing","this","thought",
40230 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
40231 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
40232 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
40233 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
40234 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
40235 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
40236 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
40237 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
40238 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
40239 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
40240 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
40241 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
40242 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
40243 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
40244 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
40245 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
40246 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
40247 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
40248 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
40249 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
40250 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
40251 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
40252 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
40253 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
40254 "yellow","you","young","youth","zebra","zero","zone","zoo"]
40256 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40257 WORDLISTS["japanese"] = [
40258 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
40259 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
40260 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
40261 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
40262 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
40263 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
40264 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
40265 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
40266 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
40267 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
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 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
40464 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40465 WORDLISTS["spanish"] = [
40466 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
40467 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
40468 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
40469 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
40470 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
40471 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
40472 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
40473 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
40474 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
40475 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
40476 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
40477 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
40478 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
40479 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
40480 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
40481 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
40482 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
40483 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
40484 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
40485 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
40486 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
40487 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
40488 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
40489 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
40490 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
40491 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
40492 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
40493 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
40494 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
40495 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
40496 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
40497 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
40498 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
40499 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
40500 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
40501 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
40502 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
40503 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
40504 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
40505 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
40506 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
40507 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
40508 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
40509 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
40510 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
40511 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
40512 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
40513 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
40514 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
40515 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
40516 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
40517 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
40518 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
40519 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
40520 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
40521 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
40522 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
40523 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
40524 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
40525 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
40526 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
40527 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
40528 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
40529 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
40530 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
40531 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
40532 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
40533 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
40534 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
40535 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
40536 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
40537 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
40538 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
40539 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
40540 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
40541 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
40542 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
40543 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
40544 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
40545 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
40546 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
40547 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
40548 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
40549 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
40550 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
40551 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
40552 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
40553 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
40554 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
40555 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
40556 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
40557 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
40558 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
40559 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
40560 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
40561 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
40562 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
40563 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
40564 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
40565 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
40566 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
40567 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
40568 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
40569 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
40570 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
40571 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
40572 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
40573 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
40574 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
40575 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
40576 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
40577 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
40578 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
40579 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
40580 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
40581 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
40582 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
40583 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
40584 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
40585 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
40586 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
40587 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
40588 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
40589 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
40590 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
40591 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
40592 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
40593 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
40594 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
40595 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
40596 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
40597 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
40598 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
40599 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
40600 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
40601 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
40602 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
40603 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
40604 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
40605 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
40606 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
40607 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
40608 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
40609 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
40610 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
40611 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
40612 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
40613 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
40614 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
40615 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
40616 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
40617 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
40618 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
40619 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
40620 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
40621 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
40622 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
40623 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
40624 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
40625 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
40626 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
40627 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
40628 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
40629 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
40630 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
40631 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
40632 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
40633 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
40634 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
40635 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
40636 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
40637 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
40638 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
40639 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
40640 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
40641 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
40642 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
40643 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
40644 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
40645 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
40646 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
40647 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
40648 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
40649 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
40650 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
40651 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
40652 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
40653 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
40654 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
40655 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
40656 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
40657 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
40658 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
40659 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
40660 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
40661 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
40662 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
40663 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
40664 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
40665 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
40666 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
40667 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
40668 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
40669 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
40670 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
40672 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40673 WORDLISTS["chinese_simplified"] = [
40674 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
40675 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
40676 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
40677 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
40678 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
40679 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
40680 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
40681 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
40682 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
40683 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
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 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
40880 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40881 WORDLISTS["chinese_traditional"] = [
40882 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
40883 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
40884 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
40885 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
40886 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
40887 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
40888 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
40889 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
40890 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
40891 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
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 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
41088 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
41089 WORDLISTS["french"] = [
41090 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
41091 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
41092 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
41093 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
41094 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
41095 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
41096 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
41097 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
41098 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
41099 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
41100 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
41101 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
41102 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
41103 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
41104 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
41105 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
41106 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
41107 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
41108 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
41109 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
41110 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
41111 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
41112 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
41113 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
41114 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
41115 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
41116 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
41117 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
41118 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
41119 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
41120 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
41121 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
41122 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
41123 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
41124 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
41125 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
41126 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
41127 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
41128 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
41129 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
41130 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
41131 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
41132 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
41133 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
41134 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
41135 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
41136 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
41137 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
41138 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
41139 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
41140 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
41141 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
41142 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
41143 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
41144 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
41145 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
41146 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
41147 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
41148 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
41149 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
41150 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
41151 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
41152 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
41153 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
41154 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
41155 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
41156 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
41157 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
41158 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
41159 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
41160 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
41161 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
41162 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
41163 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
41164 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
41165 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
41166 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
41167 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
41168 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
41169 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
41170 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
41171 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
41172 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
41173 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
41174 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
41175 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
41176 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
41177 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
41178 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
41179 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
41180 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
41181 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
41182 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
41183 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
41184 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
41185 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
41186 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
41187 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
41188 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
41189 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
41190 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
41191 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
41192 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
41193 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
41194 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
41195 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
41196 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
41197 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
41198 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
41199 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
41200 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
41201 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
41202 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
41203 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
41204 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
41205 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
41206 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
41207 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
41208 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
41209 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
41210 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
41211 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
41212 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
41213 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
41214 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
41215 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
41216 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
41217 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
41218 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
41219 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
41220 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
41221 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
41222 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
41223 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
41224 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
41225 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
41226 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
41227 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
41228 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
41229 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
41230 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
41231 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
41232 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
41233 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
41234 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
41235 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
41236 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
41237 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
41238 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
41239 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
41240 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
41241 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
41242 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
41243 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
41244 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
41245 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
41246 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
41247 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
41248 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
41249 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
41250 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
41251 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
41252 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
41253 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
41254 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
41255 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
41256 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
41257 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
41258 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
41259 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
41260 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
41261 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
41262 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
41263 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
41264 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
41265 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
41266 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
41267 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
41268 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
41269 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
41270 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
41271 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
41272 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
41273 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
41274 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
41275 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
41276 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
41277 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
41278 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
41279 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
41280 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
41281 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
41282 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
41283 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
41284 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
41285 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
41286 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
41287 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
41288 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
41289 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
41290 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
41291 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
41292 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
41293 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
41294 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
41296 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
41297 WORDLISTS["italian"] = [
41298 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
41299 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
41300 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
41301 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
41302 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
41303 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
41304 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
41305 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
41306 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
41307 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
41308 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
41309 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
41310 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
41311 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
41312 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
41313 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
41314 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
41315 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
41316 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
41317 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
41318 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
41319 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
41320 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
41321 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
41322 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
41323 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
41324 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
41325 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
41326 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
41327 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
41328 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
41329 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
41330 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
41331 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
41332 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
41333 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
41334 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
41335 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
41336 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
41337 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
41338 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
41339 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
41340 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
41341 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
41342 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
41343 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
41344 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
41345 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
41346 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
41347 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
41348 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
41349 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
41350 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
41351 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
41352 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
41353 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
41354 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
41355 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
41356 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
41357 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
41358 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
41359 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
41360 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
41361 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
41362 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
41363 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
41364 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
41365 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
41366 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
41367 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
41368 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
41369 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
41370 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
41371 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
41372 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
41373 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
41374 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
41375 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
41376 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
41377 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
41378 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
41379 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
41380 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
41381 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
41382 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
41383 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
41384 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
41385 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
41386 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
41387 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
41388 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
41389 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
41390 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
41391 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
41392 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
41393 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
41394 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
41395 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
41396 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
41397 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
41398 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
41399 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
41400 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
41401 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
41402 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
41403 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
41404 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
41405 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
41406 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
41407 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
41408 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
41409 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
41410 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
41411 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
41412 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
41413 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
41414 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
41415 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
41416 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
41417 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
41418 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
41419 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
41420 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
41421 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
41422 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
41423 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
41424 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
41425 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
41426 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
41427 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
41428 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
41429 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
41430 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
41431 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
41432 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
41433 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
41434 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
41435 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
41436 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
41437 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
41438 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
41439 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
41440 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
41441 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
41442 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
41443 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
41444 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
41445 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
41446 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
41447 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
41448 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
41449 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
41450 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
41451 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
41452 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
41453 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
41454 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
41455 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
41456 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
41457 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
41458 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
41459 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
41460 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
41461 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
41462 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
41463 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
41464 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
41465 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
41466 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
41467 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
41468 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
41469 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
41470 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
41471 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
41472 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
41473 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
41474 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
41475 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
41476 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
41477 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
41478 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
41479 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
41480 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
41481 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
41482 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
41483 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
41484 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
41485 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
41486 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
41487 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
41488 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
41489 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
41490 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
41491 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
41492 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
41493 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
41494 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
41495 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
41496 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
41497 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
41498 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
41499 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
41500 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
41501 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
41502 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
41505 * Copyright (c)
2013 Pavol Rusnak
41507 * Permission is hereby granted, free of charge, to any person obtaining a copy of
41508 * this software and associated documentation files (the "Software"), to deal in
41509 * the Software without restriction, including without limitation the rights to
41510 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
41511 * of the Software, and to permit persons to whom the Software is furnished to do
41512 * so, subject to the following conditions:
41514 * The above copyright notice and this permission notice shall be included in all
41515 * copies or substantial portions of the Software.
41517 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
41518 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
41519 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
41520 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41521 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
41522 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
41526 * Javascript port from python by Ian Coleman
41528 * Requires code from sjcl
41529 * https://github.com/bitwiseshiftleft/sjcl
41532 var Mnemonic = function(language) {
41534 var PBKDF2_ROUNDS =
2048;
41540 var hmacSHA512 = function(key) {
41541 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
41542 this.encrypt = function() {
41543 return hasher.encrypt.apply(hasher, arguments);
41548 wordlist = WORDLISTS[language];
41549 if (wordlist.length != RADIX) {
41550 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
41555 self.generate = function(strength) {
41556 strength = strength ||
128;
41557 var r = strength %
32;
41559 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
41561 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
41562 if (!hasStrongCrypto) {
41563 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
41565 var buffer = new Uint8Array(strength /
8);
41566 var data = crypto.getRandomValues(buffer);
41567 return self.toMnemonic(data);
41570 self.toMnemonic = function(byteArray) {
41571 if (byteArray.length %
4 > 0) {
41572 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
41575 //h = hashlib.sha256(data).hexdigest()
41576 var data = byteArrayToWordArray(byteArray);
41577 var hash = sjcl.hash.sha256.hash(data);
41578 var h = sjcl.codec.hex.fromBits(hash);
41580 // b is a binary string, eg '
00111010101100...'
41581 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
41582 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
41584 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
41585 // c = bin(int(h,
16))[
2:].zfill(
256)
41586 // d = c[:len(data) *
8 /
32]
41587 var a = byteArrayToBinaryString(byteArray);
41588 var c = zfill(hexStringToBinaryString(h),
256);
41589 var d = c.substring(
0, byteArray.length *
8 /
32);
41590 // b = line1 + line2
41594 var blen = b.length /
11;
41595 for (var i=
0; i
<blen; i++) {
41596 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
41597 result.push(wordlist[idx]);
41599 return self.joinWords(result);
41602 self.check = function(mnemonic) {
41603 var mnemonic = self.splitWords(mnemonic);
41604 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
41607 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
41609 for (var i=
0; i
<mnemonic.length; i++) {
41610 var word = mnemonic[i];
41611 var wordIndex = wordlist.indexOf(word);
41612 if (wordIndex == -
1) {
41615 var binaryIndex = zfill(wordIndex.toString(
2),
11);
41616 idx.push(binaryIndex);
41618 var b = idx.join('');
41620 //d = b[:l /
33 *
32]
41622 var d = b.substring(
0, l /
33 *
32);
41623 var h = b.substring(l - l /
33, l);
41624 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
41625 var nd = binaryStringToWordArray(d);
41626 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
41627 var ndHash = sjcl.hash.sha256.hash(nd);
41628 var ndHex = sjcl.codec.hex.fromBits(ndHash);
41629 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
41630 var nh = ndBstr.substring(
0,l/
33);
41634 self.toSeed = function(mnemonic, passphrase) {
41635 passphrase = passphrase || '';
41636 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
41637 var mnemonicNormalized = self.normalizeString(mnemonic);
41638 passphrase = self.normalizeString(passphrase)
41639 passphrase =
"mnemonic" + passphrase;
41640 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
41641 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
41642 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
41643 var hashHex = sjcl.codec.hex.fromBits(result);
41647 self.splitWords = function(mnemonic) {
41648 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
41651 self.joinWords = function(words) {
41652 // Set space correctly depending on the language
41653 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
41655 if (language ==
"japanese") {
41656 space =
"\u3000"; // ideographic space
41658 return words.join(space);
41661 self.normalizeString = function(str) {
41662 if (typeof str.normalize ==
"function") {
41663 return str.normalize(
"NFKD");
41666 // TODO decide how to handle this in the future.
41667 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
41672 function byteArrayToWordArray(data) {
41674 for (var i=
0; i
<data.length/
4; i++) {
41676 v += data[i*
4 +
0] <<
8 *
3;
41677 v += data[i*
4 +
1] <<
8 *
2;
41678 v += data[i*
4 +
2] <<
8 *
1;
41679 v += data[i*
4 +
3] <<
8 *
0;
41685 function byteArrayToBinaryString(data) {
41687 for (var i=
0; i
<data.length; i++) {
41688 bin += zfill(data[i].toString(
2),
8);
41693 function hexStringToBinaryString(hexString) {
41695 for (var i=
0; i
<hexString.length; i++) {
41696 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
41698 return binaryString;
41701 function binaryStringToWordArray(binary) {
41702 var aLen = binary.length /
32;
41704 for (var i=
0; i
<aLen; i++) {
41705 var valueStr = binary.substring(
0,
32);
41706 var value = parseInt(valueStr,
2);
41708 binary = binary.slice(
32);
41713 // Pad a numeric string on the left with zero digits until the given width
41715 // Note this differs to the python implementation because it does not
41716 // handle numbers starting with a sign.
41717 function zfill(source, length) {
41718 source = source.toString();
41719 while (source.length < length) {
41720 source = '
0' + source;
41730 JavaScript BigInteger library version
0.9.1
41731 http://silentmatt.com/biginteger/
41733 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
41734 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
41735 Licensed under the MIT license.
41737 Support for arbitrary internal representation base was added by
41742 File: biginteger.js
41748 (function(exports) {
41752 An arbitrarily-large integer.
41754 <BigInteger> objects should be considered immutable. None of the "built-in"
41755 methods modify *this* or their arguments. All properties should be
41756 considered private.
41758 All the methods of
<BigInteger> instances can be called "statically". The
41759 static versions are convenient if you don't already have a
<BigInteger>
41762 As an example, these calls are equivalent.
41764 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
41765 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
41768 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
41771 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
41774 Constructor: BigInteger()
41775 Convert a value to a
<BigInteger>.
41777 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
41778 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
41779 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
41780 without a radix argument.
41782 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
41783 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
41784 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
41785 > var n3 = BigInteger(n2); // Return n2, unchanged
41787 The constructor form only takes an array and a sign. *n* must be an
41788 array of numbers in little-endian order, where each digit is between
0
41789 and BigInteger.base. The second parameter sets the sign: -
1 for
41790 negative, +
1 for positive, or
0 for zero. The array is *not copied and
41791 may be modified*. If the array contains only zeros, the sign parameter
41792 is ignored and is forced to zero.
41794 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
41798 n - Value to convert to a
<BigInteger>.
41802 A
<BigInteger> value.
41806 <parse>,
<BigInteger>
41808 function BigInteger(n, s, token) {
41809 if (token !== CONSTRUCT) {
41810 if (n instanceof BigInteger) {
41813 else if (typeof n === "undefined") {
41816 return BigInteger.parse(n);
41819 n = n || []; // Provide the nullary constructor for subclasses.
41820 while (n.length && !n[n.length -
1]) {
41824 this._s = n.length ? (s ||
1) :
0;
41827 BigInteger._construct = function(n, s) {
41828 return new BigInteger(n, s, CONSTRUCT);
41831 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
41832 // require base to be a power of
10.
10^
7 is the largest such power
41833 // that won't cause a precision loss when digits are multiplied.
41834 var BigInteger_base =
10000000;
41835 var BigInteger_base_log10 =
7;
41837 BigInteger.base = BigInteger_base;
41838 BigInteger.base_log10 = BigInteger_base_log10;
41840 var ZERO = new BigInteger([],
0, CONSTRUCT);
41843 BigInteger.ZERO = ZERO;
41845 var ONE = new BigInteger([
1],
1, CONSTRUCT);
41848 BigInteger.ONE = ONE;
41850 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
41852 //
<BigInteger> -
1.
41853 BigInteger.M_ONE = M_ONE;
41856 // Shortcut for
<ZERO>.
41857 BigInteger._0 = ZERO;
41860 // Shortcut for
<ONE>.
41861 BigInteger._1 = ONE;
41865 Array of
<BigIntegers> from
0 to
36.
41867 These are used internally for parsing, but useful when you need a "small"
41872 <ZERO>,
<ONE>,
<_0>,
<_1>
41874 BigInteger.small = [
41877 /* Assuming BigInteger_base
> 36 */
41878 new BigInteger( [
2],
1, CONSTRUCT),
41879 new BigInteger( [
3],
1, CONSTRUCT),
41880 new BigInteger( [
4],
1, CONSTRUCT),
41881 new BigInteger( [
5],
1, CONSTRUCT),
41882 new BigInteger( [
6],
1, CONSTRUCT),
41883 new BigInteger( [
7],
1, CONSTRUCT),
41884 new BigInteger( [
8],
1, CONSTRUCT),
41885 new BigInteger( [
9],
1, CONSTRUCT),
41886 new BigInteger([
10],
1, CONSTRUCT),
41887 new BigInteger([
11],
1, CONSTRUCT),
41888 new BigInteger([
12],
1, CONSTRUCT),
41889 new BigInteger([
13],
1, CONSTRUCT),
41890 new BigInteger([
14],
1, CONSTRUCT),
41891 new BigInteger([
15],
1, CONSTRUCT),
41892 new BigInteger([
16],
1, CONSTRUCT),
41893 new BigInteger([
17],
1, CONSTRUCT),
41894 new BigInteger([
18],
1, CONSTRUCT),
41895 new BigInteger([
19],
1, CONSTRUCT),
41896 new BigInteger([
20],
1, CONSTRUCT),
41897 new BigInteger([
21],
1, CONSTRUCT),
41898 new BigInteger([
22],
1, CONSTRUCT),
41899 new BigInteger([
23],
1, CONSTRUCT),
41900 new BigInteger([
24],
1, CONSTRUCT),
41901 new BigInteger([
25],
1, CONSTRUCT),
41902 new BigInteger([
26],
1, CONSTRUCT),
41903 new BigInteger([
27],
1, CONSTRUCT),
41904 new BigInteger([
28],
1, CONSTRUCT),
41905 new BigInteger([
29],
1, CONSTRUCT),
41906 new BigInteger([
30],
1, CONSTRUCT),
41907 new BigInteger([
31],
1, CONSTRUCT),
41908 new BigInteger([
32],
1, CONSTRUCT),
41909 new BigInteger([
33],
1, CONSTRUCT),
41910 new BigInteger([
34],
1, CONSTRUCT),
41911 new BigInteger([
35],
1, CONSTRUCT),
41912 new BigInteger([
36],
1, CONSTRUCT)
41915 // Used for parsing/radix conversion
41916 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
41920 Convert a
<BigInteger> to a string.
41922 When *base* is greater than
10, letters are upper case.
41926 base - Optional base to represent the number in (default is base
10).
41927 Must be between
2 and
36 inclusive, or an Error will be thrown.
41931 The string representation of the
<BigInteger>.
41933 BigInteger.prototype.toString = function(base) {
41934 base = +base ||
10;
41935 if (base <
2 || base
> 36) {
41936 throw new Error(
"illegal radix " + base +
".");
41938 if (this._s ===
0) {
41942 var str = this._s <
0 ?
"-" :
"";
41943 str += this._d[this._d.length -
1].toString();
41944 for (var i = this._d.length -
2; i
>=
0; i--) {
41945 var group = this._d[i].toString();
41946 while (group.length < BigInteger_base_log10) group = '
0' + group;
41952 var numerals = BigInteger.digits;
41953 base = BigInteger.small[base];
41954 var sign = this._s;
41956 var n = this.abs();
41960 while (n._s !==
0) {
41961 var divmod = n.divRem(base);
41964 // TODO: This could be changed to unshift instead of reversing at the end.
41965 // Benchmark both to compare speeds.
41966 digits.push(numerals[digit.valueOf()]);
41968 return (sign <
0 ? "-" : "") + digits.reverse().join("");
41972 // Verify strings for parsing
41973 BigInteger.radixRegex = [
42015 Parse a string into a
<BigInteger>.
42017 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
42018 *base* is not provided, it will be guessed based on the leading characters
42021 - "
0x" or "
0X": *base* =
16
42022 - "
0c" or "
0C": *base* =
8
42023 - "
0b" or "
0B": *base* =
2
42024 - else: *base* =
10
42026 If no base is provided, or *base* is
10, the number can be in exponential
42027 form. For example, these are all valid:
42029 > BigInteger.parse("
1e9"); // Same as "
1000000000"
42030 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
42031 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
42033 If any characters fall outside the range defined by the radix, an exception
42038 s - The string to parse.
42039 base - Optional radix (default is to guess based on *s*).
42043 a
<BigInteger> instance.
42045 BigInteger.parse = function(s, base) {
42046 // Expands a number in exponential form to decimal form.
42047 // expandExponential("-
13.441*
10^
5") === "
1344100";
42048 // expandExponential("
1.12300e-1") === "
0.112300";
42049 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
42050 function expandExponential(str) {
42051 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
42053 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
42056 var i = n.length + c;
42057 x = (l ? n : f).length;
42058 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
42059 var z = (new Array(c +
1)).join("
0");
42061 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
42066 if (typeof base === "undefined" || +base ===
10) {
42067 s = expandExponential(s);
42071 if (typeof base === "undefined") {
42072 prefixRE = '
0[xcb]';
42074 else if (base ==
16) {
42077 else if (base ==
8) {
42080 else if (base ==
2) {
42086 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
42088 var sign = parts[
1] || "+";
42089 var baseSection = parts[
2] || "";
42090 var digits = parts[
3] || "";
42092 if (typeof base === "undefined") {
42094 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
42097 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
42100 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
42107 else if (base <
2 || base
> 36) {
42108 throw new Error(
"Illegal radix " + base +
".");
42113 // Check for digits outside the range
42114 if (!(BigInteger.radixRegex[base].test(digits))) {
42115 throw new Error(
"Bad digit for radix " + base);
42118 // Strip leading zeros, and convert to array
42119 digits = digits.replace(/^
0+/,
"").split(
"");
42120 if (digits.length ===
0) {
42124 // Get the sign (we know it's not zero)
42125 sign = (sign ===
"-") ? -
1 :
1;
42130 while (digits.length
>= BigInteger_base_log10) {
42131 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
42133 d.push(parseInt(digits.join(''),
10));
42134 return new BigInteger(d, sign, CONSTRUCT);
42137 // Do the conversion
42139 base = BigInteger.small[base];
42140 var small = BigInteger.small;
42141 for (var i =
0; i < digits.length; i++) {
42142 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
42144 return new BigInteger(d._d, sign, CONSTRUCT);
42147 throw new Error("Invalid BigInteger format: " + s);
42153 Add two
<BigIntegers>.
42157 n - The number to add to *this*. Will be converted to a
<BigInteger>.
42161 The numbers added together.
42165 <subtract>,
<multiply>,
<quotient>,
<next>
42167 BigInteger.prototype.add = function(n) {
42168 if (this._s ===
0) {
42169 return BigInteger(n);
42176 if (this._s !== n._s) {
42178 return this.subtract(n);
42185 var sum = new Array(Math.max(al, bl) +
1);
42186 var size = Math.min(al, bl);
42190 for (var i =
0; i < size; i++) {
42191 digit = a[i] + b[i] + carry;
42192 sum[i] = digit % BigInteger_base;
42193 carry = (digit / BigInteger_base) |
0;
42199 for (i = size; carry && i < al; i++) {
42200 digit = a[i] + carry;
42201 sum[i] = digit % BigInteger_base;
42202 carry = (digit / BigInteger_base) |
0;
42208 for ( ; i < al; i++) {
42212 return new BigInteger(sum, this._s, CONSTRUCT);
42217 Get the additive inverse of a
<BigInteger>.
42221 A
<BigInteger> with the same magnatude, but with the opposite sign.
42227 BigInteger.prototype.negate = function() {
42228 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
42233 Get the absolute value of a
<BigInteger>.
42237 A
<BigInteger> with the same magnatude, but always positive (or zero).
42243 BigInteger.prototype.abs = function() {
42244 return (this._s <
0) ? this.negate() : this;
42249 Subtract two
<BigIntegers>.
42253 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
42257 The *n* subtracted from *this*.
42261 <add>,
<multiply>,
<quotient>,
<prev>
42263 BigInteger.prototype.subtract = function(n) {
42264 if (this._s ===
0) {
42265 return BigInteger(n).negate();
42272 if (this._s !== n._s) {
42274 return this.add(n);
42278 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
42280 m = new BigInteger(n._d,
1, CONSTRUCT);
42281 n = new BigInteger(this._d,
1, CONSTRUCT);
42284 // Both are positive =
> a - b
42285 var sign = m.compareAbs(n);
42289 else if (sign <
0) {
42301 var diff = new Array(al); // al
>= bl since a
> b
42306 for (i =
0; i < bl; i++) {
42307 digit = a[i] - borrow - b[i];
42309 digit += BigInteger_base;
42317 for (i = bl; i < al; i++) {
42318 digit = a[i] - borrow;
42320 digit += BigInteger_base;
42328 for ( ; i < al; i++) {
42332 return new BigInteger(diff, sign, CONSTRUCT);
42336 function addOne(n, sign) {
42338 var sum = a.slice();
42343 var digit = (a[i] ||
0) +
1;
42344 sum[i] = digit % BigInteger_base;
42345 if (digit <= BigInteger_base -
1) {
42351 return new BigInteger(sum, sign, CONSTRUCT);
42354 function subtractOne(n, sign) {
42356 var sum = a.slice();
42361 var digit = (a[i] ||
0) -
1;
42363 sum[i] = digit + BigInteger_base;
42372 return new BigInteger(sum, sign, CONSTRUCT);
42377 Get the next
<BigInteger> (add one).
42387 BigInteger.prototype.next = function() {
42392 return subtractOne(this, -
1);
42395 return addOne(this,
1);
42401 Get the previous
<BigInteger> (subtract one).
42411 BigInteger.prototype.prev = function() {
42416 return addOne(this, -
1);
42419 return subtractOne(this,
1);
42425 Function: compareAbs
42426 Compare the absolute value of two
<BigIntegers>.
42428 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
42432 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
42436 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
42442 BigInteger.prototype.compareAbs = function(n) {
42447 if (!(n instanceof BigInteger)) {
42448 if (!isFinite(n)) {
42449 return(isNaN(n) ? n : -
1);
42454 if (this._s ===
0) {
42455 return (n._s !==
0) ? -
1 :
0;
42461 var l = this._d.length;
42462 var nl = n._d.length;
42472 for (var i = l-
1; i
>=
0; i--) {
42473 if (a[i] !== b[i]) {
42474 return a[i] < b[i] ? -
1 :
1;
42483 Compare two
<BigIntegers>.
42487 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
42491 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
42495 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
42497 BigInteger.prototype.compare = function(n) {
42504 if (this._s ===
0) {
42508 if (this._s === n._s) { // both positive or both negative
42509 var cmp = this.compareAbs(n);
42510 return cmp * this._s;
42519 Return true iff *this* is either
1 or -
1.
42523 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
42527 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
42528 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
42530 BigInteger.prototype.isUnit = function() {
42531 return this === ONE ||
42533 (this._d.length ===
1 && this._d[
0] ===
1);
42538 Multiply two
<BigIntegers>.
42542 n - The number to multiply *this* by. Will be converted to a
42547 The numbers multiplied together.
42551 <add>,
<subtract>,
<quotient>,
<square>
42553 BigInteger.prototype.multiply = function(n) {
42554 // TODO: Consider adding Karatsuba multiplication for large numbers
42555 if (this._s ===
0) {
42563 if (this.isUnit()) {
42571 return this.negate();
42576 return this.square();
42579 var r = (this._d.length
>= n._d.length);
42580 var a = (r ? this : n)._d; // a will be longer than b
42581 var b = (r ? n : this)._d;
42586 var partial = new Array(pl);
42588 for (i =
0; i < pl; i++) {
42592 for (i =
0; i < bl; i++) {
42595 var jlimit = al + i;
42597 for (var j = i; j < jlimit; j++) {
42598 digit = partial[j] + bi * a[j - i] + carry;
42599 carry = (digit / BigInteger_base) |
0;
42600 partial[j] = (digit % BigInteger_base) |
0;
42603 digit = partial[j] + carry;
42604 carry = (digit / BigInteger_base) |
0;
42605 partial[j] = digit % BigInteger_base;
42608 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
42611 // Multiply a BigInteger by a single-digit native number
42612 // Assumes that this and n are
>=
0
42613 // This is not really intended to be used outside the library itself
42614 BigInteger.prototype.multiplySingleDigit = function(n) {
42615 if (n ===
0 || this._s ===
0) {
42623 if (this._d.length ===
1) {
42624 digit = this._d[
0] * n;
42625 if (digit
>= BigInteger_base) {
42626 return new BigInteger([(digit % BigInteger_base)|
0,
42627 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
42629 return new BigInteger([digit],
1, CONSTRUCT);
42633 return this.add(this);
42635 if (this.isUnit()) {
42636 return new BigInteger([n],
1, CONSTRUCT);
42643 var partial = new Array(pl);
42644 for (var i =
0; i < pl; i++) {
42649 for (var j =
0; j < al; j++) {
42650 digit = n * a[j] + carry;
42651 carry = (digit / BigInteger_base) |
0;
42652 partial[j] = (digit % BigInteger_base) |
0;
42655 partial[j] = carry;
42658 return new BigInteger(partial,
1, CONSTRUCT);
42663 Multiply a
<BigInteger> by itself.
42665 This is slightly faster than regular multiplication, since it removes the
42666 duplicated multiplcations.
42670 > this.multiply(this)
42675 BigInteger.prototype.square = function() {
42676 // Normally, squaring a
10-digit number would take
100 multiplications.
42677 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
42678 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
42679 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
42681 if (this._s ===
0) {
42684 if (this.isUnit()) {
42688 var digits = this._d;
42689 var length = digits.length;
42690 var imult1 = new Array(length + length +
1);
42691 var product, carry, k;
42694 // Calculate diagonal
42695 for (i =
0; i < length; i++) {
42697 product = digits[i] * digits[i];
42698 carry = (product / BigInteger_base) |
0;
42699 imult1[k] = product % BigInteger_base;
42700 imult1[k +
1] = carry;
42703 // Calculate repeating part
42704 for (i =
0; i < length; i++) {
42707 for (var j = i +
1; j < length; j++, k++) {
42708 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
42709 carry = (product / BigInteger_base) |
0;
42710 imult1[k] = product % BigInteger_base;
42713 var digit = carry + imult1[k];
42714 carry = (digit / BigInteger_base) |
0;
42715 imult1[k] = digit % BigInteger_base;
42716 imult1[k +
1] += carry;
42719 return new BigInteger(imult1,
1, CONSTRUCT);
42724 Divide two
<BigIntegers> and truncate towards zero.
42726 <quotient> throws an exception if *n* is zero.
42730 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
42734 The *this* / *n*, truncated to an integer.
42738 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
42740 BigInteger.prototype.quotient = function(n) {
42741 return this.divRem(n)[
0];
42746 Deprecated synonym for
<quotient>.
42748 BigInteger.prototype.divide = BigInteger.prototype.quotient;
42751 Function: remainder
42752 Calculate the remainder of two
<BigIntegers>.
42754 <remainder> throws an exception if *n* is zero.
42758 n - The remainder after *this* is divided *this* by *n*. Will be
42759 converted to a
<BigInteger>.
42767 <divRem>,
<quotient>
42769 BigInteger.prototype.remainder = function(n) {
42770 return this.divRem(n)[
1];
42775 Calculate the integer quotient and remainder of two
<BigIntegers>.
42777 <divRem> throws an exception if *n* is zero.
42781 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
42785 A two-element array containing the quotient and the remainder.
42789 is exactly equivalent to
42791 > [a.quotient(b), a.remainder(b)]
42793 except it is faster, because they are calculated at the same time.
42797 <quotient>,
<remainder>
42799 BigInteger.prototype.divRem = function(n) {
42802 throw new Error("Divide by zero");
42804 if (this._s ===
0) {
42805 return [ZERO, ZERO];
42807 if (n._d.length ===
1) {
42808 return this.divRemSmall(n._s * n._d[
0]);
42811 // Test for easy cases -- |n1| <= |n2|
42812 switch (this.compareAbs(n)) {
42813 case
0: // n1 == n2
42814 return [this._s === n._s ? ONE : M_ONE, ZERO];
42815 case -
1: // |n1| < |n2|
42816 return [ZERO, this];
42819 var sign = this._s * n._s;
42821 var b_digits = this._d;
42822 var b_index = b_digits.length;
42823 var digits = n._d.length;
42827 var part = new BigInteger([],
0, CONSTRUCT);
42830 part._d.unshift(b_digits[--b_index]);
42831 part = new BigInteger(part._d,
1, CONSTRUCT);
42833 if (part.compareAbs(n) <
0) {
42837 if (part._s ===
0) {
42841 var xlen = part._d.length, ylen = a._d.length;
42842 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
42843 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
42844 if (part._d.length
> a._d.length) {
42845 // The length of part._d can either match a._d length,
42846 // or exceed it by one.
42847 highx = (highx+
1)*BigInteger_base;
42849 guess = Math.ceil(highx/highy);
42852 var check = a.multiplySingleDigit(guess);
42853 if (check.compareAbs(part) <=
0) {
42863 var diff = part.subtract(check);
42864 part._d = diff._d.slice();
42867 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
42868 new BigInteger(part._d, this._s, CONSTRUCT)];
42871 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
42872 // [
1, BigInteger.base). It's not necessary to call this, since the
42873 // other division functions will call it if they are able to.
42874 BigInteger.prototype.divRemSmall = function(n) {
42878 throw new Error("Divide by zero");
42881 var n_s = n <
0 ? -
1 :
1;
42882 var sign = this._s * n_s;
42885 if (n <
1 || n
>= BigInteger_base) {
42886 throw new Error("Argument out of range");
42889 if (this._s ===
0) {
42890 return [ZERO, ZERO];
42893 if (n ===
1 || n === -
1) {
42894 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
42897 //
2 <= n < BigInteger_base
42899 // divide a single digit by a single digit
42900 if (this._d.length ===
1) {
42901 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
42902 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
42912 var digits = this._d.slice();
42913 var quot = new Array(digits.length);
42919 while (digits.length) {
42920 part = part * BigInteger_base + digits[digits.length -
1];
42924 diff = BigInteger_base * diff + part;
42931 guess = (part / n) |
0;
42934 var check = n * guess;
42935 diff = part - check;
42946 r = new BigInteger([diff],
1, CONSTRUCT);
42950 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
42955 Return true iff *this* is divisible by two.
42957 Note that
<BigInteger.ZERO
> is even.
42961 true if *this* is even, false otherwise.
42967 BigInteger.prototype.isEven = function() {
42968 var digits = this._d;
42969 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
42974 Return true iff *this* is not divisible by two.
42978 true if *this* is odd, false otherwise.
42984 BigInteger.prototype.isOdd = function() {
42985 return !this.isEven();
42990 Get the sign of a
<BigInteger>.
43000 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
43002 BigInteger.prototype.sign = function() {
43007 Function: isPositive
43008 Return true iff *this*
> 0.
43012 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
43016 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
43018 BigInteger.prototype.isPositive = function() {
43019 return this._s
> 0;
43023 Function: isNegative
43024 Return true iff *this* <
0.
43028 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
43032 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
43034 BigInteger.prototype.isNegative = function() {
43035 return this._s <
0;
43040 Return true iff *this* ==
0.
43044 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
43048 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
43050 BigInteger.prototype.isZero = function() {
43051 return this._s ===
0;
43056 Multiply a
<BigInteger> by a power of
10.
43058 This is equivalent to, but faster than
43061 > return this.multiply(BigInteger("
1e" + n));
43064 > return this.quotient(BigInteger("
1e" + -n));
43069 n - The power of
10 to multiply *this* by. *n* is converted to a
43070 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
43071 (
0x7FFFFFFF), or an exception will be thrown.
43075 *this* * (
10 ** *n*), truncated to an integer if necessary.
43081 BigInteger.prototype.exp10 = function(n) {
43086 if (Math.abs(n)
> Number(MAX_EXP)) {
43087 throw new Error("exponent too large in BigInteger.exp10");
43089 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
43090 if (this._s ===
0) {
43094 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
43096 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
43102 k = k.multiplySingleDigit(Math.pow(
10, n));
43103 return (this._s <
0 ? k.negate() : k);
43104 } else if (-n
>= this._d.length*BigInteger_base_log10) {
43107 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
43109 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
43112 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
43118 Raise a
<BigInteger> to a power.
43120 In this implementation,
0**
0 is
1.
43124 n - The exponent to raise *this* by. *n* must be no greater than
43125 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
43129 *this* raised to the *nth* power.
43135 BigInteger.prototype.pow = function(n) {
43136 if (this.isUnit()) {
43141 return BigInteger(n).isOdd() ? this : this.negate();
43149 else if (n._s <
0) {
43150 if (this._s ===
0) {
43151 throw new Error(
"Divide by zero");
43157 if (this._s ===
0) {
43164 if (n.compareAbs(MAX_EXP)
> 0) {
43165 throw new Error(
"exponent too large in BigInteger.pow");
43169 var two = BigInteger.small[
2];
43171 while (n.isPositive()) {
43173 aux = aux.multiply(x);
43179 n = n.quotient(two);
43187 Raise a
<BigInteger> to a power (mod m).
43189 Because it is reduced by a modulus,
<modPow> is not limited by
43190 <BigInteger.MAX_EXP
> like
<pow>.
43194 exponent - The exponent to raise *this* by. Must be positive.
43195 modulus - The modulus.
43199 *this* ^ *exponent* (mod *modulus*).
43205 BigInteger.prototype.modPow = function(exponent, modulus) {
43209 while (exponent.isPositive()) {
43210 if (exponent.isOdd()) {
43211 result = result.multiply(base).remainder(modulus);
43214 exponent = exponent.quotient(BigInteger.small[
2]);
43215 if (exponent.isPositive()) {
43216 base = base.square().remainder(modulus);
43225 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
43227 This is equivalent to
43229 > Math.log(this.toJSValue())
43231 but handles values outside of the native number range.
43241 BigInteger.prototype.log = function() {
43243 case
0: return -Infinity;
43244 case -
1: return NaN;
43245 default: // Fall through.
43248 var l = this._d.length;
43250 if (l*BigInteger_base_log10 <
30) {
43251 return Math.log(this.valueOf());
43254 var N = Math.ceil(
30/BigInteger_base_log10);
43255 var firstNdigits = this._d.slice(l - N);
43256 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
43261 Convert a
<BigInteger> to a native JavaScript integer.
43263 This is called automatically by JavaScipt to convert a
<BigInteger> to a
43268 > parseInt(this.toString(),
10)
43272 <toString>,
<toJSValue>
43274 BigInteger.prototype.valueOf = function() {
43275 return parseInt(this.toString(),
10);
43279 Function: toJSValue
43280 Convert a
<BigInteger> to a native JavaScript integer.
43282 This is the same as valueOf, but more explicitly named.
43286 > parseInt(this.toString(),
10)
43290 <toString>,
<valueOf>
43292 BigInteger.prototype.toJSValue = function() {
43293 return parseInt(this.toString(),
10);
43296 var MAX_EXP = BigInteger(
0x7FFFFFFF);
43297 // Constant: MAX_EXP
43298 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
43299 BigInteger.MAX_EXP = MAX_EXP;
43302 function makeUnary(fn) {
43303 return function(a) {
43304 return fn.call(BigInteger(a));
43308 function makeBinary(fn) {
43309 return function(a, b) {
43310 return fn.call(BigInteger(a), BigInteger(b));
43314 function makeTrinary(fn) {
43315 return function(a, b, c) {
43316 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
43322 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
43323 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
43324 var trinary = ["modPow"];
43326 for (i =
0; i < unary.length; i++) {
43328 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
43331 for (i =
0; i < binary.length; i++) {
43333 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
43336 for (i =
0; i < trinary.length; i++) {
43338 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
43341 BigInteger.exp10 = function(x, n) {
43342 return BigInteger(x).exp10(n);
43347 exports.BigInteger = BigInteger;
43348 })(typeof exports !== 'undefined' ? exports : this);
43350 <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){
43351 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;
43353 },{}],
2:[function(require,module,exports){
43354 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;
43356 },{"./scoring":
6}],
3:[function(require,module,exports){
43357 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(","),
43358 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(","),
43359 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(","),
43360 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(","),
43361 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;
43363 },{}],
4:[function(require,module,exports){
43364 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;
43366 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
43367 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;
43369 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
43370 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;
43372 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
43373 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;
43377 //# sourceMappingURL=zxcvbn.js.map
43380 * Detects entropy from a string.
43387 * hexadecimal [
0-
9A-F]
43388 * card [A2-
9TJQK][CDHS]
43390 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
43391 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
43395 window.Entropy = new (function() {
43397 var TWO = new BigInteger(
2);
43399 // matchers returns an array of the matched events for each type of entropy.
43401 // matchers.binary("
010") returns ["
0", "
1", "
0"]
43402 // matchers.binary("a10") returns ["
1", "
0"]
43403 // matchers.hex("a10") returns ["a", "
1", "
0"]
43405 binary: function(str) {
43406 return str.match(/[
0-
1]/gi) || [];
43408 base6: function(str) {
43409 return str.match(/[
0-
5]/gi) || [];
43411 dice: function(str) {
43412 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
43414 base10: function(str) {
43415 return str.match(/[
0-
9]/gi) || [];
43417 hex: function(str) {
43418 return str.match(/[
0-
9A-F]/gi) || [];
43420 card: function(str) {
43421 // Format is NumberSuit, eg
43422 // AH ace of hearts
43423 //
8C eight of clubs
43424 // TD ten of diamonds
43425 // JS jack of spades
43426 // QH queen of hearts
43427 // KC king of clubs
43428 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
43432 // Convert array of cards from ["ac", "
4d", "ks"]
43433 // to numbers between
0 and
51 [
0,
16,
51]
43434 function convertCardsToInts(cards) {
43436 var values = "a23456789tjqk";
43437 var suits = "cdhs";
43438 for (var i=
0; i
<cards.length; i++) {
43439 var card = cards[i].toLowerCase();
43440 var value = card[
0];
43441 var suit = card[
1];
43442 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
43448 this.fromString = function(rawEntropyStr) {
43449 // Find type of entropy being used (binary, hex, dice etc)
43450 var base = getBase(rawEntropyStr);
43451 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
43452 // This is done by changing all
6s to
0s
43453 if (base.str ==
"dice") {
43456 for (var i=
0; i
<base.parts.length; i++) {
43457 var c = base.parts[i];
43458 if (
"12345".indexOf(c)
> -
1) {
43459 newParts[i] = base.parts[i];
43460 newInts[i] = base.ints[i];
43467 base.str = "base
6 (dice)";
43468 base.ints = newInts;
43469 base.parts = newParts;
43470 base.matcher = matchers.base6;
43472 // Detect empty entropy
43473 if (base.parts.length ==
0) {
43481 // Convert base.ints to BigInteger.
43482 // Due to using unusual bases, eg cards of base52, this is not as simple as
43483 // using BigInteger.parse()
43484 var entropyInt = BigInteger.ZERO;
43485 for (var i=base.ints.length-
1; i
>=
0; i--) {
43486 var thisInt = BigInteger.parse(base.ints[i]);
43487 var power = (base.ints.length -
1) - i;
43488 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
43489 entropyInt = entropyInt.add(additionalEntropy);
43491 // Convert entropy to binary
43492 var entropyBin = entropyInt.toString(
2);
43493 // If the first integer is small, it must be padded with zeros.
43494 // Otherwise the chance of the first bit being
1 is
100%, which is
43495 // obviously incorrect.
43496 // This is not perfect for non-
2^n bases.
43497 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
43498 while (entropyBin.length < expectedBits) {
43499 entropyBin = "
0" + entropyBin;
43501 // Calculate the number of bits per event
43502 var bitsPerEvent = Math.log2(base.asInt);
43503 // Cards binary must be handled differently, since they're not replaced
43504 if (base.asInt ==
52) {
43505 var cardEntropy = processCardEntropy(base.parts);
43506 entropyBin = cardEntropy.binaryStr;
43507 bitsPerEvent = cardEntropy.bitsPerEvent;
43509 // Supply a 'filtered' entropy string for display purposes
43510 var entropyClean = base.parts.join("");
43511 var entropyHtml = base.parts.join("");
43512 if (base.asInt ==
52) {
43513 entropyClean = base.parts.join(" ").toUpperCase();
43514 entropyClean = entropyClean.replace(/C/g, "\u2663");
43515 entropyClean = entropyClean.replace(/D/g, "\u2666");
43516 entropyClean = entropyClean.replace(/H/g, "\u2665");
43517 entropyClean = entropyClean.replace(/S/g, "\u2660");
43518 entropyHtml = base.parts.join(" ").toUpperCase();
43519 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
43520 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
43521 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
43522 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
43524 // Return the result
43526 binaryStr: entropyBin,
43527 cleanStr: entropyClean,
43528 cleanHtml: entropyHtml,
43529 bitsPerEvent: bitsPerEvent,
43535 function getSortedDeck() {
43537 var suits = "CDHS
";
43538 var values = "A23456789TJQK
";
43539 for (var i=0; i<suits.length; i++) {
43540 for (var j=0; j<values.length; j++) {
43541 s.push(values[j]+suits[i]);
43547 function getBase(str) {
43548 // Need to get the lowest base for the supplied entropy.
43549 // This prevents interpreting, say, dice rolls as hexadecimal.
43550 var binaryMatches = matchers.binary(str);
43551 var hexMatches = matchers.hex(str);
43552 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
43553 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
43554 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
43557 parts: binaryMatches,
43558 matcher: matchers.binary,
43563 var cardMatches = matchers.card(str);
43564 if (cardMatches.length >= hexMatches.length / 2) {
43565 var ints = convertCardsToInts(cardMatches);
43568 parts: cardMatches,
43569 matcher: matchers.card,
43574 var diceMatches = matchers.dice(str);
43575 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
43576 var ints = diceMatches.map(function(i) { return parseInt(i) });
43579 parts: diceMatches,
43580 matcher: matchers.dice,
43585 var base6Matches = matchers.base6(str);
43586 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
43587 var ints = base6Matches.map(function(i) { return parseInt(i) });
43590 parts: base6Matches,
43591 matcher: matchers.base6,
43596 var base10Matches = matchers.base10(str);
43597 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
43598 var ints = base10Matches.map(function(i) { return parseInt(i) });
43601 parts: base10Matches,
43602 matcher: matchers.base10,
43607 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
43611 matcher: matchers.hex,
43613 str:
"hexadecimal",
43617 // Assume cards are NOT replaced.
43618 // Additional entropy decreases as more cards are used. This means
43619 // total possible entropy is measured using n!, not base^n.
43620 // eg the second last card can be only one of two, not one of fifty two
43621 // so the added entropy for that card is only one bit at most
43622 function processCardEntropy(cards) {
43623 // Track how many instances of each card have been used, and thus
43624 // how many decks are in use.
43625 var cardCounts = {};
43626 var numberOfDecks =
0;
43627 // Work out number of decks by max(duplicates)
43628 for (var i=
0; i
<cards.length; i++) {
43629 // Get the card that was drawn
43630 var cardLower = cards[i];
43631 var card = cardLower.toUpperCase();
43632 // Initialize the count for this card if needed
43633 if (!(card in cardCounts)) {
43634 cardCounts[card] =
0;
43636 cardCounts[card] +=
1;
43637 // See if this is max(duplicates)
43638 if (cardCounts[card]
> numberOfDecks) {
43639 numberOfDecks = cardCounts[card];
43642 // Work out the total number of bits for this many decks
43643 // See http://crypto.stackexchange.com/q/
41886
43644 var gainedBits =
0;
43645 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
43646 // which becomes infinity for numberOfDecks
> 4
43647 for (var i=
1; i<=
52*numberOfDecks; i++) {
43648 gainedBits = gainedBits + Math.log2(i);
43650 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
43651 var maxBits = gainedBits - lostBits;
43652 // Convert the drawn cards to a binary representation.
43653 // The exact technique for doing this is unclear.
43655 // http://crypto.stackexchange.com/a/
41896
43656 //
"I even doubt that this is well defined (only the average entropy
43657 // is, I believe)."
43659 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
43660 //
"The binary representation can be the first log(permutations,2) bits
43661 // of the sha-2 hash of the normalized deck string."
43663 // In this specific implementation, the first N bits of the hash of the
43664 // normalized cards string is being used. Uppercase, no spaces; eg
43665 // sha256(
"AH8DQSTC2H")
43666 var totalCards = numberOfDecks *
52;
43667 var percentUsed = cards.length / totalCards;
43668 // Calculate the average number of bits of entropy for the number of
43670 var numberOfBits = Math.floor(maxBits * percentUsed);
43671 // Create a normalized string of the selected cards
43672 var normalizedCards = cards.join(
"").toUpperCase();
43673 // Convert to binary using the SHA256 hash of the normalized cards.
43674 // If the number of bits is more than
256, multiple hashes
43675 // are used until the required number of bits is reached.
43676 var entropyBin =
"";
43677 var iterations =
0;
43678 while (entropyBin.length < numberOfBits) {
43679 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
43680 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
43681 for (var i=
0; i
<hashHex.length; i++) {
43682 var decimal = parseInt(hashHex[i],
16);
43683 var binary = decimal.toString(
2);
43684 while (binary.length <
4) {
43685 binary =
"0" + binary;
43687 entropyBin = entropyBin + binary;
43689 iterations = iterations +
1;
43691 // Truncate to the appropriate number of bits.
43692 entropyBin = entropyBin.substring(
0, numberOfBits);
43693 // Get the number of bits per event
43694 bitsPerEvent = maxBits / totalCards;
43696 binaryStr: entropyBin,
43697 bitsPerEvent: bitsPerEvent,
43701 // Polyfill for Math.log2
43702 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
43703 Math.log2 = Math.log2 || function(x) {
43704 // The polyfill isn't good enough because of the poor accuracy of
43706 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
43707 // So instead use the BigInteger library to get it right.
43708 return BigInteger.log(x) / BigInteger.log(
2);
43711 // Depends on BigInteger
43712 function factorial(n) {
43716 f = BigInteger.ONE;
43717 for (var i=
1; i<=n; i++) {
43718 f = f.multiply(new BigInteger(i));
43725 <script>(function() {
43727 // mnemonics is populated as required by getLanguage
43728 var mnemonics = { "english": new Mnemonic("english") };
43729 var mnemonic = mnemonics["english"];
43731 var bip32RootKey = null;
43732 var bip32ExtendedKey = null;
43733 var network = bitcoin.networks.bitcoin;
43734 var addressRowTemplate = $("#address-row-template");
43736 var showIndex = true;
43737 var showAddress = true;
43738 var showPubKey = true;
43739 var showPrivKey = true;
43740 var showQr = false;
43742 var entropyChangeTimeoutEvent = null;
43743 var phraseChangeTimeoutEvent = null;
43744 var rootKeyChangedTimeoutEvent = null;
43746 var generationProcesses = [];
43749 DOM.network = $(".network");
43750 DOM.bip32Client = $("#bip32-client");
43751 DOM.phraseNetwork = $("#network-phrase");
43752 DOM.useEntropy = $(".use-entropy");
43753 DOM.entropyContainer = $(".entropy-container");
43754 DOM.entropy = $(".entropy");
43755 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
43756 DOM.entropyType = DOM.entropyContainer.find(".type");
43757 DOM.entropyStrength = DOM.entropyContainer.find(".strength");
43758 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
43759 DOM.entropyBits = DOM.entropyContainer.find(".bits");
43760 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
43761 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
43762 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
43763 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
43764 DOM.phrase = $(".phrase");
43765 DOM.passphrase = $(".passphrase");
43766 DOM.generateContainer = $(".generate-container");
43767 DOM.generate = $(".generate");
43768 DOM.seed = $(".seed");
43769 DOM.rootKey = $(".root-key");
43770 DOM.extendedPrivKey = $(".extended-priv-key");
43771 DOM.extendedPubKey = $(".extended-pub-key");
43772 DOM.bip32tab = $("#bip32-tab");
43773 DOM.bip44tab = $("#bip44-tab");
43774 DOM.bip32panel = $("#bip32");
43775 DOM.bip44panel = $("#bip44");
43776 DOM.bip32path = $("#bip32-path");
43777 DOM.bip44path = $("#bip44-path");
43778 DOM.bip44purpose = $("#bip44 .purpose");
43779 DOM.bip44coin = $("#bip44 .coin");
43780 DOM.bip44account = $("#bip44 .account");
43781 DOM.bip44accountXprv = $("#bip44 .account-xprv");
43782 DOM.bip44accountXpub = $("#bip44 .account-xpub");
43783 DOM.bip44change = $("#bip44 .change");
43784 DOM.generatedStrength = $(".generate-container .strength");
43785 DOM.hardenedAddresses = $(".hardened-addresses");
43786 DOM.addresses = $(".addresses");
43787 DOM.rowsToAdd = $(".rows-to-add");
43788 DOM.more = $(".more");
43789 DOM.feedback = $(".feedback");
43790 DOM.tab = $(".derivation-type a");
43791 DOM.indexToggle = $(".index-toggle");
43792 DOM.addressToggle = $(".address-toggle");
43793 DOM.publicKeyToggle = $(".public-key-toggle");
43794 DOM.privateKeyToggle = $(".private-key-toggle");
43795 DOM.languages = $(".languages a");
43796 DOM.qrContainer = $(".qr-container");
43797 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
43798 DOM.qrImage = DOM.qrContainer.find(".qr-image");
43799 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
43800 DOM.showQrEls = $("[data-show-qr]");
43804 DOM.network.on("change", networkChanged);
43805 DOM.bip32Client.on("change", bip32ClientChanged);
43806 DOM.useEntropy.on("change", setEntropyVisibility);
43807 DOM.entropy.on("input", delayedEntropyChanged);
43808 DOM.entropyMnemonicLength.on("change", entropyChanged);
43809 DOM.phrase.on("input", delayedPhraseChanged);
43810 DOM.passphrase.on("input", delayedPhraseChanged);
43811 DOM.generate.on("click", generateClicked);
43812 DOM.more.on("click", showMore);
43813 DOM.rootKey.on("input", delayedRootKeyChanged);
43814 DOM.bip32path.on("input", calcForDerivationPath);
43815 DOM.bip44purpose.on("input", calcForDerivationPath);
43816 DOM.bip44coin.on("input", calcForDerivationPath);
43817 DOM.bip44account.on("input", calcForDerivationPath);
43818 DOM.bip44change.on("input", calcForDerivationPath);
43819 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
43820 DOM.hardenedAddresses.on("change", calcForDerivationPath);
43821 DOM.indexToggle.on("click", toggleIndexes);
43822 DOM.addressToggle.on("click", toggleAddresses);
43823 DOM.publicKeyToggle.on("click", togglePublicKeys);
43824 DOM.privateKeyToggle.on("click", togglePrivateKeys);
43825 DOM.languages.on("click", languageChanged);
43826 setQrEvents(DOM.showQrEls);
43829 hideValidationError();
43830 populateNetworkSelect();
43831 populateClientSelect();
43836 function networkChanged(e) {
43837 var networkIndex = e.target.value;
43838 networks[networkIndex].onSelect();
43839 if (seed != null) {
43847 function bip32ClientChanged(e) {
43848 var clientIndex = DOM.bip32Client.val();
43849 if (clientIndex == "custom") {
43850 DOM.bip32path.prop("readonly", false);
43853 DOM.bip32path.prop("readonly", true);
43854 clients[clientIndex].onSelect();
43855 if (seed != null) {
43864 function setEntropyVisibility() {
43865 if (isUsingOwnEntropy()) {
43866 DOM.entropyContainer.removeClass("hidden");
43867 DOM.generateContainer.addClass("hidden");
43868 DOM.phrase.prop("readonly", true);
43869 DOM.entropy.focus();
43873 DOM.entropyContainer.addClass("hidden");
43874 DOM.generateContainer.removeClass("hidden");
43875 DOM.phrase.prop("readonly", false);
43880 function delayedPhraseChanged() {
43881 hideValidationError();
43883 if (phraseChangeTimeoutEvent != null) {
43884 clearTimeout(phraseChangeTimeoutEvent);
43886 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
43889 function phraseChanged() {
43891 hideValidationError();
43892 setMnemonicLanguage();
43893 // Get the mnemonic phrase
43894 var phrase = DOM.phrase.val();
43895 var errorText = findPhraseErrors(phrase);
43897 showValidationError(errorText);
43900 // Calculate and display
43901 var passphrase = DOM.passphrase.val();
43902 calcBip32RootKeyFromSeed(phrase, passphrase);
43903 calcForDerivationPath();
43907 function delayedEntropyChanged() {
43908 hideValidationError();
43910 if (entropyChangeTimeoutEvent != null) {
43911 clearTimeout(entropyChangeTimeoutEvent);
43913 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
43916 function entropyChanged() {
43917 // If blank entropy, clear mnemonic, addresses, errors
43918 if (DOM.entropy.val().trim().length ==
0) {
43920 clearEntropyFeedback();
43921 DOM.phrase.val("");
43922 showValidationError("Blank entropy");
43925 // Get the current phrase to detect changes
43926 var phrase = DOM.phrase.val();
43927 // Set the phrase from the entropy
43928 setMnemonicFromEntropy();
43929 // Recalc addresses if the phrase has changed
43930 var newPhrase = DOM.phrase.val();
43931 if (newPhrase != phrase) {
43932 if (newPhrase.length ==
0) {
43944 function delayedRootKeyChanged() {
43945 // Warn if there is an existing mnemonic or passphrase.
43946 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
43947 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
43948 DOM.rootKey.val(bip32RootKey);
43952 hideValidationError();
43954 // Clear existing mnemonic and passphrase
43955 DOM.phrase.val(
"");
43956 DOM.passphrase.val(
"");
43958 if (rootKeyChangedTimeoutEvent != null) {
43959 clearTimeout(rootKeyChangedTimeoutEvent);
43961 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
43964 function rootKeyChanged() {
43966 hideValidationError();
43967 // Validate the root key TODO
43968 var rootKeyBase58 = DOM.rootKey.val();
43969 var errorText = validateRootKey(rootKeyBase58);
43971 showValidationError(errorText);
43974 // Calculate and display
43975 calcBip32RootKeyFromBase58(rootKeyBase58);
43976 calcForDerivationPath();
43979 function calcForDerivationPath() {
43981 clearAddressesList();
43982 hideValidationError();
43983 // Get the derivation path
43984 var derivationPath = getDerivationPath();
43985 var errorText = findDerivationPathErrors(derivationPath);
43987 showValidationError(errorText);
43990 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
43991 if (bip44TabSelected()) {
43992 displayBip44Info();
43994 displayBip32Info();
43998 function generateClicked() {
43999 if (isUsingOwnEntropy()) {
44004 setTimeout(function() {
44005 setMnemonicLanguage();
44006 var phrase = generateRandomPhrase();
44014 function languageChanged() {
44015 setTimeout(function() {
44016 setMnemonicLanguage();
44017 if (DOM.phrase.val().length
> 0) {
44018 var newPhrase = convertPhraseToNewLanguage();
44019 DOM.phrase.val(newPhrase);
44023 DOM.generate.trigger(
"click");
44028 function toggleIndexes() {
44029 showIndex = !showIndex;
44030 $(
"td.index span").toggleClass(
"invisible");
44033 function toggleAddresses() {
44034 showAddress = !showAddress;
44035 $(
"td.address span").toggleClass(
"invisible");
44038 function togglePublicKeys() {
44039 showPubKey = !showPubKey;
44040 $(
"td.pubkey span").toggleClass(
"invisible");
44043 function togglePrivateKeys() {
44044 showPrivKey = !showPrivKey;
44045 $(
"td.privkey span").toggleClass(
"invisible");
44050 function generateRandomPhrase() {
44051 if (!hasStrongRandom()) {
44052 var errorText =
"This browser does not support strong randomness";
44053 showValidationError(errorText);
44056 var numWords = parseInt(DOM.generatedStrength.val());
44057 var strength = numWords /
3 *
32;
44058 var words = mnemonic.generate(strength);
44059 DOM.phrase.val(words);
44063 function calcBip32RootKeyFromSeed(phrase, passphrase) {
44064 seed = mnemonic.toSeed(phrase, passphrase);
44065 bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
44068 function calcBip32RootKeyFromBase58(rootKeyBase58) {
44069 bip32RootKey = bitcoin.HDNode.fromBase58(rootKeyBase58, network);
44072 function calcBip32ExtendedKey(path) {
44073 // Check there's a root key to derive from
44074 if (!bip32RootKey) {
44075 return bip32RootKey;
44077 var extendedKey = bip32RootKey;
44078 // Derive the key from the path
44079 var pathBits = path.split(
"/");
44080 for (var i=
0; i
<pathBits.length; i++) {
44081 var bit = pathBits[i];
44082 var index = parseInt(bit);
44083 if (isNaN(index)) {
44086 var hardened = bit[bit.length-
1] ==
"'";
44087 var isPriv =
"privKey" in extendedKey;
44088 var invalidDerivationPath = hardened && !isPriv;
44089 if (invalidDerivationPath) {
44090 extendedKey = null;
44092 else if (hardened) {
44093 extendedKey = extendedKey.deriveHardened(index);
44096 extendedKey = extendedKey.derive(index);
44102 function showValidationError(errorText) {
44108 function hideValidationError() {
44114 function findPhraseErrors(phrase) {
44115 // Preprocess the words
44116 phrase = mnemonic.normalizeString(phrase);
44117 var words = phraseToWordArray(phrase);
44118 // Detect blank phrase
44119 if (words.length ==
0) {
44120 return
"Blank mnemonic";
44123 for (var i=
0; i
<words.length; i++) {
44124 var word = words[i];
44125 var language = getLanguage();
44126 if (WORDLISTS[language].indexOf(word) == -
1) {
44127 console.log(
"Finding closest match to " + word);
44128 var nearestWord = findNearestWord(word);
44129 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
44132 // Check the words are valid
44133 var properPhrase = wordArrayToPhrase(words);
44134 var isValid = mnemonic.check(properPhrase);
44136 return
"Invalid mnemonic";
44141 function validateRootKey(rootKeyBase58) {
44143 bitcoin.HDNode.fromBase58(rootKeyBase58);
44146 return
"Invalid root key";
44151 function getDerivationPath() {
44152 if (bip44TabSelected()) {
44153 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
44154 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
44155 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
44156 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
44158 path += purpose +
"'/";
44159 path += coin +
"'/";
44160 path += account +
"'/";
44162 DOM.bip44path.val(path);
44163 var derivationPath = DOM.bip44path.val();
44164 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
44165 return derivationPath;
44167 else if (bip32TabSelected()) {
44168 var derivationPath = DOM.bip32path.val();
44169 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
44170 return derivationPath;
44173 console.log(
"Unknown derivation path");
44177 function findDerivationPathErrors(path) {
44178 // TODO is not perfect but is better than nothing
44180 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
44182 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
44183 var maxDepth =
255; // TODO verify this!!
44184 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
44185 if (path[
0] !=
"m") {
44186 return
"First character must be 'm'";
44188 if (path.length
> 1) {
44189 if (path[
1] !=
"/") {
44190 return
"Separator must be '/'";
44192 var indexes = path.split(
"/");
44193 if (indexes.length
> maxDepth) {
44194 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
44196 for (var depth =
1; depth
<indexes.length; depth++) {
44197 var index = indexes[depth];
44198 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
44199 if (invalidChars.length
> 0) {
44200 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
44202 var indexValue = parseInt(index.replace(
"'",
""));
44203 if (isNaN(depth)) {
44204 return
"Invalid number at depth " + depth;
44206 if (indexValue
> maxIndexValue) {
44207 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
44211 // Check root key exists or else derivation path is useless!
44212 if (!bip32RootKey) {
44213 return "No root key";
44215 // Check no hardened derivation path when using xpub keys
44216 var hardened = path.indexOf("'")
> -
1;
44217 var isXpubkey = !("privKey" in bip32RootKey);
44218 if (hardened && isXpubkey) {
44219 return "Hardened derivation path is invalid with xpub key";
44224 function displayBip44Info() {
44225 // Get the derivation path for the account
44226 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
44227 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
44228 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
44230 path += purpose + "'/";
44231 path += coin + "'/";
44232 path += account + "'/";
44233 // Calculate the account extended keys
44234 var accountExtendedKey = calcBip32ExtendedKey(path);
44235 var accountXprv = accountExtendedKey.toBase58();
44236 var accountXpub = accountExtendedKey.toBase58(false);
44237 // Display the extended keys
44238 DOM.bip44accountXprv.val(accountXprv);
44239 DOM.bip44accountXpub.val(accountXpub);
44242 function displayBip32Info() {
44244 DOM.seed.val(seed);
44245 var rootKey = bip32RootKey.toBase58();
44246 DOM.rootKey.val(rootKey);
44247 var xprvkeyB58 = "NA";
44248 if (bip32ExtendedKey.privKey) {
44249 xprvkeyB58 = bip32ExtendedKey.toBase58();
44251 var extendedPrivKey = xprvkeyB58;
44252 DOM.extendedPrivKey.val(extendedPrivKey);
44253 var extendedPubKey = bip32ExtendedKey.toBase58(false);
44254 DOM.extendedPubKey.val(extendedPubKey);
44255 // Display the addresses and privkeys
44256 clearAddressesList();
44257 displayAddresses(
0,
20);
44260 function displayAddresses(start, total) {
44261 generationProcesses.push(new (function() {
44265 this.stop = function() {
44266 for (var i=
0; i
<rows.length; i++) {
44267 rows[i].shouldGenerate = false;
44271 for (var i=
0; i
<total; i++) {
44272 var index = i + start;
44273 rows.push(new TableRow(index));
44279 function TableRow(index) {
44282 this.shouldGenerate = true;
44283 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
44289 function calculateValues() {
44290 setTimeout(function() {
44291 if (!self.shouldGenerate) {
44295 if (useHardenedAddresses) {
44296 key = bip32ExtendedKey.deriveHardened(index);
44299 key = bip32ExtendedKey.derive(index);
44301 var address = key.getAddress().toString();
44302 var privkey =
"NA";
44304 privkey = key.privKey.toWIF(network);
44306 var pubkey = key.pubKey.toHex();
44307 var indexText = getDerivationPath() +
"/" + index;
44308 if (useHardenedAddresses) {
44309 indexText = indexText +
"'";
44311 // Ethereum values are different
44312 if (networks[DOM.network.val()].name ==
"Ethereum") {
44313 var privKeyBuffer = key.privKey.d.toBuffer();
44314 privkey = privKeyBuffer.toString('hex');
44315 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
44316 var hexAddress = addressBuffer.toString('hex');
44317 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
44318 address = ethUtil.addHexPrefix(checksumAddress);
44319 privkey = ethUtil.addHexPrefix(privkey);
44320 pubkey = ethUtil.addHexPrefix(pubkey);
44322 // Ripple values are different
44323 if (networks[DOM.network.val()].name ==
"Ripple") {
44324 privkey = convertRipplePriv(privkey);
44325 address = convertRippleAdrr(address);
44327 addAddressToList(indexText, address, pubkey, privkey);
44335 function showMore() {
44336 var start = DOM.addresses.children().length;
44337 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
44338 if (isNaN(rowsToAdd)) {
44340 DOM.rowsToAdd.val(
"20");
44342 if (rowsToAdd
> 200) {
44343 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
44344 msg +=
"Do you want to continue?";
44345 if (!confirm(msg)) {
44349 displayAddresses(start, rowsToAdd);
44352 function clearDisplay() {
44353 clearAddressesList();
44355 hideValidationError();
44358 function clearAddressesList() {
44359 DOM.addresses.empty();
44363 function stopGenerating() {
44364 while (generationProcesses.length
> 0) {
44365 var generation = generationProcesses.shift();
44370 function clearKey() {
44371 DOM.rootKey.val(
"");
44372 DOM.extendedPrivKey.val(
"");
44373 DOM.extendedPubKey.val(
"");
44376 function addAddressToList(indexText, address, pubkey, privkey) {
44377 var row = $(addressRowTemplate.html());
44379 var indexCell = row.find(
".index span");
44380 var addressCell = row.find(
".address span");
44381 var pubkeyCell = row.find(
".pubkey span");
44382 var privkeyCell = row.find(
".privkey span");
44384 indexCell.text(indexText);
44385 addressCell.text(address);
44386 pubkeyCell.text(pubkey);
44387 privkeyCell.text(privkey);
44390 indexCell.addClass(
"invisible");
44392 if (!showAddress) {
44393 addressCell.addClass(
"invisible");
44396 pubkeyCell.addClass(
"invisible");
44398 if (!showPrivKey) {
44399 privkeyCell.addClass(
"invisible");
44401 DOM.addresses.append(row);
44402 var rowShowQrEls = row.find(
"[data-show-qr]");
44403 setQrEvents(rowShowQrEls);
44406 function hasStrongRandom() {
44407 return 'crypto' in window && window['crypto'] !== null;
44410 function disableForms() {
44411 $(
"form").on(
"submit", function(e) {
44412 e.preventDefault();
44416 function parseIntNoNaN(val, defaultVal) {
44417 var v = parseInt(val);
44424 function showPending() {
44426 .text(
"Calculating...")
44430 function findNearestWord(word) {
44431 var language = getLanguage();
44432 var words = WORDLISTS[language];
44433 var minDistance =
99;
44434 var closestWord = words[
0];
44435 for (var i=
0; i
<words.length; i++) {
44436 var comparedTo = words[i];
44437 if (comparedTo.indexOf(word) ==
0) {
44440 var distance = Levenshtein.get(word, comparedTo);
44441 if (distance < minDistance) {
44442 closestWord = comparedTo;
44443 minDistance = distance;
44446 return closestWord;
44449 function hidePending() {
44455 function populateNetworkSelect() {
44456 for (var i=
0; i
<networks.length; i++) {
44457 var network = networks[i];
44458 var option = $(
"<option>");
44459 option.attr(
"value", i);
44460 option.text(network.name);
44461 DOM.phraseNetwork.append(option);
44465 function populateClientSelect() {
44466 for (var i=
0; i
<clients.length; i++) {
44467 var client = clients[i];
44468 var option = $(
"<option>");
44469 option.attr(
"value", i);
44470 option.text(client.name);
44471 DOM.bip32Client.append(option);
44475 function getLanguage() {
44476 var defaultLanguage =
"english";
44477 // Try to get from existing phrase
44478 var language = getLanguageFromPhrase();
44479 // Try to get from url if not from phrase
44480 if (language.length ==
0) {
44481 language = getLanguageFromUrl();
44483 // Default to English if no other option
44484 if (language.length ==
0) {
44485 language = defaultLanguage;
44490 function getLanguageFromPhrase(phrase) {
44491 // Check if how many words from existing phrase match a language.
44494 phrase = DOM.phrase.val();
44496 if (phrase.length
> 0) {
44497 var words = phraseToWordArray(phrase);
44498 var languageMatches = {};
44499 for (l in WORDLISTS) {
44500 // Track how many words match in this language
44501 languageMatches[l] =
0;
44502 for (var i=
0; i
<words.length; i++) {
44503 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
44504 if (wordInLanguage) {
44505 languageMatches[l]++;
44508 // Find languages with most word matches.
44509 // This is made difficult due to commonalities between Chinese
44510 // simplified vs traditional.
44511 var mostMatches =
0;
44512 var mostMatchedLanguages = [];
44513 for (var l in languageMatches) {
44514 var numMatches = languageMatches[l];
44515 if (numMatches
> mostMatches) {
44516 mostMatches = numMatches;
44517 mostMatchedLanguages = [l];
44519 else if (numMatches == mostMatches) {
44520 mostMatchedLanguages.push(l);
44524 if (mostMatchedLanguages.length
> 0) {
44525 // Use first language and warn if multiple detected
44526 language = mostMatchedLanguages[
0];
44527 if (mostMatchedLanguages.length
> 1) {
44528 console.warn(
"Multiple possible languages");
44529 console.warn(mostMatchedLanguages);
44536 function getLanguageFromUrl() {
44537 for (var language in WORDLISTS) {
44538 if (window.location.hash.indexOf(language)
> -
1) {
44545 function setMnemonicLanguage() {
44546 var language = getLanguage();
44547 // Load the bip39 mnemonic generator for this language if required
44548 if (!(language in mnemonics)) {
44549 mnemonics[language] = new Mnemonic(language);
44551 mnemonic = mnemonics[language];
44554 function convertPhraseToNewLanguage() {
44555 var oldLanguage = getLanguageFromPhrase();
44556 var newLanguage = getLanguageFromUrl();
44557 var oldPhrase = DOM.phrase.val();
44558 var oldWords = phraseToWordArray(oldPhrase);
44560 for (var i=
0; i
<oldWords.length; i++) {
44561 var oldWord = oldWords[i];
44562 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
44563 var newWord = WORDLISTS[newLanguage][index];
44564 newWords.push(newWord);
44566 newPhrase = wordArrayToPhrase(newWords);
44570 // TODO look at jsbip39 - mnemonic.splitWords
44571 function phraseToWordArray(phrase) {
44572 var words = phrase.split(/\s/g);
44574 for (var i=
0; i
<words.length; i++) {
44575 var word = words[i];
44576 if (word.length
> 0) {
44577 noBlanks.push(word);
44583 // TODO look at jsbip39 - mnemonic.joinWords
44584 function wordArrayToPhrase(words) {
44585 var phrase = words.join(
" ");
44586 var language = getLanguageFromPhrase(phrase);
44587 if (language ==
"japanese") {
44588 phrase = words.join(
"\u3000");
44593 function isUsingOwnEntropy() {
44594 return DOM.useEntropy.prop(
"checked");
44597 function setMnemonicFromEntropy() {
44598 clearEntropyFeedback();
44599 // Get entropy value
44600 var entropyStr = DOM.entropy.val();
44601 // Work out minimum base for entropy
44602 var entropy = Entropy.fromString(entropyStr);
44603 if (entropy.binaryStr.length ==
0) {
44606 // Show entropy details
44607 showEntropyFeedback(entropy);
44608 // Use entropy hash if not using raw entropy
44609 var bits = entropy.binaryStr;
44610 var mnemonicLength = DOM.entropyMnemonicLength.val();
44611 if (mnemonicLength !=
"raw") {
44612 // Get bits by hashing entropy with SHA256
44613 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
44614 var hex = sjcl.codec.hex.fromBits(hash);
44615 bits = BigInteger.parse(hex,
16).toString(
2);
44616 while (bits.length %
256 !=
0) {
44619 // Truncate hash to suit number of words
44620 mnemonicLength = parseInt(mnemonicLength);
44621 var numberOfBits =
32 * mnemonicLength /
3;
44622 bits = bits.substring(
0, numberOfBits);
44624 // Discard trailing entropy
44625 var bitsToUse = Math.floor(bits.length /
32) *
32;
44626 var start = bits.length - bitsToUse;
44627 var binaryStr = bits.substring(start);
44628 // Convert entropy string to numeric array
44629 var entropyArr = [];
44630 for (var i=
0; i
<binaryStr.length /
8; i++) {
44631 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
44632 var entropyByte = parseInt(byteAsBits,
2);
44633 entropyArr.push(entropyByte)
44635 // Convert entropy array to mnemonic
44636 var phrase = mnemonic.toMnemonic(entropyArr);
44637 // Set the mnemonic in the UI
44638 DOM.phrase.val(phrase);
44641 function clearEntropyFeedback() {
44642 DOM.entropyStrength.text(
"...");
44643 DOM.entropyType.text(
"");
44644 DOM.entropyWordCount.text(
"0");
44645 DOM.entropyEventCount.text(
"0");
44646 DOM.entropyBitsPerEvent.text(
"0");
44647 DOM.entropyBits.text(
"0");
44648 DOM.entropyFiltered.html(
" ");
44649 DOM.entropyBinary.html(
" ");
44652 function showEntropyFeedback(entropy) {
44653 var numberOfBits = entropy.binaryStr.length;
44654 var strength =
"extremely weak";
44655 if (numberOfBits
>=
64) {
44656 strength = "very weak";
44658 if (numberOfBits
>=
96) {
44661 if (numberOfBits
>=
128) {
44662 strength = "strong";
44664 if (numberOfBits
>=
160) {
44665 strength = "very strong";
44667 if (numberOfBits
>=
192) {
44668 strength = "extremely strong";
44670 // If time to crack is less than one day, and password is considered
44671 // strong or better based on the number of bits, rename strength to
44672 // 'easily cracked'.
44674 var z = zxcvbn(entropy.base.parts.join(""));
44675 var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second;
44676 if (timeToCrack <
86400 && entropy.binaryStr.length
>=
128) {
44677 strength = "easily cracked";
44678 if (z.feedback.warning != "") {
44679 strength = strength + " - " + z.feedback.warning;
44684 strength = "unknown";
44685 console.log("Error detecting entropy strength with zxcvbn:");
44688 var entropyTypeStr = getEntropyTypeStr(entropy);
44689 var wordCount = Math.floor(numberOfBits /
32) *
3;
44690 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
44691 DOM.entropyFiltered.html(entropy.cleanHtml);
44692 DOM.entropyType.text(entropyTypeStr);
44693 DOM.entropyStrength.text(strength);
44694 DOM.entropyEventCount.text(entropy.base.ints.length);
44695 DOM.entropyBits.text(numberOfBits);
44696 DOM.entropyWordCount.text(wordCount);
44697 DOM.entropyBinary.text(entropy.binaryStr);
44698 DOM.entropyBitsPerEvent.text(bitsPerEvent);
44701 function getEntropyTypeStr(entropy) {
44702 var typeStr = entropy.base.str;
44703 // Add some detail if these are cards
44704 if (entropy.base.asInt ==
52) {
44705 var cardDetail = []; // array of message strings
44706 // Detect duplicates
44708 var dupeTracker = {};
44709 for (var i=
0; i
<entropy.base.parts.length; i++) {
44710 var card = entropy.base.parts[i];
44711 var cardUpper = card.toUpperCase();
44712 if (cardUpper in dupeTracker) {
44715 dupeTracker[cardUpper] = true;
44717 if (dupes.length
> 0) {
44718 var dupeWord =
"duplicates";
44719 if (dupes.length ==
1) {
44720 dupeWord =
"duplicate";
44722 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
44723 if (dupes.length
> 3) {
44726 cardDetail.push(msg);
44728 // Detect full deck
44729 var uniqueCards = [];
44730 for (var uniqueCard in dupeTracker) {
44731 uniqueCards.push(uniqueCard);
44733 if (uniqueCards.length ==
52) {
44734 cardDetail.unshift(
"full deck");
44736 // Detect missing cards
44737 var values =
"A23456789TJQK";
44738 var suits =
"CDHS";
44739 var missingCards = [];
44740 for (var i=
0; i
<suits.length; i++) {
44741 for (var j=
0; j
<values.length; j++) {
44742 var card = values[j] + suits[i];
44743 if (!(card in dupeTracker)) {
44744 missingCards.push(card);
44748 // Display missing cards if six or less, ie clearly going for full deck
44749 if (missingCards.length
> 0 && missingCards.length <=
6) {
44750 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
44751 if (missingCards.length
> 3) {
44754 cardDetail.push(msg);
44756 // Add card details to typeStr
44757 if (cardDetail.length
> 0) {
44758 typeStr +=
" (" + cardDetail.join(
", ") +
")";
44764 function setQrEvents(els) {
44765 els.on(
"mouseenter", createQr);
44766 els.on(
"mouseleave", destroyQr);
44767 els.on(
"click", toggleQr);
44770 function createQr(e) {
44771 var content = e.target.textContent || e.target.value;
44774 DOM.qrImage.qrcode({width: size, height: size, text: content});
44776 DOM.qrHider.addClass(
"hidden");
44779 DOM.qrHider.removeClass(
"hidden");
44781 DOM.qrContainer.removeClass(
"hidden");
44785 function destroyQr() {
44786 DOM.qrImage.text(
"");
44787 DOM.qrContainer.addClass(
"hidden");
44790 function toggleQr() {
44792 DOM.qrHider.toggleClass(
"hidden");
44793 DOM.qrHint.toggleClass(
"hidden");
44796 function bip44TabSelected() {
44797 return DOM.bip44tab.hasClass(
"active");
44800 function bip32TabSelected() {
44801 return DOM.bip32tab.hasClass(
"active");
44807 onSelect: function() {
44808 network = bitcoin.networks.bitcoin;
44809 DOM.bip44coin.val(
0);
44813 name:
"Bitcoin Testnet",
44814 onSelect: function() {
44815 network = bitcoin.networks.testnet;
44816 DOM.bip44coin.val(
1);
44821 onSelect: function() {
44822 network = bitcoin.networks.clam;
44823 DOM.bip44coin.val(
23);
44828 onSelect: function() {
44829 network = bitcoin.networks.dogecoin;
44830 DOM.bip44coin.val(
3);
44835 onSelect: function() {
44836 network = bitcoin.networks.dash;
44837 DOM.bip44coin.val(
5);
44842 onSelect: function() {
44843 network = bitcoin.networks.bitcoin;
44844 DOM.bip44coin.val(
60);
44849 onSelect: function() {
44850 network = bitcoin.networks.game;
44851 DOM.bip44coin.val(
101);
44856 onSelect: function() {
44857 network = bitcoin.networks.jumbucks;
44858 DOM.bip44coin.val(
26);
44863 onSelect: function() {
44864 network = bitcoin.networks.litecoin;
44865 DOM.bip44coin.val(
2);
44870 onSelect: function() {
44871 network = bitcoin.networks.namecoin;
44872 DOM.bip44coin.val(
7);
44877 onSelect: function() {
44878 network = bitcoin.networks.peercoin;
44879 DOM.bip44coin.val(
6);
44884 onSelect: function() {
44885 network = bitcoin.networks.bitcoin;
44886 DOM.bip44coin.val(
144);
44890 name:
"ShadowCash",
44891 onSelect: function() {
44892 network = bitcoin.networks.shadow;
44893 DOM.bip44coin.val(
35);
44897 name:
"ShadowCash Testnet",
44898 onSelect: function() {
44899 network = bitcoin.networks.shadowtn;
44900 DOM.bip44coin.val(
1);
44905 onSelect: function() {
44906 network = bitcoin.networks.slimcoin;
44907 DOM.bip44coin.val(
63);
44911 name:
"Slimcoin Testnet",
44912 onSelect: function() {
44913 network = bitcoin.networks.slimcointn;
44914 DOM.bip44coin.val(
111);
44919 onSelect: function() {
44920 network = bitcoin.networks.viacoin;
44921 DOM.bip44coin.val(
14);
44925 name:
"Viacoin Testnet",
44926 onSelect: function() {
44927 network = bitcoin.networks.viacointestnet;
44928 DOM.bip44coin.val(
1);
44935 name:
"Bitcoin Core",
44936 onSelect: function() {
44937 DOM.bip32path.val(
"m/0'/0'");
44938 DOM.hardenedAddresses.prop('checked', true);
44942 name:
"blockchain.info",
44943 onSelect: function() {
44944 DOM.bip32path.val(
"m/44'/0'/0'");
44945 DOM.hardenedAddresses.prop('checked', false);
44949 name:
"MultiBit HD",
44950 onSelect: function() {
44951 DOM.bip32path.val(
"m/0'/0");
44952 DOM.hardenedAddresses.prop('checked', false);