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.2
.7</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>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>
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>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>
159 <div class=
"entropy-container hidden">
160 <div class=
"form-group text-danger">
161 <label class=
"col-sm-2 control-label">Warning
</label>
162 <div class=
"col-sm-10 form-control-static">
163 <span>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
164 <a href=
"#entropy-notes">Read more
</a>
167 <div class=
"form-group">
168 <label for=
"entropy" class=
"col-sm-2 control-label">Entropy
</label>
169 <div class=
"col-sm-7">
170 <textarea id=
"entropy" rows=
"2" class=
"entropy form-control" placeholder=
"Accepts either binary, base 6, 6-sided dice, base 10, hexadecimal or cards"></textarea>
171 <div class=
"row filter-warning text-danger hidden">
172 <p class=
"col-sm-12">
174 Some characters have been discarded
179 <label class=
"col-sm-3 control-label"><span class=
"more-info" title=
"Based on estimates from zxcvbn using Filtered Entropy">Time To Crack
</span></label>
180 <div class=
"crack-time col-sm-3 form-control-static"></div>
181 <label class=
"col-sm-3 control-label">Event Count
</label>
182 <div class=
"event-count col-sm-3 form-control-static"></div>
185 <label class=
"col-sm-3 control-label">Entropy Type
</label>
186 <div class=
"type col-sm-3 form-control-static"></div>
187 <label class=
"col-sm-3 control-label">Bits Per Event
</label>
188 <div class=
"bits-per-event col-sm-3 form-control-static"></div>
191 <label class=
"col-sm-3 control-label">Raw Entropy Words
</label>
192 <div class=
"word-count col-sm-3 form-control-static"></div>
193 <label class=
"col-sm-3 control-label"><span class=
"more-info" title=
"Total bits of entropy may be less than indicated if any entropy event uses a weak source.">Total Bits
</span></label>
194 <div class=
"bits col-sm-3 form-control-static"></div>
196 <label class=
"col-sm-3 control-label">Filtered Entropy
</label>
197 <div class=
"filtered col-sm-9 form-control-static"></div>
198 <label class=
"col-sm-3 control-label">Raw Binary
</label>
199 <div class=
"binary col-sm-9 form-control-static"></div>
200 <label class=
"col-sm-3 control-label">Mnemonic Length
</label>
201 <div class=
"col-sm-9">
202 <select class=
"mnemonic-length form-control">
203 <option value=
"raw" selected
>Use Raw Entropy (
3 words per
32 bits)
</option>
204 <option value=
"12">12 <span>Words
</span></option>
205 <option value=
"15">15 <span>Words
</option>
206 <option value=
"18">18 <span>Words
</span></option>
207 <option value=
"21">21 <span>Words
</span></option>
208 <option value=
"24">24 <span>Words
</span></option>
212 <div class=
"col-sm-3">
213 <p>Valid entropy values include:
</p>
215 <li><strong>Binary
</strong> [
0-
1]
<br>101010011</li>
216 <li><strong>Base
6</strong> [
0-
5]
<br>123434014</li>
217 <li><strong>Dice
</strong> [
1-
6]
<br>62535634</li>
218 <li><strong>Base
10</strong> [
0-
9]
<br>90834528</li>
219 <li><strong>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
220 <li><strong>Card
</strong> [A2-
9TJQK][CDHS]
<br>ahqs9dtc
</li>
225 <div class=
"form-group">
226 <div class=
"col-sm-2"></div>
227 <div class=
"col-sm-10 checkbox">
229 <input type=
"checkbox" class=
"use-entropy">
230 <span>Supply my own source of entropy
</span>
234 <div class=
"form-group">
235 <label class=
"col-sm-2 control-label">Mnemonic Language
</label>
236 <div class=
"col-sm-10 languages">
237 <div class=
"form-control no-border">
238 <a href=
"#english">English
</a>
239 <a href=
"#japanese" title=
"Japanese">日本語
</a>
240 <a href=
"#spanish" title=
"Spanish">Español
</a>
241 <a href=
"#chinese_simplified" title=
"Chinese (Simplified)">中文(简体)
</a>
242 <a href=
"#chinese_traditional" title=
"Chinese (Traditional)">中文(繁體)
</a>
243 <a href=
"#french" title=
"French">Français
</a>
244 <a href=
"#italian" title=
"Italian">Italiano
</a>
248 <div class=
"form-group">
249 <label for=
"phrase" class=
"col-sm-2 control-label">BIP39 Mnemonic
</label>
250 <div class=
"col-sm-10">
251 <textarea id=
"phrase" class=
"phrase form-control" data-show-qr
></textarea>
254 <div class=
"form-group">
255 <label for=
"passphrase" class=
"col-sm-2 control-label">BIP39 Passphrase (optional)
</label>
256 <div class=
"col-sm-10">
257 <textarea id=
"passphrase" class=
"passphrase form-control"></textarea>
260 <div class=
"form-group">
261 <label for=
"seed" class=
"col-sm-2 control-label">BIP39 Seed
</label>
262 <div class=
"col-sm-10">
263 <textarea id=
"seed" class=
"seed form-control" readonly=
"readonly" data-show-qr
></textarea>
266 <div class=
"form-group">
267 <label for=
"network-phrase" class=
"col-sm-2 control-label">Coin
</label>
268 <div class=
"col-sm-10">
269 <select id=
"network-phrase" class=
"network form-control">
270 <!-- populated by javascript -->
274 <div class=
"form-group">
275 <label for=
"root-key" class=
"col-sm-2 control-label">BIP32 Root Key
</label>
276 <div class=
"col-sm-10">
277 <textarea id=
"root-key" class=
"root-key form-control" data-show-qr
></textarea>
280 <div class=
"form-group litecoin-ltub-container hidden">
281 <label for=
"litecoin-use-ltub" class=
"col-sm-2 control-label">Prefixes
</label>
282 <div class=
"col-sm-10 checkbox">
284 <input type=
"checkbox" id=
"litecoin-use-ltub" class=
"litecoin-use-ltub">
285 Use
<code>Ltpv / Ltub
</code> instead of
<code>xprv / xpub
</code>
296 <div class=
"col-md-12">
297 <h2>Derivation Path
</h2>
298 <ul class=
"derivation-type nav nav-tabs" role=
"tablist">
300 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
302 <li id=
"bip44-tab" class=
"active">
303 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
306 <a href=
"#bip49" role=
"tab" data-toggle=
"tab">BIP49
</a>
309 <div class=
"derivation-type tab-content">
310 <div id=
"bip44" class=
"tab-pane active">
311 <form class=
"form-horizontal" role=
"form">
313 <div class=
"col-sm-2"></div>
314 <div class=
"col-sm-10">
316 For more info see the
317 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
320 <div class=
"form-group">
321 <label for=
"purpose" class=
"col-sm-2 control-label">
322 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank">Purpose
</a>
324 <div class=
"col-sm-10">
325 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44" readonly
>
328 <div class=
"form-group">
329 <label for=
"coin" class=
"col-sm-2 control-label">
330 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank">Coin
</a>
332 <div class=
"col-sm-10">
333 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0" readonly
>
336 <div class=
"form-group">
337 <label for=
"account" class=
"col-sm-2 control-label">
338 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank">Account
</a>
340 <div class=
"col-sm-10">
341 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
344 <div class=
"form-group">
345 <label for=
"change" class=
"col-sm-2 control-label">
346 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank">External / Internal
</a>
348 <div class=
"col-sm-10">
349 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
352 <div class=
"form-group">
353 <label class=
"col-sm-2 control-label">
355 <div class=
"col-sm-10">
356 <p>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
359 <div class=
"form-group">
360 <label for=
"account-xprv" class=
"col-sm-2 control-label">
361 <span>Account Extended Private Key
</span>
363 <div class=
"col-sm-10">
364 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
367 <div class=
"form-group">
368 <label for=
"account-xpub" class=
"col-sm-2 control-label">
369 <span>Account Extended Public Key
</span>
371 <div class=
"col-sm-10">
372 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
375 <div class=
"form-group">
376 <label class=
"col-sm-2 control-label">
378 <div class=
"col-sm-10">
379 <p>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
382 <div class=
"form-group">
383 <label for=
"bip44-path" class=
"col-sm-2 control-label">BIP32 Derivation Path
</label>
384 <div class=
"col-sm-10">
385 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
390 <div id=
"bip32" class=
"tab-pane">
391 <form class=
"form-horizontal" role=
"form">
393 <div class=
"col-sm-2"></div>
394 <div class=
"col-sm-10">
396 For more info see the
397 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
400 <div class=
"form-group">
401 <label for=
"bip32-client" class=
"col-sm-2 control-label">Client
</label>
402 <div class=
"col-sm-10">
403 <select id=
"bip32-client" class=
"client form-control">
404 <option value=
"custom">Custom derivation path
</option>
405 <!-- populated by javascript -->
409 <div class=
"form-group">
410 <label for=
"bip32-path" class=
"col-sm-2 control-label">BIP32 Derivation Path
</label>
411 <div class=
"col-sm-10">
412 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
415 <div class=
"form-group">
416 <div class=
"col-sm-2"></div>
417 <label class=
"col-sm-10">
418 <input class=
"hardened-addresses" type=
"checkbox">
419 <span>Use hardened addresses
</span>
422 <div class=
"form-group">
423 <div class=
"col-sm-2"></div>
424 <label class=
"col-sm-10">
425 <input class=
"p2wpkh-nested-in-p2sh" type=
"checkbox">
426 <span>Use SegWit addresses (ie P2WPKH Nested In P2SH)
</span>
429 <div class=
"form-group">
430 <label for=
"core-path" class=
"col-sm-2 control-label">Bitcoin Core
</label>
431 <div class=
"col-sm-10">
432 <p class=
"form-control no-border">
433 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
435 <p class=
"form-control no-border">
436 For more info see the
437 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
441 <div class=
"form-group">
442 <label for=
"core-path" class=
"col-sm-2 control-label">Multibit
</label>
443 <div class=
"col-sm-10">
444 <p class=
"form-control no-border">
445 <span>Use path
<code>m/
0'/
0</code>.
</span>
447 <p class=
"form-control no-border">
448 <span>For more info see
</span>
449 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
453 <div class=
"form-group">
454 <label class=
"col-sm-2 control-label">Block Explorers
</label>
455 <div class=
"col-sm-10">
456 <p class=
"form-control no-border">
457 <span>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
458 <span>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
460 <p class=
"form-control no-border">
461 <span>Can be used with
</span>:
462 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
468 <div id=
"bip49" class=
"tab-pane">
469 <form class=
"form-horizontal" role=
"form">
471 <div class=
"unavailable hidden">
472 <div class=
"form-group">
473 <div class=
"col-sm-2"></div>
474 <div class=
"col-sm-10">
475 <p>BIP49 is unavailable for this coin.
</p>
479 <div class=
"available">
480 <div class=
"col-sm-2"></div>
481 <div class=
"col-sm-10">
483 For more info see the
484 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target=
"_blank">BIP49 spec
</a>.
487 <div class=
"form-group">
488 <label for=
"purpose" class=
"col-sm-2 control-label">
489 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank">Purpose
</a>
491 <div class=
"col-sm-10">
492 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"49" readonly
>
495 <div class=
"form-group">
496 <label for=
"coin" class=
"col-sm-2 control-label">
497 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank">Coin
</a>
499 <div class=
"col-sm-10">
500 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0" readonly
>
503 <div class=
"form-group">
504 <label for=
"account" class=
"col-sm-2 control-label">
505 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank">Account
</a>
507 <div class=
"col-sm-10">
508 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
511 <div class=
"form-group">
512 <label for=
"change" class=
"col-sm-2 control-label">
513 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank">External / Internal
</a>
515 <div class=
"col-sm-10">
516 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
519 <div class=
"form-group">
520 <label class=
"col-sm-2 control-label">
522 <div class=
"col-sm-10">
523 <p>The account extended keys can be used for importing to most BIP49 compatible wallets.
</p>
526 <div class=
"form-group">
527 <label for=
"account-xprv" class=
"col-sm-2 control-label">
528 <span>Account Extended Private Key
</span>
530 <div class=
"col-sm-10">
531 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
534 <div class=
"form-group">
535 <label for=
"account-xpub" class=
"col-sm-2 control-label">
536 <span>Account Extended Public Key
</span>
538 <div class=
"col-sm-10">
539 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
542 <div class=
"form-group">
543 <label class=
"col-sm-2 control-label">
545 <div class=
"col-sm-10">
546 <p>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
549 <div class=
"form-group">
550 <label for=
"bip49-path" class=
"col-sm-2 control-label">BIP32 Derivation Path
</label>
551 <div class=
"col-sm-10">
552 <input id=
"bip49-path" type=
"text" class=
"path form-control" value=
"m/49'/0'/0'/0" readonly=
"readonly">
559 <form class=
"form-horizontal" role=
"form">
560 <div class=
"form-group">
561 <label for=
"extended-priv-key" class=
"col-sm-2 control-label">BIP32 Extended Private Key
</label>
562 <div class=
"col-sm-10">
563 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
566 <div class=
"form-group">
567 <label for=
"extended-pub-key" class=
"col-sm-2 control-label">BIP32 Extended Public Key
</label>
568 <div class=
"col-sm-10">
569 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
579 <div class=
"col-md-12">
580 <h2>Derived Addresses
</h2>
581 <p>Note these addreses are derived from the BIP32 Extended Key
</p>
582 <table class=
"table table-striped">
585 <div class=
"input-group">
586 <span>Path
</span>
587 <button class=
"index-toggle">Toggle
</button>
591 <div class=
"input-group">
592 <span>Address
</span>
593 <button class=
"address-toggle">Toggle
</button>
597 <div class=
"input-group">
598 <span>Public Key
</span>
599 <button class=
"public-key-toggle">Toggle
</button>
603 <div class=
"input-group">
604 <span>Private Key
</span>
605 <button class=
"private-key-toggle">Toggle
</button>
609 <tbody class=
"addresses monospace">
610 <tr><td> </td><td> </td><td> </td><td> </td></tr>
611 <tr><td> </td><td> </td><td> </td><td> </td></tr>
612 <tr><td> </td><td> </td><td> </td><td> </td></tr>
613 <tr><td> </td><td> </td><td> </td><td> </td></tr>
614 <tr><td> </td><td> </td><td> </td><td> </td></tr>
619 <span>Show more rows
</span>:
620 <input type=
"number" class=
"rows-to-add" value=
"20">
621 <button class=
"more">Show
</button>
626 <div class=
"col-md-12">
628 <h3>BIP39
<span class=
"small">Mnemonic code for generating deterministic keys
</span></h3>
631 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
633 <h3>BIP32
<span class=
"small">Hierarchical Deterministic Wallets
</span></h3>
636 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
640 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
642 <h3>BIP44
<span class=
"small">Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
645 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
647 <h3>BIP49
<span class=
"small">Derivation scheme for P2WPKH-nested-in-P2SH based accounts
</span></h3>
650 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target=
"_blank">official BIP49 spec
</a>
652 <h3>Private Keys
</h3>
656 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
658 <span>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
660 <h3 id=
"entropy-notes">Entropy
</h3>
663 Entropy values must be sourced from a
664 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
666 <span>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
668 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
669 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
670 random enough for the needs of this tool.
674 <strong><span>Do not store entropy.
</span></strong>
677 <span>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a mnemonic.
</span>
678 <span>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
679 <span><a href=
"https://en.wikipedia.org/wiki/Steganography#Physical" target=
"_blank">Steganography
</a> may be beneficial when storing the mnemonic.
</span>
683 The random mnemonic generator on this page uses a
684 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
686 <span>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
687 <span>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
</span>
688 <span>In that case you might choose to use your own source of entropy.
</span>
691 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank">You are not a good source of entropy.
</a>
695 <span>Please refer to
<a href=
"https://github.com/iancoleman/bip39/blob/master/LICENSE" target=
"_blank">the software license
</a> for more detail.
698 <p>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>
705 <div class=
"col-md-12">
706 <h2>Alternative Tools
</h2>
707 <p>This tool is interoperable with any BIP39 wallet.
</p>
708 <p>Some similar tools to this one (ie not consumer wallets) are
</p>
710 <a href=
"https://bip32jp.github.io/english/">
711 https://bip32jp.github.io/english/
720 <div class=
"col-md-12">
722 <h2>Offline Usage
</h2>
725 You can use this tool without having to be online.
728 In your browser, select file save-as, and save this page
732 Double-click that file to open it in a browser
733 on any offline computer.
736 <span>Alternatively, download the file from the repository
</span>
738 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
747 <div class=
"col-md-12">
749 <h2>This project is
100% open-source code
</h2>
752 <span>Get the source code from the repository
</span>
754 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
755 https://github.com/iancoleman/bip39
762 <span>BitcoinJS -
</span>
763 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
764 https://github.com/bitcoinjs/bitcoinjs-lib
769 <span>jsBIP39 -
</span>
770 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
771 https://github.com/iancoleman/jsbip39
777 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
778 https://github.com/bitwiseshiftleft/sjcl
783 <span>jQuery -
</span>
784 <a href=
"https://jquery.com/" target=
"_blank">
790 <span>Twitter Bootstrap -
</span>
791 <a href=
"http://getbootstrap.com/" target=
"_blank">
792 http://getbootstrap.com/
801 <div class=
"qr-container hidden">
802 <div class=
"qr-hint bg-primary hidden">Click field to hide QR
</div>
803 <div class=
"qr-hint bg-primary">Click field to show QR
</div>
804 <div class=
"qr-hider hidden">
805 <div class=
"qr-image"></div>
806 <div class=
"qr-warning bg-primary">Caution: Scanner may keep history
</div>
810 <div class=
"feedback-container">
811 <div class=
"feedback">Loading...
</div>
814 <script type=
"text/template" id=
"address-row-template">
816 <td class=
"index"><span></span></td>
817 <td class=
"address"><span data-show-qr
></span></td>
818 <td class=
"pubkey"><span data-show-qr
></span></td>
819 <td class=
"privkey"><span data-show-qr
></span></td>
823 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
824 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
825 // but is not required in any modern browsers.
826 // For more information, see
827 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
829 //----------------------------------------------------------------------
831 // ECMAScript
2015 Polyfills
833 //----------------------------------------------------------------------
838 // Set this to always override native implementations, for testing
839 // the polyfill in browsers with partial/full ES2015 support.
840 var OVERRIDE_NATIVE_FOR_TESTING = false;
842 var undefined = (void
0); // Paranoia
847 return o === global ? undefined : o;
850 function hook(o, p, f) {
852 console.assert(typeof op === 'function', 'Hooking a non-function');
854 var o = strict(this);
855 var r = f.apply(o, arguments);
856 return r !== undefined ? r : op.apply(o, arguments);
860 function isSymbol(s) {
861 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
864 function getPropertyDescriptor(target, name) {
865 var desc = Object.getOwnPropertyDescriptor(target, name);
866 var proto = Object.getPrototypeOf(target);
867 while (!desc && proto) {
868 desc = Object.getOwnPropertyDescriptor(proto, name);
869 proto = Object.getPrototypeOf(proto);
874 var enqueue = (function(nativePromise, nativeSetImmediate) {
876 return function(job) { nativePromise.resolve().then(function() { job(); }); };
877 if (nativeSetImmediate)
878 return function(job) { nativeSetImmediate(job); };
879 return function(job) { setTimeout(job,
0); };
880 }(global['Promise'], global['setImmediate']));
882 function define(o, p, v, override) {
883 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
886 if (typeof v === 'function') {
887 // Sanity check that functions are appropriately named (where possible)
888 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
889 Object.defineProperty(o, p, {
896 Object.defineProperty(o, p, {
905 function set_internal(o, p, v) {
906 Object.defineProperty(o, p, {
914 // Snapshot intrinsic functions
915 var $isNaN = global.isNaN,
916 $parseInt = global.parseInt,
917 $parseFloat = global.parseFloat;
920 LOG10E = Math.LOG10E,
930 random = Math.random,
933 var orig_match = String.prototype.match,
934 orig_replace = String.prototype.replace,
935 orig_search = String.prototype.search,
936 orig_split = String.prototype.split;
938 // These are used for implementing the polyfills, but not exported.
940 // Inspired by https://gist.github.com/
1638059
942 function EphemeronTable() {
943 var secretKey = ObjectCreate(null);
945 function conceal(o) {
946 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
947 Object.defineProperty(o, 'valueOf', {
948 value: (function(secretKey) {
949 return function (k) {
950 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
961 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
962 return v === o ? null : v;
967 secretKey = ObjectCreate(null);
969 remove: function(key) {
970 var secrets = reveal(key);
971 if (secrets && HasOwnProperty(secrets, 'value')) {
972 delete secrets.value;
977 get: function(key, defaultValue) {
978 var secrets = reveal(key);
979 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
982 var secrets = reveal(key);
983 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
985 set: function(key, value) {
986 var secrets = reveal(key) || conceal(key);
987 secrets.value = value;
992 var empty = Object.create(null);
994 //----------------------------------------------------------------------
997 // http://www.ecma-international.org/ecma-
262/
6.0/
999 //----------------------------------------------------------------------
1001 // ---------------------------------------
1002 //
19.4 Symbol Objects
1003 // ---------------------------------------
1005 // NOTE: Symbols are defined here - out of spec order - since we need the
1006 // properties and prototype to be populated for other polyfills.
1008 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
1012 var secret = Object.create(null);
1014 symbolForKey = function(k) {
1015 return symbolMap[k];
1018 var GlobalSymbolRegistry = [];
1020 function unique(bits) {
1021 return Array(bits +
1).join('x').replace(/x/g, function() {
1022 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
1026 //
19.4.1 The Symbol Constructor
1027 //
19.4.1.1 Symbol ( description=undefined )
1028 function Symbol(description) {
1029 if (!(this instanceof Symbol)) return new Symbol(description, secret);
1030 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
1032 var descString = description === undefined ? undefined : String(description);
1034 set_internal(this, '[[SymbolData]]', unique(
128));
1035 set_internal(this, '[[Description]]', descString);
1037 symbolMap[this] = this;
1041 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
1042 global.Symbol = Symbol;
1044 //
19.4.2 Properties of the Symbol Constructor
1046 //
19.4.2.1 Symbol.for (key)
1047 define(Symbol, 'for', function for_(key) {
1048 var stringKey = String(key);
1049 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1050 var e = GlobalSymbolRegistry[i];
1051 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
1053 var newSymbol = Symbol(key);
1054 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
1058 //
19.4.2.2 Symbol.hasInstance
1059 //
19.4.2.3 Symbol.isConcatSpreadable
1061 //
19.4.2.4 Symbol.iterator
1062 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
1064 //
19.4.2.5 Symbol.keyFor (sym)
1065 define(Symbol, 'keyFor', function keyFor(sym) {
1066 if (!(sym instanceof Symbol)) throw TypeError();
1067 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1068 var e = GlobalSymbolRegistry[i];
1069 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
1074 //
19.4.2.6 Symbol.match
1075 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
1077 //
19.4.2.7 Symbol.prototype
1079 //
19.4.2.8 Symbol.replace
1080 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
1082 //
19.4.2.9 Symbol.search
1083 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
1085 //
19.4.2.10 Symbol.species
1087 //
19.4.2.11 Symbol.search
1088 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
1090 //
19.4.2.12 Symbol.toPrimitive
1092 //
19.4.2.13 Symbol.toStringTag
1093 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
1095 //
19.4.2.14 Symbol.unscopables
1097 //
19.4.3 Properties of the Symbol Prototype Object
1098 //
19.4.3.1 Symbol.prototype.constructor
1100 //
19.4.3.2 Symbol.prototype.toString ( )
1101 Object.defineProperty(Symbol.prototype, 'toString', {
1102 value: function toString() {
1103 var s = strict(this);
1104 var desc = s['[[Description]]'];
1105 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
1107 configurable: true, writeable: true, enumerable: false });
1109 //
19.4.3.3 Symbol.prototype.valueOf ( )
1110 Object.defineProperty(Symbol.prototype, 'valueOf', {
1111 value: function valueOf() {
1112 // To prevent automatic string conversion:
1115 // Spec has approximately the following:
1116 //var s = strict(this);
1117 //if (Type(s) === 'symbol') return s;
1118 //if (Type(s) !== 'object') throw TypeError();
1119 //if (!('[[SymbolData]]' in s)) throw TypeError();
1120 //return s['[[SymbolData]]'];
1122 configurable: true, writeable: true, enumerable: false });
1124 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1125 // (Done later to polyfill partial implementations)
1127 //
19.4.4 Properties of Symbol Instances
1130 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
1132 // Defined here so that other prototypes can reference it
1133 //
25.1.2 The %IteratorPrototype% Object
1134 var $IteratorPrototype$ = {};
1136 //----------------------------------------
1137 //
6 ECMAScript Data Types and Values
1138 //----------------------------------------
1140 //
6.1 ECMAScript Language Types
1142 // "Type(x)" is used as shorthand for "the type of x"...
1145 case 'undefined': return 'undefined';
1146 case 'boolean': return 'boolean';
1147 case 'number': return 'number';
1148 case 'string': return 'string';
1149 case 'symbol': return 'symbol';
1151 if (v === null) return 'null';
1152 if (v instanceof global.Symbol) return 'symbol';
1157 //
6.1.5.1 Well-Known Symbols
1158 var $$iterator = global.Symbol.iterator,
1159 $$match = global.Symbol.match,
1160 $$replace = global.Symbol.replace,
1161 $$search = global.Symbol.search,
1162 $$split = global.Symbol.split,
1163 $$toStringTag = global.Symbol.toStringTag;
1165 //----------------------------------------
1166 //
7 Abstract Operations
1167 //----------------------------------------
1169 //----------------------------------------
1170 //
7.1 Type Conversion
1171 //----------------------------------------
1173 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1174 // just use valueOf()
1176 //
7.1.2 ToBoolean ( argument )
1177 // just use Boolean()
1179 //
7.1.3 ToNumber ( argument )
1180 // just use Number()
1182 //
7.1.4 ToInteger ( argument )
1183 function ToInteger(n) {
1185 if ($isNaN(n)) return
0;
1186 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1187 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1190 //
7.1.5 ToInt32 ( argument )
1191 function ToInt32(v) { return v
>> 0; }
1193 //
7.1.6 ToUint32 ( argument )
1194 function ToUint32(v) { return v
>>> 0; }
1196 //
7.1.7 ToInt16 ( argument )
1197 function ToInt16(v) { return (v <<
16)
>> 16; }
1199 //
7.1.8 ToUint16 ( argument )
1200 function ToUint16(v) { return v &
0xFFFF; }
1202 //
7.1.9 ToInt8 ( argument )
1203 function ToInt8(v) { return (v <<
24)
>> 24; }
1205 //
7.1.10 ToUint8 ( argument )
1206 function ToUint8(v) { return v &
0xFF; }
1208 //
7.1.11 ToUint8Clamp ( argument )
1209 function ToUint8Clamp(argument) {
1210 var number = Number(argument);
1211 if ($isNaN(number)) return
0;
1212 if (number <=
0) return
0;
1213 if (number
>=
255) return
255;
1214 var f = floor(number);
1215 if ((f +
0.5) < number) return f +
1;
1216 if (number < (f +
0.5)) return f;
1217 if (f %
2) return f +
1;
1221 //
7.1.12 ToString ( argument )
1222 // just use String()
1224 //
7.1.13 ToObject ( argument )
1225 function ToObject(v) {
1226 if (v === null || v === undefined) throw TypeError();
1230 //
7.1.14 ToPropertyKey ( argument )
1231 function ToPropertyKey(v) {
1235 //
7.1.15 ToLength ( argument )
1236 function ToLength(v) {
1237 var len = ToInteger(v);
1238 if (len <=
0) return
0;
1239 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1240 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1243 //
7.1.16 CanonicalNumericIndexString ( argument )
1245 //----------------------------------------
1246 //
7.2 Testing and Comparison Operations
1247 //----------------------------------------
1249 //
7.2.1 RequireObjectCoercible ( argument )
1250 //
7.2.2 IsArray ( argument )
1252 //
7.2.3 IsCallable ( argument )
1253 function IsCallable(o) { return typeof o === 'function'; }
1255 //
7.2.4 IsConstructor ( argument )
1256 function IsConstructor(o) {
1257 // Hacks for Safari
7 TypedArray XXXConstructor objects
1258 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1259 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1260 // TODO: Can this be improved on?
1261 return typeof o === 'function';
1264 //
7.2.5 IsExtensible (O)
1265 //
7.2.6 IsInteger ( argument )
1267 //
7.2.7 IsPropertyKey ( argument )
1268 function IsPropertyKey(argument) {
1269 if (Type(argument) === 'string') return true;
1270 if (Type(argument) === 'symbol') return true;
1274 //
7.2.8 IsRegExp ( argument )
1275 //
7.2.5 IsConstructor ( argument )
1277 //
7.2.9 SameValue(x, y)
1278 function SameValue(x, y) {
1279 if (typeof x !== typeof y) return false;
1284 if (x !== x && y !== y) return true;
1285 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1295 //
7.2.10 SameValueZero(x, y)
1296 function SameValueZero(x, y) {
1297 if (typeof x !== typeof y) return false;
1302 if (x !== x && y !== y) return true;
1312 //----------------------------------------
1313 //
7.3 Operations on Objects
1314 //----------------------------------------
1317 // - just use o.p or o[p]
1319 //
7.3.2 GetV (V, P)
1320 function GetV(v, p) {
1321 var o = ToObject(v);
1325 //
7.3.3 Set (O, P, V, Throw)
1326 // - just use o.p = v or o[p] = v
1331 //
7.3.9 GetMethod (O, P)
1332 function GetMethod(o, p) {
1333 var func = GetV(o, p);
1334 if (func === undefined || func === null) return undefined;
1335 if (!IsCallable(func)) throw TypeError();
1339 //
7.3.10 HasProperty (O, P)
1340 function HasProperty(o, p) {
1342 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1343 if (Type(o) !== 'object') return false;
1344 o = Object.getPrototypeOf(o);
1349 //
7.3.11 HasOwnProperty (O, P)
1350 function HasOwnProperty(o, p) {
1351 return Object.prototype.hasOwnProperty.call(o, p);
1354 //----------------------------------------
1355 //
7.4 Operations on Iterator Objects
1356 //----------------------------------------
1358 //
7.4.1 GetIterator ( obj, method )
1359 function GetIterator(obj, method) {
1360 if (arguments.length <
2)
1361 method = GetMethod(obj, $$iterator);
1362 var iterator = method.call(obj);
1363 if (Type(iterator) !== 'object') throw TypeError();
1367 //
7.4.2 IteratorNext ( iterator, value )
1368 function IteratorNext(iterator, value) {
1369 if (arguments.length <
2)
1370 var result = iterator.next();
1372 result = iterator.next(value);
1373 if (Type(result) !== 'object') throw TypeError();
1377 //
7.4.3 IteratorComplete ( iterResult )
1378 function IteratorComplete(iterResult) {
1379 console.assert(Type(iterResult) === 'object');
1380 return Boolean(iterResult.done);
1383 //
7.4.4 IteratorValue ( iterResult )
1384 function IteratorValue(iterResult) {
1385 console.assert(Type(iterResult) === 'object');
1386 return iterResult.value;
1389 //
7.4.5 IteratorStep ( iterator )
1390 function IteratorStep( iterator, value ) {
1391 var result = IteratorNext(iterator, value);
1392 var done = result['done'];
1393 if (Boolean(done) === true) return false;
1397 //
7.4.6 IteratorClose( iterator, completion )
1398 function IteratorClose( iterator, completion ) {
1399 console.assert(Type(iterator) === 'object');
1400 var _return = GetMethod(iterator, 'return');
1401 if (_return === undefined) return completion;
1403 var innerResult = _return[iterator]();
1405 // TODO: If completion.[[type]] is throw, return completion
1408 if (Type(innerResult) !== 'object') throw TypeError();
1412 //
7.4.7 CreateIterResultObject (value, done)
1413 function CreateIterResultObject(value, done) {
1414 console.assert(Type(done) === 'boolean');
1416 obj["value"] = value;
1421 //
7.4.8 CreateListIterator (list)
1422 //
7.4.8.1 ListIterator next( )
1423 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1424 //
7.4.9.1 CompoundIterator next( )
1426 //----------------------------------------
1427 //
8 Executable Code and Execution Contexts
1428 //----------------------------------------
1430 //----------------------------------------
1431 //
8.4 Jobs and Job Queues
1432 //----------------------------------------
1434 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1435 function EnqueueJob(queueName, job, args) {
1436 var fn = function() { job.apply(undefined, args); };
1440 //
8.4.2 NextJob result
1441 function NextJob(result) {
1445 //----------------------------------------
1446 //
9 Ordinary and Exotic Objects Behaviors
1447 //----------------------------------------
1449 //
9.1.11 [[Enumerate]] ()
1450 function Enumerate(obj) {
1452 if (Object(obj) !== obj) return e;
1453 var visited = new Set;
1454 while (obj !== null) {
1455 Object.getOwnPropertyNames(obj).forEach(function(name) {
1456 if (!visited.has(name)) {
1457 var desc = Object.getOwnPropertyDescriptor(obj, name);
1460 if (desc.enumerable) e.push(name);
1464 obj = Object.getPrototypeOf(obj);
1466 return e[$$iterator]();
1469 //
9.1.12 [[OwnPropertyKeys]] ( )
1470 function OwnPropertyKeys(o) {
1471 return Object.getOwnPropertyNames(o);
1474 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1475 function ObjectCreate(proto, internalSlotsList) {
1476 return Object.create(proto, internalSlotsList);
1479 // ---------------------------------------
1480 //
19 Fundamental Objects
1481 // ---------------------------------------
1483 // ---------------------------------------
1484 //
19.1 Object Objects
1485 // ---------------------------------------
1487 //
19.1.1 The Object Constructor
1488 //
19.1.1.1 Object ( [ value ] )
1489 //
19.1.2 Properties of the Object Constructor
1490 //
19.1.2.1 Object.assign ( target, ...sources )
1493 function assign(target, /*...*/sources) {
1494 var to = ToObject(target);
1495 if (arguments.length <
2) return to;
1497 var sourcesIndex =
1;
1498 while (sourcesIndex < arguments.length) {
1499 var nextSource = arguments[sourcesIndex++];
1500 if (nextSource === undefined || nextSource === null) {
1503 var from = ToObject(nextSource);
1504 keys = OwnPropertyKeys(from);
1506 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1507 var nextKey = keys[keysIndex];
1508 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1509 if (desc !== undefined && desc.enumerable) {
1510 var propValue = from[nextKey];
1511 to[nextKey] = propValue;
1518 //
19.1.2.2 Object.create ( O [ , Properties ] )
1519 //
19.1.2.3 Object.defineProperties ( O, Properties )
1520 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1521 //
19.1.2.5 Object.freeze ( O )
1522 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1525 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1526 $getOwnPropertyNames = Object.getOwnPropertyNames,
1527 $keys = Object.keys,
1528 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1530 function isStringKey(k) { return !symbolForKey(k); }
1532 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1534 Object, 'getOwnPropertyNames',
1535 function getOwnPropertyNames(o) {
1536 if (Object.prototype.toString.call(o) === '[object Window]') {
1537 // Workaround for cross-realm calling by IE itself.
1538 // https://github.com/inexorabletash/polyfill/issues/
96
1540 return $getOwnPropertyNames(o).filter(isStringKey);
1542 return $window_names.slice();
1545 return $getOwnPropertyNames(o).filter(isStringKey);
1548 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1550 Object, 'getOwnPropertySymbols',
1551 function getOwnPropertySymbols(o) {
1552 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1555 //
19.1.2.14 Object.keys ( O )
1559 return $keys(o).filter(isStringKey);
1563 //
19.1.2.9 Object.getPrototypeOf ( O )
1564 //
19.1.2.10 Object.is ( value1, value2 )
1567 function is(value1, value2) {
1568 return SameValue(value1, value2);
1571 //
19.1.2.11 Object.isExtensible ( O )
1572 //
19.1.2.12 Object.isFrozen ( O )
1573 //
19.1.2.13 Object.isSealed ( O )
1575 //
19.1.2.14 Object.keys ( O )
1578 //
19.1.2.15 Object.preventExtensions ( O )
1579 //
19.1.2.16 Object.prototype
1580 //
19.1.2.17 Object.seal ( O )
1582 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1584 Object, 'setPrototypeOf',
1585 function setPrototypeOf(o, proto) {
1586 if (Type(o) !== 'object') throw TypeError();
1587 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1588 o.__proto__ = proto;
1593 //
19.1.3 Properties of the Object Prototype Object
1594 //
19.1.3.1 Object.prototype.constructor
1595 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1596 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1597 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1598 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1599 //
19.1.3.6 Object.prototype.toString ( )
1600 hook(Object.prototype, 'toString',
1602 var o = strict(this);
1603 if (o === Object(o) && $$toStringTag in o) {
1604 return '[object ' + o[$$toStringTag] + ']';
1609 //
19.1.3.7 Object.prototype.valueOf ( )
1610 //
19.1.4 Properties of Object Instances
1612 // ---------------------------------------
1613 //
19.2 Function Objects
1614 // ---------------------------------------
1616 //
19.2.1 The Function Constructor
1617 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1618 //
19.2.2 Properties of the Function Constructor
1619 //
19.2.2.1 Function.length
1620 //
19.2.2.2 Function.prototype
1621 //
19.2.3 Properties of the Function Prototype Object
1622 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1623 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1624 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1625 //
19.2.3.4 Function.prototype.constructor
1626 //
19.2.3.5 Function.prototype.toString ( )
1627 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1628 //
19.2.4 Function Instances
1631 //
19.2.4.3 prototype
1633 // (No polyfillable changes from ES5)
1635 // ---------------------------------------
1636 //
19.3 Boolean Objects
1637 // ---------------------------------------
1639 //
19.3.1 The Boolean Constructor
1640 //
19.3.1.1 Boolean ( value )
1641 //
19.3.2 Properties of the Boolean Constructor
1642 //
19.3.2.1 Boolean.prototype
1643 //
19.3.3 Properties of the Boolean Prototype Object
1644 //
19.3.3.1 Boolean.prototype.constructor
1645 //
19.3.3.2 Boolean.prototype.toString ( )
1646 //
19.3.3.3 Boolean.prototype.valueOf ( )
1647 //
19.3.4 Properties of Boolean Instances
1649 // (No polyfillable changes from ES5)
1651 // ---------------------------------------
1652 //
19.4 Symbol Objects
1653 // ---------------------------------------
1655 // Moved earlier in this script, so that other polyfills can depend on them.
1657 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1658 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1660 // ---------------------------------------
1661 //
19.5 Error Objects
1662 // ---------------------------------------
1664 //
19.5.1 The Error Constructor
1665 //
19.5.1.1 Error ( message )
1666 //
19.5.1.2 new Error( ...argumentsList )
1667 //
19.5.2 Properties of the Error Constructor
1668 //
19.5.2.1 Error.prototype
1669 //
19.5.3 Properties of the Error Prototype Object
1670 //
19.5.3.1 Error.prototype.constructor
1671 //
19.5.3.2 Error.prototype.message
1672 //
19.5.3.3 Error.prototype.name
1673 //
19.5.3.4 Error.prototype.toString ( )
1674 //
19.5.4 Properties of Error Instances
1675 //
19.5.5 Native Error Types Used in This Standard
1676 //
19.5.5.1 EvalError
1677 //
19.5.5.2 RangeError
1678 //
19.5.5.3 ReferenceError
1679 //
19.5.5.4 SyntaxError
1680 //
19.5.5.5 TypeError
1681 //
19.5.5.6 URIError
1682 //
19.5.6 NativeError Object Structure
1683 //
19.5.6.1 NativeError Constructors
1684 //
19.5.6.1.1 NativeError ( message )
1685 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1686 //
19.5.6.2 Properties of the NativeError Constructors
1687 //
19.5.6.2.1 NativeError.prototype
1688 //
19.5.6.3 Properties of the NativeError Prototype Objects
1689 //
19.5.6.4 Properties of NativeError Instances
1691 // (No polyfillable changes from ES5)
1693 // ---------------------------------------
1694 //
20 Numbers and Dates
1695 // ---------------------------------------
1697 // ---------------------------------------
1698 //
20.1 Number Objects
1699 // ---------------------------------------
1701 //
20.1.1 The Number Constructor
1702 //
20.1.1.1 Number ( [ value ] )
1703 //
20.1.1.2 new Number ( ...argumentsList )
1704 //
20.1.2 Properties of the Number Constructor
1706 //
20.1.2.1 Number.EPSILON
1711 for (next =
1;
1 + next !==
1; next = next /
2)
1716 //
20.1.2.2 Number.isFinite ( number )
1719 function isFinite(number) {
1720 if (Type(number) !== 'number') return false;
1721 if (number !== number || number === +Infinity || number === -Infinity) return false;
1725 //
20.1.2.3 Number.isInteger ( number )
1727 Number, 'isInteger',
1728 function isInteger(number) {
1729 if (Type(number) !== 'number') return false;
1730 if (number !== number || number === +Infinity || number === -Infinity) return false;
1731 var integer = ToInteger(number);
1732 if (integer !== number) return false;
1736 //
20.1.2.4 Number.isNaN ( number )
1739 function isNaN(number) {
1740 if (Type(number) !== 'number') return false;
1741 if (number !== number) return true;
1745 //
20.1.2.5 Number.isSafeInteger ( number )
1747 Number, 'isSafeInteger',
1748 function isSafeInteger(number) {
1749 if (Type(number) !== 'number') return false;
1750 if (number !== number || number === +Infinity || number === -Infinity) return false;
1751 var integer = ToInteger(number);
1752 if (integer !== number) return false;
1753 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1758 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1760 Number, 'MAX_SAFE_INTEGER',
1761 9007199254740991); //
2^
53-
1
1763 //
20.1.2.7 Number.MAX_VALUE
1765 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1767 Number, 'MIN_SAFE_INTEGER',
1768 -
9007199254740991); // -
2^
53+
1
1770 //
20.1.2.9 Number.MIN_VALUE
1771 //
20.1.2.10 Number.NaN
1772 //
20.1.2.11 Number.NEGATIVE_INFINITY
1774 //
20.1.2.12 Number.parseFloat ( string )
1775 define(Number, 'parseFloat', $parseFloat);
1777 //
20.1.2.13 Number.parseInt ( string, radix )
1778 define(Number, 'parseInt', $parseInt);
1780 //
20.1.2.14 Number.POSITIVE_INFINITY
1781 //
20.1.2.15 Number.prototype
1783 //
20.1.3 Properties of the Number Prototype Object
1784 //
20.1.3.1 Number.prototype.constructor
1785 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1786 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1787 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1788 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1789 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1790 //
20.1.3.7 Number.prototype.valueOf ( )
1791 //
20.1.4 Properties of Number Instances
1793 // ---------------------------------------
1794 //
20.2 The Math Object
1795 // ---------------------------------------
1797 //
20.2.1 Value Properties of the Math Object
1799 //
20.2.1.2 Math.LN10
1800 //
20.2.1.3 Math.LN2
1801 //
20.2.1.4 Math.LOG10E
1802 //
20.2.1.5 Math.LOG2E
1804 //
20.2.1.7 Math.SQRT1_2
1805 //
20.2.1.8 Math.SQRT2
1807 //
20.2.1.9 Math [ @@toStringTag ]
1808 define(Math, $$toStringTag, 'Math');
1810 //
20.2.2 Function Properties of the Math Object
1811 //
20.2.2.1 Math.abs ( x )
1812 //
20.2.2.2 Math.acos ( x )
1814 //
20.2.2.3 Math.acosh(x)
1819 return log(x + sqrt(x * x -
1));
1822 //
20.2.2.4 Math.asin ( x )
1824 //
20.2.2.5 Math.asinh( x )
1829 if (SameValue(x, -
0)) {
1832 var s = sqrt(x * x +
1);
1833 return (s === -x) ? log(
0) : log(x + s);
1836 //
20.2.2.6 Math.atan ( x )
1838 //
20.2.2.7 Math.atanh( x )
1843 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1846 //
20.2.2.8 Math.atan2 ( y, x )
1848 //
20.2.2.9 Math.cbrt ( x )
1856 var r = pow(abs(x),
1/
3);
1858 return r + (r * (t-r) / (
2*r + t));
1861 //
20.2.2.10 Math.ceil ( x )
1863 //
20.2.2.11 Math.clz32 ( x )
1868 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1869 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1872 return x &
0xff000000 ? clz8(x
>> 24) :
1873 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1874 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1879 //
20.2.2.12 Math.cos ( x )
1881 //
20.2.2.13 Math.cosh ( x )
1886 return (pow(E, x) + pow(E, -x)) /
2;
1889 //
20.2.2.14 Math.exp ( x )
1891 //
20.2.2.15 Math.expm1 ( x )
1896 // from: http://www.johndcook.com/cpp_log1p.html
1897 if (SameValue(x, -
0)) {
1899 } else if (abs(x) <
1e-5) {
1900 return x +
0.5 * x * x; // two terms of Taylor expansion
1906 //
20.2.2.16 Math.floor ( x )
1908 //
20.2.2.17 Math.fround ( x )
1911 function fround(x) {
1915 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1918 return (new Float32Array([x]))[
0];
1921 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1926 var m =
0, sawNaN = false;
1927 for (var i =
0; i < arguments.length; ++i) {
1928 var n = abs(Number(arguments[i]));
1929 if (n === Infinity) return n;
1930 if (n !== n) sawNaN = true;
1934 if (sawNaN) return NaN;
1935 if (m ===
0) return +
0;
1937 for (i =
0; i < values.length; ++i) {
1938 var r = values[i] / m;
1941 return m * sqrt(sum);
1944 //
20.2.2.19 Math.imul ( x, y )
1947 function imul(x, y) {
1948 var a = ToUint32(x);
1949 var b = ToUint32(y);
1950 // (slow but accurate)
1951 var ah = (a
>>> 16) &
0xffff;
1952 var al = a &
0xffff;
1953 var bh = (b
>>> 16) &
0xffff;
1954 var bl = b &
0xffff;
1955 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1956 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1959 //
20.2.2.20 Math.log ( x )
1961 //
20.2.2.21 Math.log1p ( x )
1966 // from: http://www.johndcook.com/cpp_expm1.html
1969 } else if (SameValue(x, -
0)) {
1971 } else if (abs(x)
> 1e-4) {
1974 return (-
0.5 * x +
1) * x;
1978 //
20.2.2.22 Math.log10 ( x )
1983 return log(x) * LOG10E;
1986 //
20.2.2.23 Math.log2 ( x )
1991 return log(x) * LOG2E;
1994 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1995 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1996 //
20.2.2.26 Math.pow ( x, y )
1997 //
20.2.2.27 Math.random ( )
1998 //
20.2.2.28 Math.round ( x )
2000 //
20.2.2.29 Math.sign(x)
2005 return x <
0 ? -
1 : x
> 0 ?
1 : x;
2008 //
20.2.2.30 Math.sin ( x )
2010 //
20.2.2.31 Math.sinh( x )
2015 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
2018 //
20.2.2.32 Math.sqrt ( x )
2019 //
20.2.2.33 Math.tan ( x )
2021 //
20.2.2.34 Math.tanh ( x )
2026 var n = pow(E,
2 * x) -
1,
2027 d = pow(E,
2 * x) +
1;
2028 if (SameValue(x, -
0))
2030 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
2033 //
20.2.2.35 Math.trunc ( x )
2038 return $isNaN(x) ? NaN :
2039 x <
0 ? ceil(x) : floor(x);
2042 // ---------------------------------------
2043 //
20.3 Date Objects
2044 // ---------------------------------------
2046 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
2047 //
20.3.1.1 Time Values and Time Range
2048 //
20.3.1.2 Day Number and Time within Day
2049 //
20.3.1.3 Year Number
2050 //
20.3.1.4 Month Number
2051 //
20.3.1.5 Date Number
2052 //
20.3.1.6 Week Day
2053 //
20.3.1.7 Local Time Zone Adjustment
2054 //
20.3.1.8 Daylight Saving Time Adjustment
2055 //
20.3.1.9 Local Time
2056 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
2057 //
20.3.1.11 MakeTime (hour, min, sec, ms)
2058 //
20.3.1.12 MakeDay (year, month, date)
2059 //
20.3.1.13 MakeDate (day, time)
2060 //
20.3.1.14 TimeClip (time)
2061 //
20.3.1.15 Date Time String Format
2062 //
20.3.1.15.1 Extended years
2063 //
20.3.2 The Date Constructor
2064 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2065 //
20.3.2.2 Date ( value )
2066 //
20.3.2.3 Date ( )
2067 //
20.3.3 Properties of the Date Constructor
2068 //
20.3.3.1 Date.now ( )
2069 //
20.3.3.2 Date.parse (string)
2070 //
20.3.3.3 Date.prototype
2071 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2072 //
20.3.4 Properties of the Date Prototype Object
2073 //
20.3.4.1 Date.prototype.constructor
2074 //
20.3.4.2 Date.prototype.getDate ( )
2075 //
20.3.4.3 Date.prototype.getDay ( )
2076 //
20.3.4.4 Date.prototype.getFullYear ( )
2077 //
20.3.4.5 Date.prototype.getHours ( )
2078 //
20.3.4.6 Date.prototype.getMilliseconds ( )
2079 //
20.3.4.7 Date.prototype.getMinutes ( )
2080 //
20.3.4.8 Date.prototype.getMonth ( )
2081 //
20.3.4.9 Date.prototype.getSeconds ( )
2082 //
20.3.4.10 Date.prototype.getTime ( )
2083 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
2084 //
20.3.4.12 Date.prototype.getUTCDate ( )
2085 //
20.3.4.13 Date.prototype.getUTCDay ( )
2086 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
2087 //
20.3.4.15 Date.prototype.getUTCHours ( )
2088 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
2089 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
2090 //
20.3.4.18 Date.prototype.getUTCMonth ( )
2091 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
2092 //
20.3.4.20 Date.prototype.setDate ( date )
2093 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
2094 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
2095 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
2096 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
2097 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
2098 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
2099 //
20.3.4.27 Date.prototype.setTime ( time )
2100 //
20.3.4.28 Date.prototype.setUTCDate ( date )
2101 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
2102 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
2103 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
2104 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
2105 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
2106 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
2107 //
20.3.4.35 Date.prototype.toDateString ( )
2108 //
20.3.4.36 Date.prototype.toISOString ( )
2109 //
20.3.4.37 Date.prototype.toJSON ( key )
2110 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
2111 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2112 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
2113 //
20.3.4.41 Date.prototype.toString ( )
2114 //
20.3.4.42 Date.prototype.toTimeString ( )
2115 //
20.3.4.43 Date.prototype.toUTCString ( )
2116 //
20.3.4.44 Date.prototype.valueOf ( )
2117 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
2118 //
20.3.5 Properties of Date Instances
2120 // (No polyfillable changes from ES5)
2122 // ---------------------------------------
2123 //
21 Text Processing
2124 // ---------------------------------------
2126 var string_regexp_dispatch = (function() {
2127 var faux = {}, secret = Symbol();
2128 faux[Symbol.match] = function() { return secret; };
2129 return (
"").match(faux) === secret;
2132 //
21.1 String Objects
2133 //
21.1.1 The String Constructor
2134 //
21.1.1.1 String ( value )
2135 //
21.1.2 Properties of the String Constructor
2136 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
2138 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
2140 String, 'fromCodePoint',
2141 function fromCodePoint(/*...codePoints*/) {
2142 var codePoints = arguments,
2143 length = codePoints.length,
2146 while (nextIndex < length) {
2147 var next = codePoints[nextIndex];
2148 var nextCP = Number(next);
2149 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2150 nextCP <
0 || nextCP
> 0x10FFFF) {
2151 throw RangeError('Invalid code point ' + nextCP);
2153 if (nextCP <
0x10000) {
2154 elements.push(String.fromCharCode(nextCP));
2157 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2158 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2162 return elements.join('');
2165 //
21.1.2.3 String.prototype
2167 //
21.1.2.4 String.raw ( template , ...substitutions )
2170 function raw(template /*, ...substitutions*/) {
2171 var substitutions = [].slice.call(arguments,
1);
2173 var cooked = Object(template);
2174 var rawValue = cooked['raw'];
2175 var raw = Object(rawValue);
2176 var len = raw['length'];
2177 var literalSegments = ToLength(len);
2178 if (literalSegments <=
0) return '';
2179 var stringElements = [];
2182 var next = raw[nextIndex];
2183 var nextSeg = String(next);
2184 stringElements.push(nextSeg);
2185 if (nextIndex +
1 === literalSegments)
2186 return stringElements.join('');
2187 next = substitutions[nextIndex];
2188 var nextSub = String(next);
2189 stringElements.push(nextSub);
2190 nextIndex = nextIndex +
1;
2194 // See https://githib.com/inexorabletash/uate for a more useful version.
2196 //
21.1.3 Properties of the String Prototype Object
2197 //
21.1.3.1 String.prototype.charAt ( pos )
2198 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2200 //
21.1.3.3 String.prototype.codePointAt ( pos )
2202 String.prototype, 'codePointAt',
2203 function codePointAt(pos) {
2204 var o = strict(this);
2206 var position = ToInteger(pos);
2207 var size = s.length;
2208 if (position <
0 || position
>= size) return undefined;
2209 var first = s.charCodeAt(position);
2210 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2211 var second = s.charCodeAt(position +
1);
2212 if (second <
0xDC00 || second
> 0xDFFF) return first;
2213 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2216 //
21.1.3.4 String.prototype.concat ( ...args )
2217 //
21.1.3.5 String.prototype.constructor
2219 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2221 String.prototype, 'endsWith',
2222 function endsWith(searchString) {
2223 var endPosition = arguments[
1];
2225 var o = strict(this);
2227 var searchStr = String(searchString);
2229 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2230 var end = min(max(pos,
0), len);
2231 var searchLength = searchStr.length;
2232 var start = end - searchLength;
2233 if (start <
0) return false;
2234 if (s.substring(start, start + searchLength) === searchStr) return true;
2238 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2240 String.prototype, 'includes',
2241 function includes(searchString) {
2242 var position = arguments[
1];
2244 var o = strict(this);
2246 var searchStr = String(searchString);
2247 var pos = ToInteger(position);
2249 var start = min(max(pos,
0), len);
2250 return s.indexOf(searchStr, start) !== -
1;
2253 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2254 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2255 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2256 //
21.1.3.11 String.prototype.match ( regexp )
2258 String.prototype, 'match',
2259 function match(regexp) {
2260 var o = strict(this);
2262 if (HasProperty(regexp, $$match)) var rx = regexp;
2263 else rx = new RegExp(regexp);
2264 return rx[$$match](s);
2265 }, !string_regexp_dispatch);
2267 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2269 // Not practical due to table sizes; if needed, pull in:
2270 // https://github.com/walling/unorm/
2272 //
21.1.3.13 String.prototype.repeat ( count )
2274 String.prototype, 'repeat',
2275 function repeat(count) {
2276 var o = strict(this);
2278 var n = ToInteger(count);
2279 if (n <
0) throw RangeError();
2280 if (n === Infinity) throw RangeError();
2281 var t = new Array(n +
1).join(s);
2285 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2287 String.prototype, 'replace',
2288 function replace(searchValue, replaceValue) {
2289 var o = strict(this);
2290 if (HasProperty(searchValue, $$replace))
2291 return searchValue[$$replace](o, replaceValue);
2292 return orig_replace.call(o, searchValue, replaceValue);
2293 }, !string_regexp_dispatch);
2295 //
21.1.3.15 String.prototype.search ( regexp )
2297 String.prototype, 'search',
2298 function search(regexp) {
2299 var o = strict(this);
2300 var string = String(o);
2301 if (HasProperty(regexp, $$search)) var rx = regexp;
2302 else rx = new RegExp(regexp);
2303 return rx[$$search](string);
2304 }, !string_regexp_dispatch);
2306 //
21.1.3.16 String.prototype.slice ( start, end )
2307 //
21.1.3.17 String.prototype.split ( separator, limit )
2309 String.prototype, 'split',
2310 function split(separator, limit) {
2311 var o = strict(this);
2312 if (HasProperty(separator, $$split))
2313 return separator[$$split](o, limit);
2314 return orig_split.call(o, separator, limit);
2315 }, !string_regexp_dispatch);
2317 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2319 String.prototype, 'startsWith',
2320 function startsWith(searchString) {
2321 var position = arguments[
1];
2323 var o = strict(this);
2325 var searchStr = String(searchString);
2326 var pos = ToInteger(position);
2328 var start = min(max(pos,
0), len);
2329 var searchLength = searchStr.length;
2330 if (searchLength + start
> len) return false;
2331 if (s.substring(start, start + searchLength) === searchStr) return true;
2335 //
21.1.3.19 String.prototype.substring ( start, end )
2336 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2337 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2338 //
21.1.3.22 String.prototype.toLowerCase ( )
2339 //
21.1.3.23 String.prototype.toString ( )
2340 //
21.1.3.24 String.prototype.toUpperCase ( )
2341 //
21.1.3.25 String.prototype.trim ( )
2342 //
21.1.3.26 String.prototype.valueOf ( )
2344 //
21.1.3.27 String.prototype [ @@iterator ]( )
2346 String.prototype, $$iterator,
2347 function entries() {
2348 return CreateStringIterator(this, 'value');
2351 //
21.1.4 Properties of String Instances
2354 //
21.1.5 String Iterator Objects
2356 function StringIterator() {}
2358 //
21.1.5.1 CreateStringIterator Abstract Operation
2359 function CreateStringIterator(string, kind) {
2360 var s = String(string);
2361 var iterator = new StringIterator;
2362 set_internal(iterator, '[[IteratedString]]', s);
2363 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2364 set_internal(iterator, '[[StringIterationKind]]', kind);
2368 //
21.1.5.2 The %StringIteratorPrototype% Object
2369 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2370 StringIterator.prototype = $StringIteratorPrototype$;
2372 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2374 $StringIteratorPrototype$, 'next',
2376 var o = ToObject(this);
2377 var s = String(o['[[IteratedString]]']),
2378 index = o['[[StringIteratorNextIndex]]'],
2381 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2382 return CreateIterResultObject(undefined, true);
2384 var cp = s.codePointAt(index);
2385 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2386 return CreateIterResultObject(String.fromCodePoint(cp), false);
2389 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2390 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2392 //
21.1.5.3 Properties of String Iterator Instances
2394 // ---------------------------------------
2395 //
21.2 RegExp (Regular Expression) Objects
2396 // ---------------------------------------
2399 //
21.2.2 Pattern Semantics
2400 //
21.2.2.1 Notation
2402 //
21.2.2.3 Disjunction
2403 //
21.2.2.4 Alternative
2405 //
21.2.2.6 Assertion
2406 //
21.2.2.7 Quantifier
2408 //
21.2.2.9 AtomEscape
2409 //
21.2.2.10 CharacterEscape
2410 //
21.2.2.11 DecimalEscape
2411 //
21.2.2.12 CharacterClassEscape
2412 //
21.2.2.13 CharacterClass
2413 //
21.2.2.14 ClassRanges
2414 //
21.2.2.15 NonemptyClassRanges
2415 //
21.2.2.16 NonemptyClassRangesNoDash
2416 //
21.2.2.17 ClassAtom
2417 //
21.2.2.18 ClassAtomNoDash
2418 //
21.2.2.19 ClassEscape
2419 //
21.2.3 The RegExp Constructor
2420 //
21.2.3.1 RegExp ( pattern, flags )
2421 //
21.2.3.2 new RegExp( ...argumentsList )
2422 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2423 //
21.2.4 Properties of the RegExp Constructor
2424 //
21.2.4.1 RegExp.prototype
2425 //
21.2.5 Properties of the RegExp Prototype Object
2426 //
21.2.5.1 RegExp.prototype.constructor
2427 //
21.2.5.2 RegExp.prototype.exec ( string )
2429 //
21.2.5.3 get RegExp.prototype.flags
2430 if (!('flags' in RegExp.prototype)) {
2431 Object.defineProperty(
2432 RegExp.prototype, 'flags', {
2434 var s = String(this);
2435 return s.substring(s.lastIndexOf('/') +
1);
2440 //
21.2.5.4 get RegExp.prototype.global
2441 //
21.2.5.5 get RegExp.prototype.ignoreCase
2443 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2444 define(RegExp.prototype, $$match, function(string) {
2445 var o = strict(this);
2446 return orig_match.call(string, o);
2449 //
21.2.5.7 get RegExp.prototype.multiline
2451 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2452 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2453 var o = strict(this);
2454 return orig_replace.call(string, o, replaceValue);
2457 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2458 define(RegExp.prototype, $$search, function(string) {
2459 var o = strict(this);
2460 return orig_search.call(string, o);
2463 //
21.2.5.10 get RegExp.prototype.source
2465 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2466 define(RegExp.prototype, $$split, function(string, limit) {
2467 var o = strict(this);
2468 return orig_split.call(string, o, limit);
2471 //
21.2.5.12 get RegExp.prototype.sticky
2472 //
21.2.5.13 RegExp.prototype.test( S )
2473 //
21.2.5.14 RegExp.prototype.toString ( )
2474 //
21.2.5.15 get RegExp.prototype.unicode
2476 //
21.2.6 Properties of RegExp Instances
2477 //
21.2.6.1 lastIndex
2479 // (No polyfillable changes from ES5)
2481 // ---------------------------------------
2482 //
22 Indexed Collections
2483 // ---------------------------------------
2485 // ---------------------------------------
2486 //
22.1 Array Objects
2487 // ---------------------------------------
2489 //
22.1.1 The Array Constructor
2490 //
22.1.1.1 Array ( )
2491 //
22.1.1.2 Array (len)
2492 //
22.1.1.3 Array (...items )
2494 //
22.1.2 Properties of the Array Constructor
2496 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2499 function from(items) {
2500 var mapfn = arguments[
1];
2501 var thisArg = arguments[
2];
2503 var c = strict(this);
2504 if (mapfn === undefined) {
2505 var mapping = false;
2507 if (!IsCallable(mapfn)) throw TypeError();
2511 var usingIterator = GetMethod(items, $$iterator);
2512 if (usingIterator !== undefined) {
2513 if (IsConstructor(c)) {
2518 var iterator = GetIterator(items, usingIterator);
2521 var next = IteratorStep(iterator);
2522 if (next === false) {
2526 var nextValue = IteratorValue(next);
2528 var mappedValue = mapfn.call(t, nextValue);
2530 mappedValue = nextValue;
2535 var arrayLike = ToObject(items);
2536 var lenValue = arrayLike.length;
2537 var len = ToLength(lenValue);
2538 if (IsConstructor(c)) {
2545 var kValue = arrayLike[k];
2547 mappedValue = mapfn.call(t, kValue, k);
2549 mappedValue = kValue;
2557 //
22.1.2.2 Array.isArray ( arg )
2559 //
22.1.2.3 Array.of ( ...items )
2563 var items = arguments;
2565 var lenValue = items.length;
2566 var len = ToUint32(lenValue);
2567 var c = strict(this), a;
2568 if (IsConstructor(c)) {
2583 //
22.1.2.4 Array.prototype
2584 //
22.1.2.5 get Array [ @@species ]
2585 //
22.1.3 Properties of the Array Prototype Object
2586 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2587 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2588 //
22.1.3.2 Array.prototype.constructor
2589 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2591 Array.prototype, 'copyWithin',
2592 function copyWithin(target, start/*, end*/) {
2593 var end = arguments[
2];
2595 var o = ToObject(this);
2596 var lenVal = o.length;
2597 var len = ToLength(lenVal);
2599 var relativeTarget = ToInteger(target);
2601 if (relativeTarget <
0)
2602 to = max(len + relativeTarget,
0);
2604 to = min(relativeTarget, len);
2605 var relativeStart = ToInteger(start);
2607 if (relativeStart <
0)
2608 from = max(len + relativeStart,
0);
2610 from = min(relativeStart, len);
2612 if (end === undefined)
2615 relativeEnd = ToInteger(end);
2617 if (relativeEnd <
0)
2618 final = max(len + relativeEnd,
0);
2620 final = min(relativeEnd, len);
2621 var count = min(final - from, len - to);
2623 if (from < to && to < from + count) {
2625 from = from + count -
1;
2626 to = to + count -
1;
2631 var fromKey = String(from);
2632 var toKey = String(to);
2633 var fromPresent = HasProperty(o, fromKey);
2635 var fromVal = o[fromKey];
2640 from = from + direction;
2641 to = to + direction;
2647 //
22.1.3.4 Array.prototype.entries ( )
2648 var nativeArrayIteratorMethods =
2649 ('entries' in Array.prototype && 'next' in [].entries());
2652 Array.prototype, 'entries',
2653 function entries() {
2654 return CreateArrayIterator(this, 'key+value');
2655 }, !nativeArrayIteratorMethods);
2657 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2659 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2661 Array.prototype, 'fill',
2662 function fill(value/*, start, end*/) {
2663 var start = arguments[
1],
2666 var o = ToObject(this);
2667 var lenVal = o.length;
2668 var len = ToLength(lenVal);
2670 var relativeStart = ToInteger(start);
2672 if (relativeStart <
0)
2673 k = max((len + relativeStart),
0);
2675 k = min(relativeStart, len);
2677 if (end === undefined)
2680 relativeEnd = ToInteger(end);
2682 if (relativeEnd <
0)
2683 final = max((len + relativeEnd),
0);
2685 final = min(relativeEnd, len);
2694 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2696 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2698 Array.prototype, 'find',
2699 function find(predicate) {
2700 var o = ToObject(this);
2701 var lenValue = o.length;
2702 var len = ToInteger(lenValue);
2703 if (!IsCallable(predicate)) throw TypeError();
2704 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2708 var kPresent = HasProperty(o, pk);
2711 var testResult = predicate.call(t, kValue, k, o);
2712 if (Boolean(testResult)) {
2721 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2723 Array.prototype, 'findIndex',
2724 function findIndex(predicate) {
2725 var o = ToObject(this);
2726 var lenValue = o.length;
2727 var len = ToLength(lenValue);
2728 if (!IsCallable(predicate)) throw TypeError();
2729 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2733 var kPresent = HasProperty(o, pk);
2736 var testResult = predicate.call(t, kValue, k, o);
2737 if (Boolean(testResult)) {
2746 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2747 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2748 //
22.1.3.12 Array.prototype.join (separator)
2750 //
22.1.3.13 Array.prototype.keys ( )
2752 Array.prototype, 'keys',
2754 return CreateArrayIterator(this, 'key');
2755 }, !nativeArrayIteratorMethods);
2757 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2758 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2759 //
22.1.3.16 Array.prototype.pop ( )
2760 //
22.1.3.17 Array.prototype.push ( ...items )
2761 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2762 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2763 //
22.1.3.20 Array.prototype.reverse ( )
2764 //
22.1.3.21 Array.prototype.shift ( )
2765 //
22.1.3.22 Array.prototype.slice (start, end)
2766 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2767 //
22.1.3.24 Array.prototype.sort (comparefn)
2768 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2769 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2770 //
22.1.3.27 Array.prototype.toString ( )
2771 //
22.1.3.28 Array.prototype.unshift ( ...items )
2773 //
22.1.3.29 Array.prototype.values ( )
2775 Array.prototype, 'values',
2777 return CreateArrayIterator(this, 'value');
2778 }, !nativeArrayIteratorMethods);
2780 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2782 Array.prototype, $$iterator,
2783 Array.prototype.values
2786 //
22.1.3.31 Array.prototype [ @@unscopables ]
2787 //
22.1.4 Properties of Array Instances
2790 //
22.1.5 Array Iterator Objects
2791 function ArrayIterator() {}
2793 //
22.1.5.1 CreateArrayIterator Abstract Operation
2794 function CreateArrayIterator(array, kind) {
2795 var o = ToObject(array);
2796 var iterator = new ArrayIterator;
2797 set_internal(iterator, '[[IteratedObject]]', o);
2798 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2799 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2803 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2804 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2805 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2807 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2809 $ArrayIteratorPrototype$, 'next',
2811 var o = strict(this);
2812 if (Type(o) !== 'object') throw TypeError();
2813 var a = o['[[IteratedObject]]'],
2814 index = o['[[ArrayIteratorNextIndex]]'],
2815 itemKind = o['[[ArrayIterationKind]]'],
2816 lenValue = a.length,
2817 len = ToUint32(lenValue),
2820 if (itemKind.indexOf('sparse') !== -
1) {
2822 while (!found && index < len) {
2823 elementKey = String(index);
2824 found = HasProperty(a, elementKey);
2831 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2832 return CreateIterResultObject(undefined, true);
2835 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2836 if (itemKind.indexOf('value') !== -
1)
2837 elementValue = a[elementKey];
2838 if (itemKind.indexOf('key+value') !== -
1)
2839 return CreateIterResultObject([elementKey, elementValue], false);
2840 if (itemKind.indexOf('key') !== -
1)
2841 return CreateIterResultObject(elementKey, false);
2842 if (itemKind === 'value')
2843 return CreateIterResultObject(elementValue, false);
2844 throw Error('Internal error');
2847 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2848 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2850 //
22.1.5.3 Properties of Array Iterator Instances
2853 // ---------------------------------------
2854 //
22.2 TypedArray Objects
2855 // ---------------------------------------
2857 // See typedarray.js for TypedArray polyfill
2859 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2860 'Int16Array', 'Uint16Array',
2861 'Int32Array', 'Uint32Array',
2862 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2863 if (!($TypedArrayName$ in global))
2865 var $TypedArray$ = global[$TypedArrayName$];
2867 //
22.2.1 The %TypedArray% Intrinsic Object
2868 //
22.2.1.1 %TypedArray% ( length )
2869 //
22.2.1.2 %TypedArray% ( typedArray )
2870 //
22.2.1.3 %TypedArray% ( object )
2871 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2872 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2873 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2875 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2877 $TypedArray$, 'from',
2878 function from(source) {
2879 var mapfn = arguments[
1];
2880 var thisArg = arguments[
2];
2882 var c = strict(this);
2883 if (!IsConstructor(c)) throw TypeError();
2884 if (mapfn === undefined) {
2885 var mapping = false;
2887 if (IsCallable(mapfn)) throw TypeError();
2891 var usingIterator = GetMethod(source, $$iterator);
2892 if (usingIterator !== undefined) {
2893 var iterator = GetIterator(source, usingIterator);
2896 while (next !== false) {
2897 next = IteratorStep(iterator);
2898 if (next !== false) {
2899 var nextValue = IteratorValue(next);
2900 values.push(nextValue);
2903 var len = values.length;
2904 var newObj = new c(len);
2907 var kValue = values.shift();
2909 var mappedValue = mapfn.call(t, kValue);
2911 mappedValue = kValue;
2913 newObj[k] = mappedValue;
2916 console.assert(values.length ===
0);
2919 var arrayLike = ToObject(source);
2920 var lenValue = arrayLike.length;
2921 len = ToLength(lenValue);
2922 newObj = new c(len);
2925 kValue = arrayLike[k];
2927 mappedValue = mapfn.call(t, kValue, k);
2929 mappedValue = kValue;
2931 newObj[k] = mappedValue;
2937 //
22.2.2.2 %TypedArray%.of ( ...items )
2941 var items = arguments;
2943 var len = items.length;
2944 var c = strict(this);
2945 var newObj = new c(len);
2948 newObj[k] = items[k];
2954 //
22.2.2.3 %TypedArray%.prototype
2955 //
22.2.2.4 get %TypedArray% [ @@species ]
2956 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2957 //
22.2.3.1 get %TypedArray%.prototype.buffer
2958 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2959 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2960 //
22.2.3.4 %TypedArray%.prototype.constructor
2962 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2963 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2965 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2966 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2968 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2969 define($TypedArray$.prototype, 'every', Array.prototype.every);
2971 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2973 $TypedArray$.prototype, 'fill',
2974 //Array.prototype.fill // Doesn't work in Safari
7
2975 function fill(value/*, start, end*/) {
2976 var start = arguments[
1],
2979 var o = ToObject(this);
2980 var lenVal = o.length;
2981 var len = ToLength(lenVal);
2983 var relativeStart = ToInteger(start);
2985 if (relativeStart <
0) k = max((len + relativeStart),
0);
2986 else k = min(relativeStart, len);
2988 if (end === undefined) relativeEnd = len;
2989 else relativeEnd = ToInteger(end);
2991 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2992 else final = min(relativeEnd, len);
3001 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
3003 $TypedArray$.prototype, 'filter',
3004 function filter(callbackfn) {
3005 var thisArg = arguments[
1];
3007 var o = ToObject(this);
3008 var lenVal = o.length;
3009 var len = ToLength(lenVal);
3010 if (!IsCallable(callbackfn)) throw TypeError();
3012 var c = o.constructor;
3018 var selected = callbackfn.call(t, kValue, k, o);
3025 var a = new c(captured);
3027 for (var i =
0; i < kept.length; ++i) {
3035 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
3036 define($TypedArray$.prototype, 'find', Array.prototype.find);
3038 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
3039 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
3041 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
3042 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
3044 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
3045 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
3047 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
3048 define($TypedArray$.prototype, 'join', Array.prototype.join);
3050 //
22.2.3.15 %TypedArray%.prototype.keys ( )
3051 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
3053 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
3054 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
3056 //
22.2.3.17 get %TypedArray%.prototype.length
3058 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
3060 $TypedArray$.prototype, 'map',
3061 function map(callbackfn) {
3062 var thisArg = arguments[
1];
3064 var o = ToObject(this);
3065 var lenValue = o.length;
3066 var len = ToLength(lenValue);
3067 if (!IsCallable(callbackfn)) throw TypeError();
3070 var c = o.constructor;
3071 if (IsConstructor(c))
3073 if (a === undefined)
3077 var kPresent = HasProperty(o, k);
3080 var mappedValue = callbackfn.call(t, kValue, k, o);
3088 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
3089 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
3091 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
3092 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
3094 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
3095 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
3097 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
3098 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
3099 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
3101 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
3103 $TypedArray$.prototype, 'slice',
3104 function slice(start, end) {
3105 var o = ToObject(this);
3106 var lenVal = o.length;
3107 var len = ToLength(lenVal);
3108 var relativeStart = ToInteger(start);
3109 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
3110 var relativeEnd = (end === undefined) ? len : ToInteger(end);
3111 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
3112 var count = final - k;
3113 var c = o.constructor;
3114 if (IsConstructor(c)) {
3115 var a = new c(count);
3129 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
3130 define($TypedArray$.prototype, 'some', Array.prototype.some);
3132 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
3134 $TypedArray$.prototype, 'sort',
3136 var comparefn = arguments[
0];
3138 function sortCompare(x, y) {
3139 console.assert(Type(x) === 'number' && Type(y) === 'number');
3140 if (x !== x && y !== y) return +
0;
3141 if (x !== x) return
1;
3142 if (y !== y) return -
1;
3143 if (comparefn !== undefined) {
3144 return comparefn(x, y);
3146 if (x < y) return -
1;
3147 if (x
> y) return
1;
3150 return Array.prototype.sort.call(this, sortCompare);
3153 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3154 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3155 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3157 //
22.2.3.29 %TypedArray%.prototype.values ( )
3158 define($TypedArray$.prototype, 'values', Array.prototype.values);
3160 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3162 $TypedArray$.prototype, $$iterator,
3163 $TypedArray$.prototype.values
3166 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3167 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3169 //
22.2.4 The TypedArray Constructors
3170 //
22.2.4.1TypedArray( ... argumentsList)
3171 //
22.2.5 Properties of the TypedArray Constructors
3172 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3173 //
22.2.5.2 TypedArray.prototype
3174 //
22.2.6 Properties of TypedArray Prototype Objects
3175 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3176 //
22.2.6.2 TypedArray.prototype.constructor
3177 //
22.2.7 Properties of TypedArray Instances
3180 // ---------------------------------------
3181 //
23 Keyed Collection
3182 // ---------------------------------------
3184 // ---------------------------------------
3186 // ---------------------------------------
3189 //
23.1.1 The Map Constructor
3191 //
23.1.1.1 Map ( [ iterable ] )
3193 function Map(/*iterable*/) {
3194 var map = strict(this);
3195 var iterable = arguments[
0];
3197 if (Type(map) !== 'object') throw TypeError();
3198 if ('[[MapData]]' in map) throw TypeError();
3200 if (iterable !== undefined) {
3201 var adder = map['set'];
3202 if (!IsCallable(adder)) throw TypeError();
3203 var iter = GetIterator(ToObject(iterable));
3205 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3206 if (iter === undefined) return map;
3208 var next = IteratorStep(iter);
3211 var nextItem = IteratorValue(next);
3212 if (Type(nextItem) !== 'object') throw TypeError();
3213 var k = nextItem[
0];
3214 var v = nextItem[
1];
3215 adder.call(map, k, v);
3221 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3222 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3223 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3224 (new global.Map([['a',
1]]).size !==
1))
3228 function MapDataIndexOf(mapData, key) {
3230 if (key === key) return mapData.keys.indexOf(key);
3231 // Slow case for NaN
3232 for (i =
0; i < mapData.keys.length; i +=
1)
3233 if (SameValueZero(mapData.keys[i], key)) return i;
3237 //
23.1.1.2 new Map ( ... argumentsList )
3238 //
23.1.2 Properties of the Map Constructor
3239 //
23.1.2.1 Map.prototype
3240 var $MapPrototype$ = {};
3241 Map.prototype = $MapPrototype$;
3243 //
23.1.2.2 get Map [ @@species ]
3245 //
23.1.3 Properties of the Map Prototype Object
3246 //
23.1.3.1 Map.prototype.clear ()
3248 Map.prototype, 'clear',
3250 var m = strict(this);
3251 if (Type(m) !== 'object') throw TypeError();
3252 if (!('[[MapData]]' in m)) throw TypeError();
3253 if (m['[[MapData]]'] === undefined) throw TypeError();
3254 var entries = m['[[MapData]]'];
3255 entries.keys.length =
0;
3256 entries.values.length =
0;
3260 //
23.1.3.2 Map.prototype.constructor
3262 //
23.1.3.3 Map.prototype.delete ( key )
3264 Map.prototype, 'delete',
3265 function delete_(key) {
3266 var m = strict(this);
3267 if (Type(m) !== 'object') throw TypeError();
3268 if (!('[[MapData]]' in m)) throw TypeError();
3269 if (m['[[MapData]]'] === undefined) throw TypeError();
3270 var entries = m['[[MapData]]'];
3271 var i = MapDataIndexOf(entries, key);
3272 if (i <
0) return false;
3273 entries.keys[i] = empty;
3274 entries.values[i] = empty;
3278 //
23.1.3.4 Map.prototype.entries ( )
3280 Map.prototype, 'entries',
3281 function entries() {
3282 var m = strict(this);
3283 if (Type(m) !== 'object') throw TypeError();
3284 return CreateMapIterator(m, 'key+value');
3287 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3289 Map.prototype, 'forEach',
3290 function forEach(callbackfn /*, thisArg*/) {
3291 var thisArg = arguments[
1];
3293 var m = strict(this);
3294 if (Type(m) !== 'object') throw TypeError();
3295 if (!('[[MapData]]' in m)) throw TypeError();
3296 if (m['[[MapData]]'] === undefined) throw TypeError();
3297 var entries = m['[[MapData]]'];
3299 if (!IsCallable(callbackfn)) {
3300 throw TypeError('First argument to forEach is not callable.');
3302 for (var i =
0; i < entries.keys.length; ++i) {
3303 if (entries.keys[i] !== empty) {
3304 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3310 //
23.1.3.6 Map.prototype.get ( key )
3312 Map.prototype, 'get',
3314 var m = strict(this);
3315 if (Type(m) !== 'object') throw TypeError();
3316 if (!('[[MapData]]' in m)) throw TypeError();
3317 if (m['[[MapData]]'] === undefined) throw TypeError();
3318 var entries = m['[[MapData]]'];
3319 var i = MapDataIndexOf(entries, key);
3320 if (i
>=
0) return entries.values[i];
3324 //
23.1.3.7 Map.prototype.has ( key )
3326 Map.prototype, 'has',
3328 var m = strict(this);
3329 if (Type(m) !== 'object') throw TypeError();
3330 if (!('[[MapData]]' in m)) throw TypeError();
3331 if (m['[[MapData]]'] === undefined) throw TypeError();
3332 var entries = m['[[MapData]]'];
3333 if (MapDataIndexOf(entries, key)
>=
0) return true;
3337 //
23.1.3.8 Map.prototype.keys ( )
3339 Map.prototype, 'keys',
3341 var m = strict(this);
3342 if (Type(m) !== 'object') throw TypeError();
3343 return CreateMapIterator(m, 'key');
3346 //
23.1.3.9 Map.prototype.set ( key , value )
3348 Map.prototype, 'set',
3349 function set(key, value) {
3350 var m = strict(this);
3351 if (Type(m) !== 'object') throw TypeError();
3352 if (!('[[MapData]]' in m)) throw TypeError();
3353 if (m['[[MapData]]'] === undefined) throw TypeError();
3354 var entries = m['[[MapData]]'];
3355 var i = MapDataIndexOf(entries, key);
3356 if (i <
0) i = entries.keys.length;
3357 if (SameValue(key, -
0)) key =
0;
3358 entries.keys[i] = key;
3359 entries.values[i] = value;
3363 //
23.1.3.10 get Map.prototype.size
3364 Object.defineProperty(
3365 Map.prototype, 'size', {
3367 var m = strict(this);
3368 if (Type(m) !== 'object') throw TypeError();
3369 if (!('[[MapData]]' in m)) throw TypeError();
3370 if (m['[[MapData]]'] === undefined) throw TypeError();
3371 var entries = m['[[MapData]]'];
3373 for (var i =
0; i < entries.keys.length; ++i) {
3374 if (entries.keys[i] !== empty)
3381 //
23.1.3.11 Map.prototype.values ( )
3383 Map.prototype, 'values',
3385 var m = strict(this);
3386 if (Type(m) !== 'object') throw TypeError();
3387 return CreateMapIterator(m, 'value');
3390 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3392 Map.prototype, $$iterator,
3394 var m = strict(this);
3395 if (Type(m) !== 'object') throw TypeError();
3396 return CreateMapIterator(m, 'key+value');
3399 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3400 define(global.Map.prototype, $$toStringTag, 'Map');
3402 //
23.1.4 Properties of Map Instances
3403 //
23.1.5 Map Iterator Objects
3406 function MapIterator() {}
3408 //
23.1.5.1 CreateMapIterator Abstract Operation
3409 function CreateMapIterator(map, kind) {
3410 if (Type(map) !== 'object') throw TypeError();
3411 if (!('[[MapData]]' in map)) throw TypeError();
3412 if (map['[[MapData]]'] === undefined) throw TypeError();
3413 var iterator = new MapIterator;
3414 set_internal(iterator, '[[Map]]', map);
3415 set_internal(iterator, '[[MapNextIndex]]',
0);
3416 set_internal(iterator, '[[MapIterationKind]]', kind);
3420 //
23.1.5.2 The %MapIteratorPrototype% Object
3421 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3422 MapIterator.prototype = $MapIteratorPrototype$;
3424 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3426 $MapIteratorPrototype$, 'next',
3428 var o = strict(this);
3429 if (Type(o) !== 'object') throw TypeError();
3430 var m = o['[[Map]]'],
3431 index = o['[[MapNextIndex]]'],
3432 itemKind = o['[[MapIterationKind]]'],
3433 entries = m['[[MapData]]'];
3434 while (index < entries.keys.length) {
3435 var e = {key: entries.keys[index], value: entries.values[index]};
3437 set_internal(o, '[[MapNextIndex]]', index);
3438 if (e.key !== empty) {
3439 if (itemKind === 'key') {
3440 return CreateIterResultObject(e.key, false);
3441 } else if (itemKind === 'value') {
3442 return CreateIterResultObject(e.value, false);
3444 return CreateIterResultObject([e.key, e.value], false);
3448 return CreateIterResultObject(undefined, true);
3451 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3452 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3454 //
23.1.5.3 Properties of Map Iterator Instances
3457 // ---------------------------------------
3459 // ---------------------------------------
3462 //
23.2.1 The Set Constructor
3463 //
23.2.1.1 Set ( [ iterable ] )
3466 function Set(/*iterable*/) {
3467 var set = strict(this);
3468 var iterable = arguments[
0];
3470 if (Type(set) !== 'object') throw TypeError();
3471 if ('[[SetData]]' in set) throw TypeError();
3473 if (iterable !== undefined) {
3474 var adder = set['add'];
3475 if (!IsCallable(adder)) throw TypeError();
3476 var iter = GetIterator(ToObject(iterable));
3478 set_internal(set, '[[SetData]]', []);
3479 if (iter === undefined) return set;
3481 var next = IteratorStep(iter);
3484 var nextValue = IteratorValue(next);
3485 adder.call(set, nextValue);
3491 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3492 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3493 (new global.Set([
1]).size !==
1))
3496 function SetDataIndexOf(setData, key) {
3499 return setData.indexOf(key);
3500 // Slow case for NaN
3501 for (i =
0; i < setData.length; i +=
1)
3502 if (SameValueZero(setData[i], key)) return i;
3506 //
23.2.1.2 new Set ( ...argumentsList )
3507 //
23.2.2 Properties of the Set Constructor
3509 //
23.2.2.1 Set.prototype
3510 var $SetPrototype$ = {};
3511 Set.prototype = $SetPrototype$;
3513 //
23.2.2.2 get Set [ @@species ]
3514 //
23.2.3 Properties of the Set Prototype Object
3516 //
23.2.3.1 Set.prototype.add (value )
3518 Set.prototype, 'add',
3519 function add(value) {
3520 var s = strict(this);
3521 if (Type(s) !== 'object') throw TypeError();
3522 if (!('[[SetData]]' in s)) throw TypeError();
3523 if (s['[[SetData]]'] === undefined) throw TypeError();
3524 if (SameValue(value, -
0)) value =
0;
3525 var entries = s['[[SetData]]'];
3526 var i = SetDataIndexOf(entries, value);
3527 if (i <
0) i = s['[[SetData]]'].length;
3528 s['[[SetData]]'][i] = value;
3533 //
23.2.3.2 Set.prototype.clear ()
3535 Set.prototype, 'clear',
3537 var s = strict(this);
3538 if (Type(s) !== 'object') throw TypeError();
3539 if (!('[[SetData]]' in s)) throw TypeError();
3540 if (s['[[SetData]]'] === undefined) throw TypeError();
3541 var entries = s['[[SetData]]'];
3546 //
23.2.3.3 Set.prototype.constructor
3547 //
23.2.3.4 Set.prototype.delete ( value )
3549 Set.prototype, 'delete',
3550 function delete_(value) {
3551 var s = strict(this);
3552 if (Type(s) !== 'object') throw TypeError();
3553 if (!('[[SetData]]' in s)) throw TypeError();
3554 if (s['[[SetData]]'] === undefined) throw TypeError();
3555 var entries = s['[[SetData]]'];
3556 var i = SetDataIndexOf(entries, value);
3557 if (i <
0) return false;
3562 //
23.2.3.5 Set.prototype.entries ( )
3564 Set.prototype, 'entries',
3565 function entries() {
3566 var s = strict(this);
3567 if (Type(s) !== 'object') throw TypeError();
3568 return CreateSetIterator(s, 'key+value');
3571 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3573 Set.prototype, 'forEach',
3574 function forEach(callbackfn/*, thisArg*/) {
3575 var thisArg = arguments[
1];
3577 var s = strict(this);
3578 if (Type(s) !== 'object') throw TypeError();
3579 if (!('[[SetData]]' in s)) throw TypeError();
3580 if (s['[[SetData]]'] === undefined) throw TypeError();
3581 var entries = s['[[SetData]]'];
3583 if (!IsCallable(callbackfn)) {
3584 throw TypeError('First argument to forEach is not callable.');
3586 for (var i =
0; i < entries.length; ++i) {
3587 if (entries[i] !== empty) {
3588 callbackfn.call(thisArg, entries[i], entries[i], s);
3593 //
23.2.3.7 Set.prototype.has ( value )
3595 Set.prototype, 'has',
3597 var s = strict(this);
3598 if (Type(s) !== 'object') throw TypeError();
3599 if (!('[[SetData]]' in s)) throw TypeError();
3600 if (s['[[SetData]]'] === undefined) throw TypeError();
3601 var entries = s['[[SetData]]'];
3602 return SetDataIndexOf(entries, key) !== -
1;
3605 //
23.2.3.8 Set.prototype.keys ( )
3606 // See Set.prototype.values
3608 //
23.2.3.9 get Set.prototype.size
3609 Object.defineProperty(
3610 Set.prototype, 'size', {
3612 var s = strict(this);
3613 if (Type(s) !== 'object') throw TypeError();
3614 if (!('[[SetData]]' in s)) throw TypeError();
3615 if (s['[[SetData]]'] === undefined) throw TypeError();
3616 var entries = s['[[SetData]]'];
3618 for (var i =
0; i < entries.length; ++i) {
3619 if (entries[i] !== empty)
3626 //
23.2.3.10 Set.prototype.values ( )
3628 Set.prototype, 'values',
3630 var s = strict(this);
3631 if (Type(s) !== 'object') throw TypeError();
3632 return CreateSetIterator(s, 'value');
3634 // NOTE: function name is still 'values':
3635 Set.prototype.keys = Set.prototype.values;
3637 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3639 Set.prototype, $$iterator,
3641 var s = strict(this);
3642 if (Type(s) !== 'object') throw TypeError();
3643 return CreateSetIterator(s);
3646 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3647 define(global.Set.prototype, $$toStringTag, 'Set');
3649 //
23.2.4 Properties of Set Instances
3650 //
23.2.5 Set Iterator Objects
3652 function SetIterator() {}
3654 //
23.2.5.1 CreateSetIterator Abstract Operation
3655 function CreateSetIterator(set, kind) {
3656 if (Type(set) !== 'object') throw TypeError();
3657 if (!('[[SetData]]' in set)) throw TypeError();
3658 if (set['[[SetData]]'] === undefined) throw TypeError();
3659 var iterator = new SetIterator;
3660 set_internal(iterator, '[[IteratedSet]]', set);
3661 set_internal(iterator, '[[SetNextIndex]]',
0);
3662 set_internal(iterator, '[[SetIterationKind]]', kind);
3666 //
23.2.5.2 The %SetIteratorPrototype% Object
3667 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3668 SetIterator.prototype = $SetIteratorPrototype$;
3670 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3672 $SetIteratorPrototype$, 'next',
3674 var o = strict(this);
3675 if (Type(o) !== 'object') throw TypeError();
3676 var s = o['[[IteratedSet]]'],
3677 index = o['[[SetNextIndex]]'],
3678 itemKind = o['[[SetIterationKind]]'],
3679 entries = s['[[SetData]]'];
3680 while (index < entries.length) {
3681 var e = entries[index];
3683 set_internal(o, '[[SetNextIndex]]', index);
3685 if (itemKind === 'key+value')
3686 return CreateIterResultObject([e, e], false);
3687 return CreateIterResultObject(e, false);
3690 return CreateIterResultObject(undefined, true);
3693 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3694 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3696 //
23.2.5.3 Properties of Set Iterator Instances
3700 // ---------------------------------------
3701 //
23.3 WeakMap Objects
3702 // ---------------------------------------
3705 //
23.3.1 The WeakMap Constructor
3706 //
23.3.1.1 WeakMap ( [ iterable ] )
3708 function WeakMap(/*iterable*/) {
3709 var map = strict(this);
3710 var iterable = arguments[
0];
3712 if (Type(map) !== 'object') throw TypeError();
3713 if ('[[WeakMapData]]' in map) throw TypeError();
3715 if (iterable !== undefined) {
3716 var adder = map['set'];
3717 if (!IsCallable(adder)) throw TypeError();
3718 var iter = GetIterator(ToObject(iterable));
3720 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3721 if (iter === undefined) return map;
3723 var next = IteratorStep(iter);
3726 var nextValue = IteratorValue(next);
3727 if (Type(nextValue) !== 'object') throw TypeError();
3728 var k = nextValue[
0];
3729 var v = nextValue[
1];
3730 adder.call(map, k, v);
3736 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3737 global.WeakMap = WeakMap;
3739 //
23.3.2 Properties of the WeakMap Constructor
3740 //
23.3.2.1 WeakMap.prototype
3741 var $WeakMapPrototype$ = {};
3742 WeakMap.prototype = $WeakMapPrototype$;
3746 //
23.3.2.2 WeakMap[ @@create ] ( )
3747 //
23.3.3 Properties of the WeakMap Prototype Object
3749 //
23.3.3.1 WeakMap.prototype.constructor
3751 //
23.3.3.2 WeakMap.prototype.delete ( key )
3753 WeakMap.prototype, 'delete',
3754 function delete_(key) {
3755 var M = strict(this);
3756 if (Type(M) !== 'object') throw TypeError();
3757 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3758 if (Type(key) !== 'object') throw TypeError('Expected object');
3759 return M['[[WeakMapData]]'].remove(key);
3762 //
23.3.3.3 WeakMap.prototype.get ( key )
3764 WeakMap.prototype, 'get',
3765 function get(key, defaultValue) {
3766 var M = strict(this);
3767 if (Type(M) !== 'object') throw TypeError();
3768 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3769 if (Type(key) !== 'object') throw TypeError('Expected object');
3770 return M['[[WeakMapData]]'].get(key, defaultValue);
3773 //
23.3.3.4 WeakMap.prototype.has ( key )
3775 WeakMap.prototype, 'has',
3777 var M = strict(this);
3778 if (Type(M) !== 'object') throw TypeError();
3779 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3780 if (Type(key) !== 'object') throw TypeError('Expected object');
3781 return M['[[WeakMapData]]'].has(key);
3784 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3786 WeakMap.prototype, 'set',
3787 function set(key, value) {
3788 var M = strict(this);
3789 if (Type(M) !== 'object') throw TypeError();
3790 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3791 if (Type(key) !== 'object') throw TypeError('Expected object');
3792 M['[[WeakMapData]]'].set(key, value);
3796 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3797 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3799 //
23.3.4 Properties of WeakMap Instances
3801 // Polyfills for incomplete native implementations:
3803 var wm = new global.WeakMap();
3804 var orig = global.WeakMap.prototype.set;
3805 define(global.WeakMap.prototype, 'set', function set() {
3806 orig.apply(this, arguments);
3808 }, wm.set({},
0) !== wm);
3812 // ---------------------------------------
3813 //
23.4 WeakSet Objects
3814 // ---------------------------------------
3817 //
23.4.1 The WeakSet Constructor
3818 //
23.4.1.1 WeakSet ( [ iterable ] )
3820 function WeakSet(/*iterable*/) {
3821 var set = strict(this);
3822 var iterable = arguments[
0];
3824 if (Type(set) !== 'object') throw TypeError();
3825 if ('[[WeakSetData]]' in set) throw TypeError();
3827 if (iterable !== undefined) {
3828 var adder = set['add'];
3829 if (!IsCallable(adder)) throw TypeError();
3830 var iter = GetIterator(ToObject(iterable));
3832 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3833 if (iter === undefined) return set;
3835 var next = IteratorStep(iter);
3838 var nextValue = IteratorValue(next);
3839 adder.call(set, nextValue);
3845 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3846 global.WeakSet = WeakSet;
3848 //
23.4.2 Properties of the WeakSet Constructor
3849 //
23.4.2.1 WeakSet.prototype
3850 var $WeakSetPrototype$ = {};
3851 WeakSet.prototype = $WeakSetPrototype$;
3853 //
23.4.3 Properties of the WeakSet Prototype Object
3854 //
23.4.3.1 WeakSet.prototype.add (value )
3856 WeakSet.prototype, 'add',
3857 function add(value) {
3858 var S = strict(this);
3859 if (Type(S) !== 'object') throw TypeError();
3860 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3861 if (Type(value) !== 'object') throw TypeError('Expected object');
3862 S['[[WeakSetData]]'].set(value, true);
3866 //
23.4.3.2 WeakSet.prototype.constructor
3867 //
23.4.3.3 WeakSet.prototype.delete ( value )
3869 WeakSet.prototype, 'delete',
3870 function delete_(value) {
3871 var S = strict(this);
3872 if (Type(S) !== 'object') throw TypeError();
3873 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3874 if (Type(value) !== 'object') throw TypeError('Expected object');
3875 return S['[[WeakSetData]]'].remove(value);
3878 //
23.4.3.4 WeakSet.prototype.has ( value )
3880 WeakSet.prototype, 'has',
3882 var S = strict(this);
3883 if (Type(S) !== 'object') throw TypeError();
3884 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3885 if (Type(key) !== 'object') throw TypeError('Expected object');
3886 return S['[[WeakSetData]]'].has(key);
3889 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3890 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3892 //
23.4.4 Properties of WeakSet Instances
3894 // Polyfills for incomplete native implementations:
3896 var ws = new global.WeakSet();
3897 var orig = global.WeakSet.prototype.add;
3898 define(global.WeakSet.prototype, 'add', function add() {
3899 orig.apply(this, arguments);
3901 }, ws.add({}) !== ws);
3905 // ---------------------------------------
3906 //
24 Structured Data
3907 // ---------------------------------------
3909 // ---------------------------------------
3910 //
24.1 ArrayBuffer Objects
3911 // ---------------------------------------
3913 // See typedarray.js for TypedArray polyfill
3916 if (!('ArrayBuffer' in global))
3919 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3920 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3921 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3922 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3923 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3924 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3925 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3926 //
24.1.2 The ArrayBuffer Constructor
3927 //
24.1.2.1 ArrayBuffer( length )
3928 //
24.1.3 Properties of the ArrayBuffer Constructor
3930 //
24.1.3.1 ArrayBuffer.isView ( arg )
3932 ArrayBuffer, 'isView',
3933 function isView(arg) {
3934 if (Type(arg) !== 'object') return false;
3935 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3939 //
24.1.3.2 ArrayBuffer.prototype
3940 //
24.1.3.3 get ArrayBuffer [ @@species ]
3941 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3942 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3943 //
24.1.4.2 ArrayBuffer.prototype.constructor
3944 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3946 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3947 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3949 //
24.1.5 Properties of the ArrayBuffer Instances
3952 // ---------------------------------------
3953 //
24.2 DataView Objects
3954 // ---------------------------------------
3956 // See typedarray.js for TypedArray polyfill
3959 if (!('DataView' in global))
3962 //
24.2.1 Abstract Operations For DataView Objects
3963 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3964 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3965 //
24.2.2 The DataView Constructor
3966 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3967 //
24.2.3 Properties of the DataView Constructor
3968 //
24.2.3.1 DataView.prototype
3969 //
24.2.4 Properties of the DataView Prototype Object
3970 //
24.2.4.1 get DataView.prototype.buffer
3971 //
24.2.4.2 get DataView.prototype.byteLength
3972 //
24.2.4.3 get DataView.prototype.byteOffset
3973 //
24.2.4.4 DataView.prototype.constructor
3974 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3975 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3976 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3977 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3978 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3979 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3980 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3981 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3982 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3983 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3984 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3985 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3986 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3987 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3988 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3989 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3991 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3992 define(DataView.prototype, $$toStringTag, 'DataView');
3994 //
24.2.5 Properties of DataView Instances
3997 // ---------------------------------------
3998 //
24.3 The JSON Object
3999 // ---------------------------------------
4001 //
24.3.1 JSON.parse ( text [ , reviver ] )
4002 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
4003 //
24.3.3 JSON [ @@toStringTag ]
4004 define(JSON, $$toStringTag, 'JSON');
4006 // ---------------------------------------
4008 // ---------------------------------------
4010 //
25.1.1 Common Iteration Interfaces
4011 //
25.1.1.1 The Iterable Interface
4012 //
25.1.1.2 The Iterator Interface
4013 //
25.1.1.3 The IteratorResult Interface
4015 //
25.1.2 The %IteratorPrototype% Object
4016 // Defined earlier, so other prototypes can reference it.
4017 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
4018 define($IteratorPrototype$, $$iterator, function() {
4023 // ---------------------------------------
4024 //
25.4 Promise Objects
4025 // ---------------------------------------
4028 //
25.4 Promise Objects
4030 //
25.4.1 Promise Abstract Operations
4032 //
25.4.1.1 PromiseCapability Records
4033 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
4035 function IfAbruptRejectPromise(value, capability) {
4036 var rejectResult = capability['[[Reject]]'].call(undefined, value);
4037 return capability['[[Promise]]'];
4040 //
25.4.1.2 PromiseReaction Records
4042 //
25.4.1.3 CreateResolvingFunctions ( promise )
4044 function CreateResolvingFunctions(promise) {
4045 var alreadyResolved = {'[[value]]': false};
4046 var resolve = PromiseResolveFunction();
4047 set_internal(resolve, '[[Promise]]', promise);
4048 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
4049 var reject = PromiseRejectFunction();
4050 set_internal(reject, '[[Promise]]', promise);
4051 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
4052 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
4055 //
25.4.1.3.1 Promise Reject Functions
4057 function PromiseRejectFunction() {
4058 var F = function(reason) {
4059 console.assert(Type(F['[[Promise]]']) === 'object');
4060 var promise = F['[[Promise]]'];
4061 var alreadyResolved = F['[[AlreadyResolved]]'];
4062 if (alreadyResolved['[[value]]']) return undefined;
4063 set_internal(alreadyResolved, '[[value]]', true);
4064 return RejectPromise(promise, reason);
4069 //
25.4.1.3.2 Promise Resolve Functions
4071 function PromiseResolveFunction() {
4072 var F = function(resolution) {
4073 console.assert(Type(F['[[Promise]]']) === 'object');
4074 var promise = F['[[Promise]]'];
4075 var alreadyResolved = F['[[AlreadyResolved]]'];
4076 if (alreadyResolved['[[value]]']) return undefined;
4077 set_internal(alreadyResolved, '[[value]]', true);
4079 if (SameValue(resolution, promise)) {
4080 var selfResolutionError = TypeError();
4081 return RejectPromise(promise, selfResolutionError);
4083 if (Type(resolution) !== 'object')
4084 return FulfillPromise(promise, resolution);
4086 var then = resolution['then'];
4088 return RejectPromise(promise, then);
4090 if (!IsCallable(then))
4091 return FulfillPromise(promise, resolution);
4092 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
4098 //
25.4.1.4 FulfillPromise ( promise, value )
4100 function FulfillPromise(promise, value) {
4101 console.assert(promise['[[PromiseState]]'] === 'pending');
4102 var reactions = promise['[[PromiseFulfillReactions]]'];
4103 set_internal(promise, '[[PromiseResult]]', value);
4104 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4105 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4106 set_internal(promise, '[[PromiseState]]', 'fulfilled');
4107 return TriggerPromiseReactions(reactions, value);
4110 //
25.4.1.5 NewPromiseCapability ( C )
4112 function NewPromiseCapability(c) {
4113 // To keep Promise hermetic, this doesn't look much like the spec.
4114 return CreatePromiseCapabilityRecord(undefined, c);
4117 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
4119 function CreatePromiseCapabilityRecord(promise, constructor) {
4120 // To keep Promise hermetic, this doesn't look much like the spec.
4121 console.assert(IsConstructor(constructor));
4122 var promiseCapability = {};
4123 set_internal(promiseCapability, '[[Promise]]', promise);
4124 set_internal(promiseCapability, '[[Resolve]]', undefined);
4125 set_internal(promiseCapability, '[[Reject]]', undefined);
4126 var executor = GetCapabilitiesExecutor();
4127 set_internal(executor, '[[Capability]]', promiseCapability);
4129 // NOTE: Differs from spec; object is constructed here
4130 var constructorResult = promise = new constructor(executor);
4131 set_internal(promiseCapability, '[[Promise]]', promise);
4133 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
4134 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
4135 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
4136 return promiseCapability;
4139 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
4141 function GetCapabilitiesExecutor() {
4142 var F = function(resolve, reject) {
4143 console.assert(F['[[Capability]]']);
4144 var promiseCapability = F['[[Capability]]'];
4145 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4146 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4147 set_internal(promiseCapability, '[[Resolve]]', resolve);
4148 set_internal(promiseCapability, '[[Reject]]', reject);
4154 //
25.4.1.6 IsPromise ( x )
4156 function IsPromise(x) {
4157 if (Type(x) !== 'object') return false;
4158 if (!('[[PromiseState]]' in x)) return false;
4159 if (x['[[PromiseState]]'] === undefined) return false;
4163 //
25.4.1.7 RejectPromise ( promise, reason )
4165 function RejectPromise(promise, reason) {
4166 console.assert(promise['[[PromiseState]]'] === 'pending');
4167 var reactions = promise['[[PromiseRejectReactions]]'];
4168 set_internal(promise, '[[PromiseResult]]', reason);
4169 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4170 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4171 set_internal(promise, '[[PromiseState]]', 'rejected');
4172 return TriggerPromiseReactions(reactions, reason);
4175 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4177 function TriggerPromiseReactions(reactions, argument) {
4178 for (var i =
0, len = reactions.length; i < len; ++i)
4179 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4183 //
25.4.2 Promise Jobs
4185 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4187 function PromiseReactionJob(reaction, argument) {
4188 var promiseCapability = reaction['[[Capabilities]]'];
4189 var handler = reaction['[[Handler]]'];
4190 var handlerResult, status;
4192 if (handler === 'Identity') handlerResult = argument;
4193 else if (handler === 'Thrower') throw argument;
4194 else handlerResult = handler.call(undefined, argument);
4195 } catch (handlerResult) {
4196 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4197 NextJob(status); return;
4199 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4203 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4205 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4206 // SPEC BUG: promise vs. promiseToResolve
4207 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4209 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4210 resolvingFunctions['[[Reject]]']);
4211 } catch (thenCallResult) {
4212 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4213 NextJob(status); return;
4215 NextJob(thenCallResult);
4218 //
25.4.3 The Promise Constructor
4220 //
25.4.3.1 Promise ( executor )
4222 function Promise(executor) {
4223 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4224 Object.defineProperty(this, '[[PromiseState]]', config);
4225 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4226 Object.defineProperty(this, '[[PromiseResult]]', config);
4227 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4228 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4231 if (Type(promise) !== 'object') throw new TypeError();
4232 if (!('[[PromiseState]]' in promise)) throw TypeError();
4233 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4234 if (!IsCallable(executor)) throw TypeError();
4236 set_internal(promise, '[[PromiseConstructor]]', Promise);
4238 return InitializePromise(promise, executor);
4241 //
25.4.3.1.1 InitializePromise ( promise, executor )
4243 function InitializePromise(promise, executor) {
4244 console.assert('[[PromiseState]]' in promise);
4245 console.assert(IsCallable(executor));
4246 set_internal(promise, '[[PromiseState]]', 'pending');
4247 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4248 set_internal(promise, '[[PromiseRejectReactions]]', []);
4249 var resolvingFunctions = CreateResolvingFunctions(promise);
4251 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4252 resolvingFunctions['[[Reject]]']);
4253 } catch (completion) {
4254 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4259 //
25.4.4 Properties of the Promise Constructor
4260 //
25.4.4.1 Promise.all ( iterable )
4262 define(Promise, 'all', function all(iterable) {
4263 var c = strict(this);
4264 var promiseCapability = NewPromiseCapability(c);
4266 var iterator = GetIterator(iterable);
4268 promiseCapability['[[Reject]]'].call(undefined, value);
4269 return promiseCapability['[[Promise]]'];
4272 var remainingElementsCount = { value:
1 };
4276 var next = IteratorStep(iterator);
4278 promiseCapability['[[Reject]]'].call(undefined, value);
4279 return promiseCapability['[[Promise]]'];
4282 remainingElementsCount.value -=
1;
4283 if (remainingElementsCount.value ===
0) {
4284 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4288 return promiseCapability['[[Promise]]'];
4291 var nextValue = IteratorValue(next);
4293 promiseCapability['[[Reject]]'].call(undefined, value);
4294 return promiseCapability['[[Promise]]'];
4297 var nextPromise = c.resolve(nextValue);
4299 promiseCapability['[[Reject]]'].call(undefined, value);
4300 return promiseCapability['[[Promise]]'];
4302 var resolveElement = PromiseAllResolveElementFunction();
4303 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4304 set_internal(resolveElement, '[[Index]]', index);
4305 set_internal(resolveElement, '[[Values]]', values);
4306 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4307 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4308 remainingElementsCount.value +=
1;
4310 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4312 promiseCapability['[[Reject]]'].call(undefined, value);
4313 return promiseCapability['[[Promise]]'];
4319 //
25.4.4.1.1 Promise.all Resolve Element Functions
4321 function PromiseAllResolveElementFunction() {
4322 var F = function(x) {
4323 var alreadyCalled = F['[[AlreadyCalled]]'];
4324 if (alreadyCalled.value) return undefined;
4325 alreadyCalled.value = true;
4326 var index = F['[[Index]]'];
4327 var values = F['[[Values]]'];
4328 var promiseCapability = F['[[Capabilities]]'];
4329 var remainingElementsCount = F['[[RemainingElements]]'];
4333 promiseCapability['[[Reject]]'].call(undefined, result);
4334 return promiseCapability['[[Promise]]'];
4336 remainingElementsCount.value -=
1;
4337 if (remainingElementsCount.value ===
0)
4338 return promiseCapability['[[Resolve]]'].call(undefined, values);
4344 //
25.4.4.2 Promise.prototype
4346 Promise.prototype = {};
4348 //
25.4.4.3 Promise.race ( iterable )
4350 define(Promise, 'race', function race(iterable) {
4351 var c = strict(this);
4352 var promiseCapability = NewPromiseCapability(c);
4354 var iterator = GetIterator(iterable);
4356 promiseCapability['[[Reject]]'].call(undefined, value);
4357 return promiseCapability['[[Promise]]'];
4361 var next = IteratorStep(iterator);
4363 promiseCapability['[[Reject]]'].call(undefined, value);
4364 return promiseCapability['[[Promise]]'];
4366 if (!next) return promiseCapability['[[Promise]]'];
4368 var nextValue = IteratorValue(next);
4370 promiseCapability['[[Reject]]'].call(undefined, value);
4371 return promiseCapability['[[Promise]]'];
4374 var nextPromise = c.resolve(nextValue);
4376 promiseCapability['[[Reject]]'].call(undefined, value);
4377 return promiseCapability['[[Promise]]'];
4380 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4382 promiseCapability['[[Reject]]'].call(undefined, value);
4383 return promiseCapability['[[Promise]]'];
4388 //
25.4.4.4 Promise.reject ( r )
4390 define(Promise, 'reject', function reject(r) {
4391 var c = strict(this);
4392 var promiseCapability = NewPromiseCapability(c);
4393 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4394 return promiseCapability['[[Promise]]'];
4397 //
25.4.4.5 Promise.resolve ( x )
4399 define(Promise, 'resolve', function resolve(x) {
4400 var c = strict(this);
4402 var constructor = x['[[PromiseConstructor]]'];
4403 if (SameValue(constructor, c)) return x;
4405 var promiseCapability = NewPromiseCapability(c);
4406 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4407 return promiseCapability['[[Promise]]'];
4410 //
25.4.4.6 Promise [ @@create ] ( )
4411 //
25.4.4.6.1 AllocatePromise ( constructor )
4412 //
25.4.5 Properties of the Promise Prototype Object
4413 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4415 define(Promise.prototype, 'catch', function catch_(onRejected) {
4417 return promise.then(undefined, onRejected);
4420 //
25.4.5.2 Promise.prototype.constructor
4422 Promise.prototype.constructor = Promise;
4424 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4426 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4428 if (!IsPromise(promise)) throw TypeError();
4429 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4430 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4431 var c = promise.constructor;
4432 var promiseCapability = NewPromiseCapability(c);
4433 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4434 '[[Handler]]': onFulfilled };
4435 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4436 '[[Handler]]': onRejected };
4437 if (promise['[[PromiseState]]'] === 'pending') {
4438 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4439 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4440 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4441 var value = promise['[[PromiseResult]]'];
4442 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4443 } else if (promise['[[PromiseState]]'] === 'rejected') {
4444 var reason = promise['[[PromiseResult]]'];
4445 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4447 return promiseCapability['[[Promise]]'];
4450 //
25.4.6 Properties of Promise Instances
4452 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4453 global.Promise = Promise;
4455 // Patch early Promise.cast vs. Promise.resolve implementations
4456 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4459 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4460 define(Promise.prototype, $$toStringTag, 'Promise');
4462 // ---------------------------------------
4464 // ---------------------------------------
4467 //
26.1 The Reflect Object
4468 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4469 global.Reflect = {};
4471 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4474 function apply(target, thisArgument, argumentsList) {
4475 if (!IsCallable(target)) throw TypeError();
4476 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4479 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4481 Reflect, 'construct',
4482 function construct(target, argumentsList) {
4483 return __cons(target, argumentsList);
4486 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4488 Reflect, 'defineProperty',
4489 function defineProperty(target, propertyKey, attributes) {
4491 Object.defineProperty(target, propertyKey, attributes);
4498 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4500 Reflect, 'deleteProperty',
4501 function deleteProperty(target,name) {
4503 delete target[name];
4504 return !HasOwnProperty(target, name);
4510 //
26.1.5 Reflect.enumerate ( target )
4512 Reflect, 'enumerate',
4513 function enumerate(target) {
4514 target = ToObject(target);
4515 var iterator = Enumerate(target);
4519 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4522 function get(target, name, receiver) {
4523 target = ToObject(target);
4524 name = String(name);
4525 receiver = (receiver === undefined) ? target : ToObject(receiver);
4526 var desc = getPropertyDescriptor(target, name);
4527 if (desc && 'get' in desc)
4528 return Function.prototype.call.call(desc['get'], receiver);
4529 return target[name];
4532 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4534 Reflect, 'getOwnPropertyDescriptor',
4535 Object.getOwnPropertyDescriptor);
4537 //
26.1.8 Reflect.getPrototypeOf ( target )
4539 Reflect, 'getPrototypeOf',
4540 Object.getPrototypeOf);
4542 //
26.1.9 Reflect.has ( target, propertyKey )
4545 function has(target,name) {
4546 return String(name) in ToObject(target);
4549 //
26.1.10 Reflect.isExtensible (target)
4551 Reflect, 'isExtensible',
4552 Object.isExtensible);
4554 //
26.1.11 Reflect.ownKeys ( target )
4557 function ownKeys(target) {
4558 var obj = ToObject(target);
4559 return Object.getOwnPropertyNames(obj);
4562 //
26.1.12 Reflect.preventExtensions ( target )
4564 Reflect, 'preventExtensions',
4565 function preventExtensions(target) {
4566 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4569 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4572 function set(target, name, value, receiver) {
4573 target = ToObject(target);
4574 name = String(name);
4575 receiver = (receiver === undefined) ? target : ToObject(receiver);
4576 var desc = getPropertyDescriptor(target, name);
4578 if (desc && 'set' in desc)
4579 Function.prototype.call.call(desc['set'], receiver, value);
4581 target[name] = value;
4588 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4590 Reflect, 'setPrototypeOf',
4591 function setPrototypeOf(target, proto) {
4593 target.__proto__ = proto;
4594 return Reflect.getPrototypeOf(target) === proto;
4602 // ---------------------------------------
4603 //
26.2 Proxy Objects
4604 // ---------------------------------------
4606 // Not polyfillable.
4610 // This helper is defined outside the main scope so that the use of
4611 // 'eval' does not taint the scope for minifiers.
4612 function __cons(t, a) {
4613 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4616 <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){
4619 exports.byteLength = byteLength
4620 exports.toByteArray = toByteArray
4621 exports.fromByteArray = fromByteArray
4625 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4627 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4628 for (var i =
0, len = code.length; i < len; ++i) {
4630 revLookup[code.charCodeAt(i)] = i
4633 revLookup['-'.charCodeAt(
0)] =
62
4634 revLookup['_'.charCodeAt(
0)] =
63
4636 function placeHoldersCount (b64) {
4637 var len = b64.length
4639 throw new Error('Invalid string. Length must be a multiple of
4')
4642 // the number of equal signs (place holders)
4643 // if there are two placeholders, than the two characters before it
4644 // represent one byte
4645 // if there is only one, then the three characters before it represent
2 bytes
4646 // this is just a cheap hack to not do indexOf twice
4647 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4650 function byteLength (b64) {
4651 // base64 is
4/
3 + up to two characters of the original data
4652 return b64.length *
3 /
4 - placeHoldersCount(b64)
4655 function toByteArray (b64) {
4656 var i, j, l, tmp, placeHolders, arr
4657 var len = b64.length
4658 placeHolders = placeHoldersCount(b64)
4660 arr = new Arr(len *
3 /
4 - placeHolders)
4662 // if there are placeholders, only get up to the last complete
4 chars
4663 l = placeHolders
> 0 ? len -
4 : len
4667 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4668 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4669 arr[L++] = (tmp
>> 16) &
0xFF
4670 arr[L++] = (tmp
>> 8) &
0xFF
4671 arr[L++] = tmp &
0xFF
4674 if (placeHolders ===
2) {
4675 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4676 arr[L++] = tmp &
0xFF
4677 } else if (placeHolders ===
1) {
4678 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4679 arr[L++] = (tmp
>> 8) &
0xFF
4680 arr[L++] = tmp &
0xFF
4686 function tripletToBase64 (num) {
4687 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4690 function encodeChunk (uint8, start, end) {
4693 for (var i = start; i < end; i +=
3) {
4694 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4695 output.push(tripletToBase64(tmp))
4697 return output.join('')
4700 function fromByteArray (uint8) {
4702 var len = uint8.length
4703 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4706 var maxChunkLength =
16383 // must be multiple of
3
4708 // go through the array every three bytes, we'll deal with trailing stuff later
4709 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4710 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4713 // pad the end with zeros, but make sure to not forget the extra bytes
4714 if (extraBytes ===
1) {
4715 tmp = uint8[len -
1]
4716 output += lookup[tmp
>> 2]
4717 output += lookup[(tmp <<
4) &
0x3F]
4719 } else if (extraBytes ===
2) {
4720 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4721 output += lookup[tmp
>> 10]
4722 output += lookup[(tmp
>> 4) &
0x3F]
4723 output += lookup[(tmp <<
2) &
0x3F]
4729 return parts.join('')
4732 },{}],
2:[function(require,module,exports){
4734 * The buffer module from node.js, for the browser.
4736 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4739 /* eslint-disable no-proto */
4743 var base64 = require('base64-js')
4744 var ieee754 = require('ieee754')
4746 exports.Buffer = Buffer
4747 exports.SlowBuffer = SlowBuffer
4748 exports.INSPECT_MAX_BYTES =
50
4750 var K_MAX_LENGTH =
0x7fffffff
4751 exports.kMaxLength = K_MAX_LENGTH
4754 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4755 * === true Use Uint8Array implementation (fastest)
4756 * === false Print warning and recommend using `buffer` v4.x which has an Object
4757 * implementation (most compatible, even IE6)
4759 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4760 * Opera
11.6+, iOS
4.2+.
4762 * We report that the browser does not support typed arrays if the are not subclassable
4763 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4764 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4765 * for __proto__ and has a buggy typed array implementation.
4767 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4769 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4770 typeof console.error === 'function') {
4772 'This browser lacks typed array (Uint8Array) support which is required by ' +
4773 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4777 function typedArraySupport () {
4778 // Can typed array instances can be augmented?
4780 var arr = new Uint8Array(
1)
4781 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4782 return arr.foo() ===
42
4788 function createBuffer (length) {
4789 if (length
> K_MAX_LENGTH) {
4790 throw new RangeError('Invalid typed array length')
4792 // Return an augmented `Uint8Array` instance
4793 var buf = new Uint8Array(length)
4794 buf.__proto__ = Buffer.prototype
4799 * The Buffer constructor returns instances of `Uint8Array` that have their
4800 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4801 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4802 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4803 * returns a single octet.
4805 * The `Uint8Array` prototype remains unmodified.
4808 function Buffer (arg, encodingOrOffset, length) {
4810 if (typeof arg === 'number') {
4811 if (typeof encodingOrOffset === 'string') {
4813 'If encoding is specified then the first argument must be a string'
4816 return allocUnsafe(arg)
4818 return from(arg, encodingOrOffset, length)
4821 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4822 if (typeof Symbol !== 'undefined' && Symbol.species &&
4823 Buffer[Symbol.species] === Buffer) {
4824 Object.defineProperty(Buffer, Symbol.species, {
4832 Buffer.poolSize =
8192 // not used by this implementation
4834 function from (value, encodingOrOffset, length) {
4835 if (typeof value === 'number') {
4836 throw new TypeError('"value" argument must not be a number')
4839 if (value instanceof ArrayBuffer) {
4840 return fromArrayBuffer(value, encodingOrOffset, length)
4843 if (typeof value === 'string') {
4844 return fromString(value, encodingOrOffset)
4847 return fromObject(value)
4851 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4852 * if value is a number.
4853 * Buffer.from(str[, encoding])
4854 * Buffer.from(array)
4855 * Buffer.from(buffer)
4856 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4858 Buffer.from = function (value, encodingOrOffset, length) {
4859 return from(value, encodingOrOffset, length)
4862 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4863 // https://github.com/feross/buffer/pull/
148
4864 Buffer.prototype.__proto__ = Uint8Array.prototype
4865 Buffer.__proto__ = Uint8Array
4867 function assertSize (size) {
4868 if (typeof size !== 'number') {
4869 throw new TypeError('"size" argument must be a number')
4870 } else if (size <
0) {
4871 throw new RangeError('"size" argument must not be negative')
4875 function alloc (size, fill, encoding) {
4878 return createBuffer(size)
4880 if (fill !== undefined) {
4881 // Only pay attention to encoding if it's a string. This
4882 // prevents accidentally sending in a number that would
4883 // be interpretted as a start offset.
4884 return typeof encoding === 'string'
4885 ? createBuffer(size).fill(fill, encoding)
4886 : createBuffer(size).fill(fill)
4888 return createBuffer(size)
4892 * Creates a new filled Buffer instance.
4893 * alloc(size[, fill[, encoding]])
4895 Buffer.alloc = function (size, fill, encoding) {
4896 return alloc(size, fill, encoding)
4899 function allocUnsafe (size) {
4901 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4905 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4907 Buffer.allocUnsafe = function (size) {
4908 return allocUnsafe(size)
4911 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4913 Buffer.allocUnsafeSlow = function (size) {
4914 return allocUnsafe(size)
4917 function fromString (string, encoding) {
4918 if (typeof encoding !== 'string' || encoding === '') {
4922 if (!Buffer.isEncoding(encoding)) {
4923 throw new TypeError('"encoding" must be a valid string encoding')
4926 var length = byteLength(string, encoding) |
0
4927 var buf = createBuffer(length)
4929 var actual = buf.write(string, encoding)
4931 if (actual !== length) {
4932 // Writing a hex string, for example, that contains invalid characters will
4933 // cause everything after the first invalid character to be ignored. (e.g.
4934 // 'abxxcd' will be treated as 'ab')
4935 buf = buf.slice(
0, actual)
4941 function fromArrayLike (array) {
4942 var length = array.length <
0 ?
0 : checked(array.length) |
0
4943 var buf = createBuffer(length)
4944 for (var i =
0; i < length; i +=
1) {
4945 buf[i] = array[i] &
255
4950 function fromArrayBuffer (array, byteOffset, length) {
4951 if (byteOffset <
0 || array.byteLength < byteOffset) {
4952 throw new RangeError('\'offset\' is out of bounds')
4955 if (array.byteLength < byteOffset + (length ||
0)) {
4956 throw new RangeError('\'length\' is out of bounds')
4960 if (byteOffset === undefined && length === undefined) {
4961 buf = new Uint8Array(array)
4962 } else if (length === undefined) {
4963 buf = new Uint8Array(array, byteOffset)
4965 buf = new Uint8Array(array, byteOffset, length)
4968 // Return an augmented `Uint8Array` instance
4969 buf.__proto__ = Buffer.prototype
4973 function fromObject (obj) {
4974 if (Buffer.isBuffer(obj)) {
4975 var len = checked(obj.length) |
0
4976 var buf = createBuffer(len)
4978 if (buf.length ===
0) {
4982 obj.copy(buf,
0,
0, len)
4987 if (isArrayBufferView(obj) || 'length' in obj) {
4988 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4989 return createBuffer(
0)
4991 return fromArrayLike(obj)
4994 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
4995 return fromArrayLike(obj.data)
4999 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
5002 function checked (length) {
5003 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
5004 // length is NaN (which is otherwise coerced to zero.)
5005 if (length
>= K_MAX_LENGTH) {
5006 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
5007 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
5012 function SlowBuffer (length) {
5013 if (+length != length) { // eslint-disable-line eqeqeq
5016 return Buffer.alloc(+length)
5019 Buffer.isBuffer = function isBuffer (b) {
5020 return b != null && b._isBuffer === true
5023 Buffer.compare = function compare (a, b) {
5024 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
5025 throw new TypeError('Arguments must be Buffers')
5028 if (a === b) return
0
5033 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
5034 if (a[i] !== b[i]) {
5041 if (x < y) return -
1
5046 Buffer.isEncoding = function isEncoding (encoding) {
5047 switch (String(encoding).toLowerCase()) {
5065 Buffer.concat = function concat (list, length) {
5066 if (!Array.isArray(list)) {
5067 throw new TypeError('"list" argument must be an Array of Buffers')
5070 if (list.length ===
0) {
5071 return Buffer.alloc(
0)
5075 if (length === undefined) {
5077 for (i =
0; i < list.length; ++i) {
5078 length += list[i].length
5082 var buffer = Buffer.allocUnsafe(length)
5084 for (i =
0; i < list.length; ++i) {
5086 if (!Buffer.isBuffer(buf)) {
5087 throw new TypeError('"list" argument must be an Array of Buffers')
5089 buf.copy(buffer, pos)
5095 function byteLength (string, encoding) {
5096 if (Buffer.isBuffer(string)) {
5097 return string.length
5099 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
5100 return string.byteLength
5102 if (typeof string !== 'string') {
5103 string = '' + string
5106 var len = string.length
5107 if (len ===
0) return
0
5109 // Use a for loop to avoid recursion
5110 var loweredCase = false
5120 return utf8ToBytes(string).length
5129 return base64ToBytes(string).length
5131 if (loweredCase) return utf8ToBytes(string).length // assume utf8
5132 encoding = ('' + encoding).toLowerCase()
5137 Buffer.byteLength = byteLength
5139 function slowToString (encoding, start, end) {
5140 var loweredCase = false
5142 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5143 // property of a typed array.
5145 // This behaves neither like String nor Uint8Array in that we set start/end
5146 // to their upper/lower bounds if the value passed is out of range.
5147 // undefined is handled specially as per ECMA-
262 6th Edition,
5148 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5149 if (start === undefined || start <
0) {
5152 // Return early if start
> this.length. Done here to prevent potential uint32
5153 // coercion fail below.
5154 if (start
> this.length) {
5158 if (end === undefined || end
> this.length) {
5166 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5174 if (!encoding) encoding = 'utf8'
5179 return hexSlice(this, start, end)
5183 return utf8Slice(this, start, end)
5186 return asciiSlice(this, start, end)
5190 return latin1Slice(this, start, end)
5193 return base64Slice(this, start, end)
5199 return utf16leSlice(this, start, end)
5202 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5203 encoding = (encoding + '').toLowerCase()
5209 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5210 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5211 // reliably in a browserify context because there could be multiple different
5212 // copies of the 'buffer' package in use. This method works even for Buffer
5213 // instances that were created from another copy of the `buffer` package.
5214 // See: https://github.com/feross/buffer/issues/
154
5215 Buffer.prototype._isBuffer = true
5217 function swap (b, n, m) {
5223 Buffer.prototype.swap16 = function swap16 () {
5224 var len = this.length
5225 if (len %
2 !==
0) {
5226 throw new RangeError('Buffer size must be a multiple of
16-bits')
5228 for (var i =
0; i < len; i +=
2) {
5229 swap(this, i, i +
1)
5234 Buffer.prototype.swap32 = function swap32 () {
5235 var len = this.length
5236 if (len %
4 !==
0) {
5237 throw new RangeError('Buffer size must be a multiple of
32-bits')
5239 for (var i =
0; i < len; i +=
4) {
5240 swap(this, i, i +
3)
5241 swap(this, i +
1, i +
2)
5246 Buffer.prototype.swap64 = function swap64 () {
5247 var len = this.length
5248 if (len %
8 !==
0) {
5249 throw new RangeError('Buffer size must be a multiple of
64-bits')
5251 for (var i =
0; i < len; i +=
8) {
5252 swap(this, i, i +
7)
5253 swap(this, i +
1, i +
6)
5254 swap(this, i +
2, i +
5)
5255 swap(this, i +
3, i +
4)
5260 Buffer.prototype.toString = function toString () {
5261 var length = this.length
5262 if (length ===
0) return ''
5263 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5264 return slowToString.apply(this, arguments)
5267 Buffer.prototype.equals = function equals (b) {
5268 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5269 if (this === b) return true
5270 return Buffer.compare(this, b) ===
0
5273 Buffer.prototype.inspect = function inspect () {
5275 var max = exports.INSPECT_MAX_BYTES
5276 if (this.length
> 0) {
5277 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5278 if (this.length
> max) str += ' ... '
5280 return '
<Buffer ' + str + '
>'
5283 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5284 if (!Buffer.isBuffer(target)) {
5285 throw new TypeError('Argument must be a Buffer')
5288 if (start === undefined) {
5291 if (end === undefined) {
5292 end = target ? target.length :
0
5294 if (thisStart === undefined) {
5297 if (thisEnd === undefined) {
5298 thisEnd = this.length
5301 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5302 throw new RangeError('out of range index')
5305 if (thisStart
>= thisEnd && start
>= end) {
5308 if (thisStart
>= thisEnd) {
5320 if (this === target) return
0
5322 var x = thisEnd - thisStart
5324 var len = Math.min(x, y)
5326 var thisCopy = this.slice(thisStart, thisEnd)
5327 var targetCopy = target.slice(start, end)
5329 for (var i =
0; i < len; ++i) {
5330 if (thisCopy[i] !== targetCopy[i]) {
5337 if (x < y) return -
1
5342 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5343 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5346 // - buffer - a Buffer to search
5347 // - val - a string, Buffer, or number
5348 // - byteOffset - an index into `buffer`; will be clamped to an int32
5349 // - encoding - an optional encoding, relevant is val is a string
5350 // - dir - true for indexOf, false for lastIndexOf
5351 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5352 // Empty buffer means no match
5353 if (buffer.length ===
0) return -
1
5355 // Normalize byteOffset
5356 if (typeof byteOffset === 'string') {
5357 encoding = byteOffset
5359 } else if (byteOffset
> 0x7fffffff) {
5360 byteOffset =
0x7fffffff
5361 } else if (byteOffset < -
0x80000000) {
5362 byteOffset = -
0x80000000
5364 byteOffset = +byteOffset // Coerce to Number.
5365 if (numberIsNaN(byteOffset)) {
5366 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5367 byteOffset = dir ?
0 : (buffer.length -
1)
5370 // Normalize byteOffset: negative offsets start from the end of the buffer
5371 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5372 if (byteOffset
>= buffer.length) {
5374 else byteOffset = buffer.length -
1
5375 } else if (byteOffset <
0) {
5376 if (dir) byteOffset =
0
5381 if (typeof val === 'string') {
5382 val = Buffer.from(val, encoding)
5385 // Finally, search either indexOf (if dir is true) or lastIndexOf
5386 if (Buffer.isBuffer(val)) {
5387 // Special case: looking for empty string/buffer always fails
5388 if (val.length ===
0) {
5391 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5392 } else if (typeof val === 'number') {
5393 val = val &
0xFF // Search for a byte value [
0-
255]
5394 if (typeof Uint8Array.prototype.indexOf === 'function') {
5396 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5398 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5401 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5404 throw new TypeError('val must be string, number or Buffer')
5407 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5409 var arrLength = arr.length
5410 var valLength = val.length
5412 if (encoding !== undefined) {
5413 encoding = String(encoding).toLowerCase()
5414 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5415 encoding === 'utf16le' || encoding === 'utf-
16le') {
5416 if (arr.length <
2 || val.length <
2) {
5426 function read (buf, i) {
5427 if (indexSize ===
1) {
5430 return buf.readUInt16BE(i * indexSize)
5437 for (i = byteOffset; i < arrLength; i++) {
5438 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5439 if (foundIndex === -
1) foundIndex = i
5440 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5442 if (foundIndex !== -
1) i -= i - foundIndex
5447 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5448 for (i = byteOffset; i
>=
0; i--) {
5450 for (var j =
0; j < valLength; j++) {
5451 if (read(arr, i + j) !== read(val, j)) {
5463 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5464 return this.indexOf(val, byteOffset, encoding) !== -
1
5467 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5468 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5471 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5472 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5475 function hexWrite (buf, string, offset, length) {
5476 offset = Number(offset) ||
0
5477 var remaining = buf.length - offset
5481 length = Number(length)
5482 if (length
> remaining) {
5487 // must be an even number of digits
5488 var strLen = string.length
5489 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5491 if (length
> strLen /
2) {
5494 for (var i =
0; i < length; ++i) {
5495 var parsed = parseInt(string.substr(i *
2,
2),
16)
5496 if (numberIsNaN(parsed)) return i
5497 buf[offset + i] = parsed
5502 function utf8Write (buf, string, offset, length) {
5503 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5506 function asciiWrite (buf, string, offset, length) {
5507 return blitBuffer(asciiToBytes(string), buf, offset, length)
5510 function latin1Write (buf, string, offset, length) {
5511 return asciiWrite(buf, string, offset, length)
5514 function base64Write (buf, string, offset, length) {
5515 return blitBuffer(base64ToBytes(string), buf, offset, length)
5518 function ucs2Write (buf, string, offset, length) {
5519 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5522 Buffer.prototype.write = function write (string, offset, length, encoding) {
5523 // Buffer#write(string)
5524 if (offset === undefined) {
5526 length = this.length
5528 // Buffer#write(string, encoding)
5529 } else if (length === undefined && typeof offset === 'string') {
5531 length = this.length
5533 // Buffer#write(string, offset[, length][, encoding])
5534 } else if (isFinite(offset)) {
5535 offset = offset
>>> 0
5536 if (isFinite(length)) {
5537 length = length
>>> 0
5538 if (encoding === undefined) encoding = 'utf8'
5545 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5549 var remaining = this.length - offset
5550 if (length === undefined || length
> remaining) length = remaining
5552 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5553 throw new RangeError('Attempt to write outside buffer bounds')
5556 if (!encoding) encoding = 'utf8'
5558 var loweredCase = false
5562 return hexWrite(this, string, offset, length)
5566 return utf8Write(this, string, offset, length)
5569 return asciiWrite(this, string, offset, length)
5573 return latin1Write(this, string, offset, length)
5576 // Warning: maxLength not taken into account in base64Write
5577 return base64Write(this, string, offset, length)
5583 return ucs2Write(this, string, offset, length)
5586 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5587 encoding = ('' + encoding).toLowerCase()
5593 Buffer.prototype.toJSON = function toJSON () {
5596 data: Array.prototype.slice.call(this._arr || this,
0)
5600 function base64Slice (buf, start, end) {
5601 if (start ===
0 && end === buf.length) {
5602 return base64.fromByteArray(buf)
5604 return base64.fromByteArray(buf.slice(start, end))
5608 function utf8Slice (buf, start, end) {
5609 end = Math.min(buf.length, end)
5614 var firstByte = buf[i]
5615 var codePoint = null
5616 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5617 : (firstByte
> 0xDF) ?
3
5618 : (firstByte
> 0xBF) ?
2
5621 if (i + bytesPerSequence <= end) {
5622 var secondByte, thirdByte, fourthByte, tempCodePoint
5624 switch (bytesPerSequence) {
5626 if (firstByte <
0x80) {
5627 codePoint = firstByte
5631 secondByte = buf[i +
1]
5632 if ((secondByte &
0xC0) ===
0x80) {
5633 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5634 if (tempCodePoint
> 0x7F) {
5635 codePoint = tempCodePoint
5640 secondByte = buf[i +
1]
5641 thirdByte = buf[i +
2]
5642 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5643 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5644 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5645 codePoint = tempCodePoint
5650 secondByte = buf[i +
1]
5651 thirdByte = buf[i +
2]
5652 fourthByte = buf[i +
3]
5653 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5654 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5655 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5656 codePoint = tempCodePoint
5662 if (codePoint === null) {
5663 // we did not generate a valid codePoint so insert a
5664 // replacement char (U+FFFD) and advance only
1 byte
5666 bytesPerSequence =
1
5667 } else if (codePoint
> 0xFFFF) {
5668 // encode to utf16 (surrogate pair dance)
5669 codePoint -=
0x10000
5670 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5671 codePoint =
0xDC00 | codePoint &
0x3FF
5675 i += bytesPerSequence
5678 return decodeCodePointsArray(res)
5681 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5682 // the lowest limit is Chrome, with
0x10000 args.
5683 // We go
1 magnitude less, for safety
5684 var MAX_ARGUMENTS_LENGTH =
0x1000
5686 function decodeCodePointsArray (codePoints) {
5687 var len = codePoints.length
5688 if (len <= MAX_ARGUMENTS_LENGTH) {
5689 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5692 // Decode in chunks to avoid
"call stack size exceeded".
5696 res += String.fromCharCode.apply(
5698 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5704 function asciiSlice (buf, start, end) {
5706 end = Math.min(buf.length, end)
5708 for (var i = start; i < end; ++i) {
5709 ret += String.fromCharCode(buf[i] &
0x7F)
5714 function latin1Slice (buf, start, end) {
5716 end = Math.min(buf.length, end)
5718 for (var i = start; i < end; ++i) {
5719 ret += String.fromCharCode(buf[i])
5724 function hexSlice (buf, start, end) {
5725 var len = buf.length
5727 if (!start || start <
0) start =
0
5728 if (!end || end <
0 || end
> len) end = len
5731 for (var i = start; i < end; ++i) {
5732 out += toHex(buf[i])
5737 function utf16leSlice (buf, start, end) {
5738 var bytes = buf.slice(start, end)
5740 for (var i =
0; i < bytes.length; i +=
2) {
5741 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5746 Buffer.prototype.slice = function slice (start, end) {
5747 var len = this.length
5749 end = end === undefined ? len : ~~end
5753 if (start <
0) start =
0
5754 } else if (start
> len) {
5760 if (end <
0) end =
0
5761 } else if (end
> len) {
5765 if (end < start) end = start
5767 var newBuf = this.subarray(start, end)
5768 // Return an augmented `Uint8Array` instance
5769 newBuf.__proto__ = Buffer.prototype
5774 * Need to make sure that buffer isn't trying to write out of bounds.
5776 function checkOffset (offset, ext, length) {
5777 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5778 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5781 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5782 offset = offset
>>> 0
5783 byteLength = byteLength
>>> 0
5784 if (!noAssert) checkOffset(offset, byteLength, this.length)
5786 var val = this[offset]
5789 while (++i < byteLength && (mul *=
0x100)) {
5790 val += this[offset + i] * mul
5796 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5797 offset = offset
>>> 0
5798 byteLength = byteLength
>>> 0
5800 checkOffset(offset, byteLength, this.length)
5803 var val = this[offset + --byteLength]
5805 while (byteLength
> 0 && (mul *=
0x100)) {
5806 val += this[offset + --byteLength] * mul
5812 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5813 offset = offset
>>> 0
5814 if (!noAssert) checkOffset(offset,
1, this.length)
5818 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5819 offset = offset
>>> 0
5820 if (!noAssert) checkOffset(offset,
2, this.length)
5821 return this[offset] | (this[offset +
1] <<
8)
5824 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5825 offset = offset
>>> 0
5826 if (!noAssert) checkOffset(offset,
2, this.length)
5827 return (this[offset] <<
8) | this[offset +
1]
5830 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5831 offset = offset
>>> 0
5832 if (!noAssert) checkOffset(offset,
4, this.length)
5834 return ((this[offset]) |
5835 (this[offset +
1] <<
8) |
5836 (this[offset +
2] <<
16)) +
5837 (this[offset +
3] *
0x1000000)
5840 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5841 offset = offset
>>> 0
5842 if (!noAssert) checkOffset(offset,
4, this.length)
5844 return (this[offset] *
0x1000000) +
5845 ((this[offset +
1] <<
16) |
5846 (this[offset +
2] <<
8) |
5850 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5851 offset = offset
>>> 0
5852 byteLength = byteLength
>>> 0
5853 if (!noAssert) checkOffset(offset, byteLength, this.length)
5855 var val = this[offset]
5858 while (++i < byteLength && (mul *=
0x100)) {
5859 val += this[offset + i] * mul
5863 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5868 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5869 offset = offset
>>> 0
5870 byteLength = byteLength
>>> 0
5871 if (!noAssert) checkOffset(offset, byteLength, this.length)
5875 var val = this[offset + --i]
5876 while (i
> 0 && (mul *=
0x100)) {
5877 val += this[offset + --i] * mul
5881 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5886 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5887 offset = offset
>>> 0
5888 if (!noAssert) checkOffset(offset,
1, this.length)
5889 if (!(this[offset] &
0x80)) return (this[offset])
5890 return ((
0xff - this[offset] +
1) * -
1)
5893 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5894 offset = offset
>>> 0
5895 if (!noAssert) checkOffset(offset,
2, this.length)
5896 var val = this[offset] | (this[offset +
1] <<
8)
5897 return (val &
0x8000) ? val |
0xFFFF0000 : val
5900 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5901 offset = offset
>>> 0
5902 if (!noAssert) checkOffset(offset,
2, this.length)
5903 var val = this[offset +
1] | (this[offset] <<
8)
5904 return (val &
0x8000) ? val |
0xFFFF0000 : val
5907 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5908 offset = offset
>>> 0
5909 if (!noAssert) checkOffset(offset,
4, this.length)
5911 return (this[offset]) |
5912 (this[offset +
1] <<
8) |
5913 (this[offset +
2] <<
16) |
5914 (this[offset +
3] <<
24)
5917 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5918 offset = offset
>>> 0
5919 if (!noAssert) checkOffset(offset,
4, this.length)
5921 return (this[offset] <<
24) |
5922 (this[offset +
1] <<
16) |
5923 (this[offset +
2] <<
8) |
5927 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5928 offset = offset
>>> 0
5929 if (!noAssert) checkOffset(offset,
4, this.length)
5930 return ieee754.read(this, offset, true,
23,
4)
5933 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5934 offset = offset
>>> 0
5935 if (!noAssert) checkOffset(offset,
4, this.length)
5936 return ieee754.read(this, offset, false,
23,
4)
5939 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5940 offset = offset
>>> 0
5941 if (!noAssert) checkOffset(offset,
8, this.length)
5942 return ieee754.read(this, offset, true,
52,
8)
5945 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5946 offset = offset
>>> 0
5947 if (!noAssert) checkOffset(offset,
8, this.length)
5948 return ieee754.read(this, offset, false,
52,
8)
5951 function checkInt (buf, value, offset, ext, max, min) {
5952 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5953 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5954 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5957 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5959 offset = offset
>>> 0
5960 byteLength = byteLength
>>> 0
5962 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5963 checkInt(this, value, offset, byteLength, maxBytes,
0)
5968 this[offset] = value &
0xFF
5969 while (++i < byteLength && (mul *=
0x100)) {
5970 this[offset + i] = (value / mul) &
0xFF
5973 return offset + byteLength
5976 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5978 offset = offset
>>> 0
5979 byteLength = byteLength
>>> 0
5981 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5982 checkInt(this, value, offset, byteLength, maxBytes,
0)
5985 var i = byteLength -
1
5987 this[offset + i] = value &
0xFF
5988 while (--i
>=
0 && (mul *=
0x100)) {
5989 this[offset + i] = (value / mul) &
0xFF
5992 return offset + byteLength
5995 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
5997 offset = offset
>>> 0
5998 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
5999 this[offset] = (value &
0xff)
6003 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
6005 offset = offset
>>> 0
6006 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
6007 this[offset] = (value &
0xff)
6008 this[offset +
1] = (value
>>> 8)
6012 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
6014 offset = offset
>>> 0
6015 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
6016 this[offset] = (value
>>> 8)
6017 this[offset +
1] = (value &
0xff)
6021 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
6023 offset = offset
>>> 0
6024 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6025 this[offset +
3] = (value
>>> 24)
6026 this[offset +
2] = (value
>>> 16)
6027 this[offset +
1] = (value
>>> 8)
6028 this[offset] = (value &
0xff)
6032 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
6034 offset = offset
>>> 0
6035 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6036 this[offset] = (value
>>> 24)
6037 this[offset +
1] = (value
>>> 16)
6038 this[offset +
2] = (value
>>> 8)
6039 this[offset +
3] = (value &
0xff)
6043 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
6045 offset = offset
>>> 0
6047 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6049 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6055 this[offset] = value &
0xFF
6056 while (++i < byteLength && (mul *=
0x100)) {
6057 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
6060 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6063 return offset + byteLength
6066 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
6068 offset = offset
>>> 0
6070 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6072 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6075 var i = byteLength -
1
6078 this[offset + i] = value &
0xFF
6079 while (--i
>=
0 && (mul *=
0x100)) {
6080 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
6083 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6086 return offset + byteLength
6089 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
6091 offset = offset
>>> 0
6092 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
6093 if (value <
0) value =
0xff + value +
1
6094 this[offset] = (value &
0xff)
6098 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
6100 offset = offset
>>> 0
6101 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6102 this[offset] = (value &
0xff)
6103 this[offset +
1] = (value
>>> 8)
6107 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
6109 offset = offset
>>> 0
6110 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6111 this[offset] = (value
>>> 8)
6112 this[offset +
1] = (value &
0xff)
6116 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
6118 offset = offset
>>> 0
6119 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6120 this[offset] = (value &
0xff)
6121 this[offset +
1] = (value
>>> 8)
6122 this[offset +
2] = (value
>>> 16)
6123 this[offset +
3] = (value
>>> 24)
6127 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
6129 offset = offset
>>> 0
6130 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6131 if (value <
0) value =
0xffffffff + value +
1
6132 this[offset] = (value
>>> 24)
6133 this[offset +
1] = (value
>>> 16)
6134 this[offset +
2] = (value
>>> 8)
6135 this[offset +
3] = (value &
0xff)
6139 function checkIEEE754 (buf, value, offset, ext, max, min) {
6140 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
6141 if (offset <
0) throw new RangeError('Index out of range')
6144 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6146 offset = offset
>>> 0
6148 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6150 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6154 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6155 return writeFloat(this, value, offset, true, noAssert)
6158 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6159 return writeFloat(this, value, offset, false, noAssert)
6162 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6164 offset = offset
>>> 0
6166 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6168 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6172 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6173 return writeDouble(this, value, offset, true, noAssert)
6176 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6177 return writeDouble(this, value, offset, false, noAssert)
6180 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6181 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6182 if (!start) start =
0
6183 if (!end && end !==
0) end = this.length
6184 if (targetStart
>= target.length) targetStart = target.length
6185 if (!targetStart) targetStart =
0
6186 if (end
> 0 && end < start) end = start
6188 // Copy
0 bytes; we're done
6189 if (end === start) return
0
6190 if (target.length ===
0 || this.length ===
0) return
0
6192 // Fatal error conditions
6193 if (targetStart <
0) {
6194 throw new RangeError('targetStart out of bounds')
6196 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6197 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6200 if (end
> this.length) end = this.length
6201 if (target.length - targetStart < end - start) {
6202 end = target.length - targetStart + start
6205 var len = end - start
6208 if (this === target && start < targetStart && targetStart < end) {
6209 // descending copy from end
6210 for (i = len -
1; i
>=
0; --i) {
6211 target[i + targetStart] = this[i + start]
6213 } else if (len <
1000) {
6214 // ascending copy from start
6215 for (i =
0; i < len; ++i) {
6216 target[i + targetStart] = this[i + start]
6219 Uint8Array.prototype.set.call(
6221 this.subarray(start, start + len),
6230 // buffer.fill(number[, offset[, end]])
6231 // buffer.fill(buffer[, offset[, end]])
6232 // buffer.fill(string[, offset[, end]][, encoding])
6233 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6234 // Handle string cases:
6235 if (typeof val === 'string') {
6236 if (typeof start === 'string') {
6240 } else if (typeof end === 'string') {
6244 if (val.length ===
1) {
6245 var code = val.charCodeAt(
0)
6250 if (encoding !== undefined && typeof encoding !== 'string') {
6251 throw new TypeError('encoding must be a string')
6253 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6254 throw new TypeError('Unknown encoding: ' + encoding)
6256 } else if (typeof val === 'number') {
6260 // Invalid ranges are not set to a default, so can range check early.
6261 if (start <
0 || this.length < start || this.length < end) {
6262 throw new RangeError('Out of range index')
6270 end = end === undefined ? this.length : end
>>> 0
6275 if (typeof val === 'number') {
6276 for (i = start; i < end; ++i) {
6280 var bytes = Buffer.isBuffer(val)
6282 : new Buffer(val, encoding)
6283 var len = bytes.length
6284 for (i =
0; i < end - start; ++i) {
6285 this[i + start] = bytes[i % len]
6295 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6297 function base64clean (str) {
6298 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6299 str = str.trim().replace(INVALID_BASE64_RE, '')
6300 // Node converts strings with length <
2 to ''
6301 if (str.length <
2) return ''
6302 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6303 while (str.length %
4 !==
0) {
6309 function toHex (n) {
6310 if (n <
16) return '
0' + n.toString(
16)
6311 return n.toString(
16)
6314 function utf8ToBytes (string, units) {
6315 units = units || Infinity
6317 var length = string.length
6318 var leadSurrogate = null
6321 for (var i =
0; i < length; ++i) {
6322 codePoint = string.charCodeAt(i)
6324 // is surrogate component
6325 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6326 // last char was a lead
6327 if (!leadSurrogate) {
6329 if (codePoint
> 0xDBFF) {
6331 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6333 } else if (i +
1 === length) {
6335 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6340 leadSurrogate = codePoint
6346 if (codePoint <
0xDC00) {
6347 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6348 leadSurrogate = codePoint
6352 // valid surrogate pair
6353 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6354 } else if (leadSurrogate) {
6355 // valid bmp char, but last char was a lead
6356 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6359 leadSurrogate = null
6362 if (codePoint <
0x80) {
6363 if ((units -=
1) <
0) break
6364 bytes.push(codePoint)
6365 } else if (codePoint <
0x800) {
6366 if ((units -=
2) <
0) break
6368 codePoint
>> 0x6 |
0xC0,
6369 codePoint &
0x3F |
0x80
6371 } else if (codePoint <
0x10000) {
6372 if ((units -=
3) <
0) break
6374 codePoint
>> 0xC |
0xE0,
6375 codePoint
>> 0x6 &
0x3F |
0x80,
6376 codePoint &
0x3F |
0x80
6378 } else if (codePoint <
0x110000) {
6379 if ((units -=
4) <
0) break
6381 codePoint
>> 0x12 |
0xF0,
6382 codePoint
>> 0xC &
0x3F |
0x80,
6383 codePoint
>> 0x6 &
0x3F |
0x80,
6384 codePoint &
0x3F |
0x80
6387 throw new Error('Invalid code point')
6394 function asciiToBytes (str) {
6396 for (var i =
0; i < str.length; ++i) {
6397 // Node's code seems to be doing this and not &
0x7F..
6398 byteArray.push(str.charCodeAt(i) &
0xFF)
6403 function utf16leToBytes (str, units) {
6406 for (var i =
0; i < str.length; ++i) {
6407 if ((units -=
2) <
0) break
6409 c = str.charCodeAt(i)
6419 function base64ToBytes (str) {
6420 return base64.toByteArray(base64clean(str))
6423 function blitBuffer (src, dst, offset, length) {
6424 for (var i =
0; i < length; ++i) {
6425 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6426 dst[i + offset] = src[i]
6431 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6432 function isArrayBufferView (obj) {
6433 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6436 function numberIsNaN (obj) {
6437 return obj !== obj // eslint-disable-line no-self-compare
6440 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6441 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6443 var eLen = nBytes *
8 - mLen -
1
6444 var eMax = (
1 << eLen) -
1
6445 var eBias = eMax
>> 1
6447 var i = isLE ? (nBytes -
1) :
0
6448 var d = isLE ? -
1 :
1
6449 var s = buffer[offset + i]
6453 e = s & ((
1 << (-nBits)) -
1)
6456 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6458 m = e & ((
1 << (-nBits)) -
1)
6461 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6465 } else if (e === eMax) {
6466 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6468 m = m + Math.pow(
2, mLen)
6471 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6474 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6476 var eLen = nBytes *
8 - mLen -
1
6477 var eMax = (
1 << eLen) -
1
6478 var eBias = eMax
>> 1
6479 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6480 var i = isLE ?
0 : (nBytes -
1)
6481 var d = isLE ?
1 : -
1
6482 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6484 value = Math.abs(value)
6486 if (isNaN(value) || value === Infinity) {
6487 m = isNaN(value) ?
1 :
0
6490 e = Math.floor(Math.log(value) / Math.LN2)
6491 if (value * (c = Math.pow(
2, -e)) <
1) {
6495 if (e + eBias
>=
1) {
6498 value += rt * Math.pow(
2,
1 - eBias)
6500 if (value * c
>=
2) {
6505 if (e + eBias
>= eMax) {
6508 } else if (e + eBias
>=
1) {
6509 m = (value * c -
1) * Math.pow(
2, mLen)
6512 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6517 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6521 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6523 buffer[offset + i - d] |= s *
128
6526 },{}],
4:[function(require,module,exports){
6527 window.basex = require('base-x')
6528 },{
"base-x":
5}],
5:[function(require,module,exports){
6530 // Forked from https://github.com/cryptocoinjs/bs58
6531 // Originally written by Mike Hearn for BitcoinJ
6532 // Copyright (c)
2011 Google Inc
6533 // Ported to JavaScript by Stefan Thomas
6534 // Merged Buffer refactorings from base58-native by Stephen Pair
6535 // Copyright (c)
2013 BitPay Inc
6537 var Buffer = require('safe-buffer').Buffer
6539 module.exports = function base (ALPHABET) {
6540 var ALPHABET_MAP = {}
6541 var BASE = ALPHABET.length
6542 var LEADER = ALPHABET.charAt(
0)
6544 // pre-compute lookup table
6545 for (var z =
0; z < ALPHABET.length; z++) {
6546 var x = ALPHABET.charAt(z)
6548 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6552 function encode (source) {
6553 if (source.length ===
0) return ''
6556 for (var i =
0; i < source.length; ++i) {
6557 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6558 carry += digits[j] <<
8
6559 digits[j] = carry % BASE
6560 carry = (carry / BASE) |
0
6564 digits.push(carry % BASE)
6565 carry = (carry / BASE) |
0
6571 // deal with leading zeros
6572 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6573 // convert digits to a string
6574 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6579 function decodeUnsafe (string) {
6580 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6583 for (var i =
0; i < string.length; i++) {
6584 var value = ALPHABET_MAP[string[i]]
6585 if (value === undefined) return
6587 for (var j =
0, carry = value; j < bytes.length; ++j) {
6588 carry += bytes[j] * BASE
6589 bytes[j] = carry &
0xff
6594 bytes.push(carry &
0xff)
6599 // deal with leading zeros
6600 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6604 return Buffer.from(bytes.reverse())
6607 function decode (string) {
6608 var buffer = decodeUnsafe(string)
6609 if (buffer) return buffer
6611 throw new Error('Non-base' + BASE + ' character')
6616 decodeUnsafe: decodeUnsafe,
6621 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6622 module.exports = require('buffer')
6624 },{"buffer":
2}]},{},[
4])(
4)
6626 <script>(function (root) {
6629 /***** unorm.js *****/
6632 * UnicodeNormalizer
1.0.0
6633 * Copyright (c)
2008 Matsuza
6634 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6635 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6639 var DEFAULT_FEATURE = [null,
0, {}];
6640 var CACHE_THRESHOLD =
10;
6641 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6642 var NCount = VCount * TCount; //
588
6643 var SCount = LCount * NCount; //
11172
6645 var UChar = function(cp, feature){
6646 this.codepoint = cp;
6647 this.feature = feature;
6652 var cacheCounter = [];
6653 for (var i =
0; i <=
0xFF; ++i){
6654 cacheCounter[i] =
0;
6657 function fromCache(next, cp, needFeature){
6658 var ret = cache[cp];
6660 ret = next(cp, needFeature);
6661 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6668 function fromData(next, cp, needFeature){
6669 var hash = cp &
0xFF00;
6670 var dunit = UChar.udata[hash] || {};
6672 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6674 function fromCpOnly(next, cp, needFeature){
6675 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6677 function fromRuleBasedJamo(next, cp, needFeature){
6679 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6680 return next(cp, needFeature);
6682 if(LBase <= cp && cp < LBase + LCount){
6684 var base = (cp - LBase) * VCount;
6685 for (j =
0; j < VCount; ++j){
6686 c[VBase + j] = SBase + TCount * (j + base);
6688 return new UChar(cp, [,,c]);
6691 var SIndex = cp - SBase;
6692 var TIndex = SIndex % TCount;
6695 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6697 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6699 for (j =
1; j < TCount; ++j){
6700 feature[
2][TBase + j] = cp + j;
6703 return new UChar(cp, feature);
6705 function fromCpFilter(next, cp, needFeature){
6706 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6709 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6711 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6712 return function (cp, needFeature) {
6713 return strategy(next, cp, needFeature);
6717 UChar.isHighSurrogate = function(cp){
6718 return cp
>=
0xD800 && cp <=
0xDBFF;
6720 UChar.isLowSurrogate = function(cp){
6721 return cp
>=
0xDC00 && cp <=
0xDFFF;
6724 UChar.prototype.prepFeature = function(){
6726 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6730 UChar.prototype.toString = function(){
6731 if(this.codepoint <
0x10000){
6732 return String.fromCharCode(this.codepoint);
6734 var x = this.codepoint -
0x10000;
6735 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6739 UChar.prototype.getDecomp = function(){
6741 return this.feature[
0] || null;
6744 UChar.prototype.isCompatibility = function(){
6746 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6748 UChar.prototype.isExclude = function(){
6750 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6752 UChar.prototype.getCanonicalClass = function(){
6754 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6756 UChar.prototype.getComposite = function(following){
6758 if(!this.feature[
2]){
6761 var cp = this.feature[
2][following.codepoint];
6762 return cp ? UChar.fromCharCode(cp) : null;
6765 var UCharIterator = function(str){
6769 UCharIterator.prototype.next = function(){
6770 if(!!this.str && this.cursor < this.str.length){
6771 var cp = this.str.charCodeAt(this.cursor++);
6773 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6774 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6777 return UChar.fromCharCode(cp);
6784 var RecursDecompIterator = function(it, cano){
6786 this.canonical = cano;
6790 RecursDecompIterator.prototype.next = function(){
6791 function recursiveDecomp(cano, uchar){
6792 var decomp = uchar.getDecomp();
6793 if(!!decomp && !(cano && uchar.isCompatibility())){
6795 for(var i =
0; i < decomp.length; ++i){
6796 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6797 ret = ret.concat(a);
6804 if(this.resBuf.length ===
0){
6805 var uchar = this.it.next();
6809 this.resBuf = recursiveDecomp(this.canonical, uchar);
6811 return this.resBuf.shift();
6814 var DecompIterator = function(it){
6819 DecompIterator.prototype.next = function(){
6821 if(this.resBuf.length ===
0){
6823 var uchar = this.it.next();
6827 cc = uchar.getCanonicalClass();
6828 var inspt = this.resBuf.length;
6830 for(; inspt
> 0; --inspt){
6831 var uchar2 = this.resBuf[inspt -
1];
6832 var cc2 = uchar2.getCanonicalClass();
6838 this.resBuf.splice(inspt,
0, uchar);
6841 return this.resBuf.shift();
6844 var CompIterator = function(it){
6848 this.lastClass = null;
6851 CompIterator.prototype.next = function(){
6852 while(this.resBuf.length ===
0){
6853 var uchar = this.it.next();
6855 this.resBuf = this.procBuf;
6859 if(this.procBuf.length ===
0){
6860 this.lastClass = uchar.getCanonicalClass();
6861 this.procBuf.push(uchar);
6863 var starter = this.procBuf[
0];
6864 var composite = starter.getComposite(uchar);
6865 var cc = uchar.getCanonicalClass();
6866 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6867 this.procBuf[
0] = composite;
6870 this.resBuf = this.procBuf;
6873 this.lastClass = cc;
6874 this.procBuf.push(uchar);
6878 return this.resBuf.shift();
6881 var createIterator = function(mode, str){
6884 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6886 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6888 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6890 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6892 throw mode +
" is invalid";
6894 var normalize = function(mode, str){
6895 var it = createIterator(mode, str);
6898 while(!!(uchar = it.next())){
6899 ret += uchar.toString();
6906 return normalize(
"NFD", str);
6910 return normalize(
"NFKD", str);
6914 return normalize(
"NFC", str);
6918 return normalize(
"NFKC", str);
6923 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]]},
6924 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]},
6925 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]},
6926 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]},
6927 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]]},
6928 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]},
6929 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]},
6930 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]},
6931 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]},
6932 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]},
6933 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]},
6934 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]},
6935 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]},
6936 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]]},
6937 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]},
6938 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]},
6939 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]},
6940 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]},
6941 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6942 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]},
6943 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6944 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6945 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6946 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6948 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6949 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]},
6950 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]},
6951 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]},
6952 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]},
6953 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]]},
6954 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}]},
6955 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]},
6956 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}]},
6957 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]]},
6958 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6959 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]},
6960 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]},
6961 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6962 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]},
6963 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6964 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]},
6965 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]},
6966 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]},
6967 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]},
6968 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]},
6969 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6970 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6971 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]},
6972 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6973 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]},
6974 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6975 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6976 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6977 48128:{
113822:[,
1]},
6978 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]},
6979 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6980 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]},
6981 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]},
6982 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]},
6983 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]},
6984 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6985 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]},
6986 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]},
6987 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]},
6988 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]]},
6989 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]]},
6990 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]]},
6991 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]},
6992 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]},
6993 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]},
6994 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]},
6995 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]}
6999 /***** Module to export */
7007 /*globals module:true,define:true*/
7010 if (typeof module ===
"object") {
7011 module.exports = unorm;
7014 } else if (typeof define ===
"function" && define.amd) {
7015 define(
"unorm", function () {
7024 /***** Export as shim for String::normalize method *****/
7026 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
7028 21.1.3.12 String.prototype.normalize(
form=
"NFC")
7029 When the normalize method is called with one argument form, the following steps are taken:
7031 1. Let O be CheckObjectCoercible(this value).
7032 2. Let S be ToString(O).
7033 3. ReturnIfAbrupt(S).
7034 4. If form is not provided or undefined let form be
"NFC".
7035 5. Let f be ToString(form).
7036 6. ReturnIfAbrupt(f).
7037 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
7038 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.
7041 The length property of the normalize method is
0.
7043 *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.
7045 unorm.shimApplied = false;
7047 if (!String.prototype.normalize) {
7048 String.prototype.normalize = function(form) {
7049 var str =
"" + this;
7050 form = form === undefined ?
"NFC" : form;
7052 if (form ===
"NFC") {
7053 return unorm.nfc(str);
7054 } else if (form ===
"NFD") {
7055 return unorm.nfd(str);
7056 } else if (form ===
"NFKC") {
7057 return unorm.nfkc(str);
7058 } else if (form ===
"NFKD") {
7059 return unorm.nfkd(str);
7061 throw new RangeError(
"Invalid normalization form: " + form);
7065 unorm.shimApplied = true;
7069 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
7070 !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)
7071 },_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))
7072 },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});
7075 * Bootstrap v3.2.0 (http://getbootstrap.com)
7076 * Copyright 2011-2014 Twitter, Inc.
7077 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7079 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>
7080 <script>(function() {
7084 * Extend an Object with another Object's properties.
7086 * The source objects are specified as additional arguments.
7088 * @param dst Object the object to extend.
7090 * @return Object the final object.
7092 var _extend = function(dst) {
7093 var sources = Array.prototype.slice.call(arguments,
1);
7094 for (var i=
0; i
<sources.length; ++i) {
7095 var src = sources[i];
7096 for (var p in src) {
7097 if (src.hasOwnProperty(p)) dst[p] = src[p];
7105 * Defer execution of given function.
7106 * @param {Function} func
7108 var _defer = function(func) {
7109 if (typeof setImmediate === 'function') {
7110 return setImmediate(func);
7112 return setTimeout(func,
0);
7117 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
7121 * Calculate levenshtein distance of the two strings.
7123 * @param str1 String the first string.
7124 * @param str2 String the second string.
7125 * @return Integer the levenshtein distance (
0 and above).
7127 get: function(str1, str2) {
7129 if (str1 === str2) return
0;
7130 if (str1.length ===
0) return str2.length;
7131 if (str2.length ===
0) return str1.length;
7134 var prevRow = new Array(str2.length +
1),
7135 curCol, nextCol, i, j, tmp;
7137 // initialise previous row
7138 for (i=
0; i
<prevRow.length; ++i) {
7142 // calculate current row distance from previous row
7143 for (i=
0; i
<str1.length; ++i) {
7146 for (j=
0; j
<str2.length; ++j) {
7150 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7153 if (nextCol
> tmp) {
7157 tmp = prevRow[j +
1] +
1;
7158 if (nextCol
> tmp) {
7162 // copy current col value into previous (in preparation for next iteration)
7163 prevRow[j] = curCol;
7166 // copy last col value into previous (in preparation for next iteration)
7167 prevRow[j] = nextCol;
7174 * Asynchronously calculate levenshtein distance of the two strings.
7176 * @param str1 String the first string.
7177 * @param str2 String the second string.
7178 * @param cb Function callback function with signature: function(Error err, int distance)
7179 * @param [options] Object additional options.
7180 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7182 getAsync: function(str1, str2, cb, options) {
7183 options = _extend({}, {
7188 if (str1 === str2) return cb(null,
0);
7189 if (str1.length ===
0) return cb(null, str2.length);
7190 if (str2.length ===
0) return cb(null, str1.length);
7193 var prevRow = new Array(str2.length +
1),
7196 startTime, currentTime;
7198 // initialise previous row
7199 for (i=
0; i
<prevRow.length; ++i) {
7207 var __calculate = function() {
7209 startTime = new Date().valueOf();
7210 currentTime = startTime;
7212 // keep going until one second has elapsed
7213 while (currentTime - startTime <
1000) {
7214 // reached end of current row?
7215 if (str2.length <= (++j)) {
7216 // copy current into previous (in preparation for next iteration)
7217 prevRow[j] = nextCol;
7219 // if already done all chars
7220 if (str1.length <= (++i)) {
7221 return cb(null, nextCol);
7223 // else if we have more left to do
7234 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7237 if (nextCol
> tmp) {
7241 tmp = prevRow[j +
1] +
1;
7242 if (nextCol
> tmp) {
7246 // copy current into previous (in preparation for next iteration)
7247 prevRow[j] = curCol;
7250 currentTime = new Date().valueOf();
7253 // send a progress update?
7254 if (null !== options.progress) {
7256 options.progress.call(null, (i *
100.0/ str1.length));
7258 return cb('Progress callback: ' + err.toString());
7263 _defer(__calculate);
7272 if (typeof define !== "undefined" && define !== null && define.amd) {
7278 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7279 module.exports = Levenshtein;
7282 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7283 self.Levenshtein = Levenshtein;
7285 // browser main thread
7286 else if (typeof window !== "undefined" && window !== null) {
7287 window.Levenshtein = Levenshtein;
7292 <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},
7293 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;
7294 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-
7295 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]=
7296 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},
7297 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=
7298 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-
7299 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,
7300 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=
7301 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&&
7302 (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,
7303 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)-
7304 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:"+
7305 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:"+
7306 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+
7307 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),
7308 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>
7309 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],
7310 [
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,
7311 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,
7312 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,
7313 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,
7314 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,
7315 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*
7316 (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,
7317 correctLevel:
3,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),
7318 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",
7319 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7321 <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.bitcoinjs = 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){
7325 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
7329 * The buffer module from node.js, for the browser.
7331 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7334 function compare(a, b) {
7342 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
7343 if (a[i] !== b[i]) {
7358 function isBuffer(b) {
7359 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
7360 return global.Buffer.isBuffer(b);
7362 return !!(b != null && b._isBuffer);
7365 // based on node assert, original notice:
7367 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
7369 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
7371 // Originally from narwhal.js (http://narwhaljs.org)
7372 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
7374 // Permission is hereby granted, free of charge, to any person obtaining a copy
7375 // of this software and associated documentation files (the 'Software'), to
7376 // deal in the Software without restriction, including without limitation the
7377 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7378 // sell copies of the Software, and to permit persons to whom the Software is
7379 // furnished to do so, subject to the following conditions:
7381 // The above copyright notice and this permission notice shall be included in
7382 // all copies or substantial portions of the Software.
7384 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7385 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7386 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
7387 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
7388 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
7389 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7391 var util = require('util/');
7392 var hasOwn = Object.prototype.hasOwnProperty;
7393 var pSlice = Array.prototype.slice;
7394 var functionsHaveNames = (function () {
7395 return function foo() {}.name === 'foo';
7397 function pToString (obj) {
7398 return Object.prototype.toString.call(obj);
7400 function isView(arrbuf) {
7401 if (isBuffer(arrbuf)) {
7404 if (typeof global.ArrayBuffer !== 'function') {
7407 if (typeof ArrayBuffer.isView === 'function') {
7408 return ArrayBuffer.isView(arrbuf);
7413 if (arrbuf instanceof DataView) {
7416 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
7421 //
1. The assert module provides functions that throw
7422 // AssertionError's when particular conditions are not met. The
7423 // assert module must conform to the following interface.
7425 var assert = module.exports = ok;
7427 //
2. The AssertionError is defined in assert.
7428 // new assert.AssertionError({ message: message,
7430 // expected: expected })
7432 var regex = /\s*function\s+([^\(\s]*)\s*/;
7433 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
7434 function getName(func) {
7435 if (!util.isFunction(func)) {
7438 if (functionsHaveNames) {
7441 var str = func.toString();
7442 var match = str.match(regex);
7443 return match && match[
1];
7445 assert.AssertionError = function AssertionError(options) {
7446 this.name = 'AssertionError';
7447 this.actual = options.actual;
7448 this.expected = options.expected;
7449 this.operator = options.operator;
7450 if (options.message) {
7451 this.message = options.message;
7452 this.generatedMessage = false;
7454 this.message = getMessage(this);
7455 this.generatedMessage = true;
7457 var stackStartFunction = options.stackStartFunction || fail;
7458 if (Error.captureStackTrace) {
7459 Error.captureStackTrace(this, stackStartFunction);
7461 // non v8 browsers so we can have a stacktrace
7462 var err = new Error();
7464 var out = err.stack;
7466 // try to strip useless frames
7467 var fn_name = getName(stackStartFunction);
7468 var idx = out.indexOf('\n' + fn_name);
7470 // once we have located the function frame
7471 // we need to strip out everything before it (and its line)
7472 var next_line = out.indexOf('\n', idx +
1);
7473 out = out.substring(next_line +
1);
7481 // assert.AssertionError instanceof Error
7482 util.inherits(assert.AssertionError, Error);
7484 function truncate(s, n) {
7485 if (typeof s === 'string') {
7486 return s.length < n ? s : s.slice(
0, n);
7491 function inspect(something) {
7492 if (functionsHaveNames || !util.isFunction(something)) {
7493 return util.inspect(something);
7495 var rawname = getName(something);
7496 var name = rawname ? ': ' + rawname : '';
7497 return '[Function' + name + ']';
7499 function getMessage(self) {
7500 return truncate(inspect(self.actual),
128) + ' ' +
7501 self.operator + ' ' +
7502 truncate(inspect(self.expected),
128);
7505 // At present only the three keys mentioned above are used and
7506 // understood by the spec. Implementations or sub modules can pass
7507 // other keys to the AssertionError's constructor - they will be
7510 //
3. All of the following functions must throw an AssertionError
7511 // when a corresponding condition is not met, with a message that
7512 // may be undefined if not provided. All assertion methods provide
7513 // both the actual and expected values to the assertion error for
7514 // display purposes.
7516 function fail(actual, expected, message, operator, stackStartFunction) {
7517 throw new assert.AssertionError({
7522 stackStartFunction: stackStartFunction
7526 // EXTENSION! allows for well behaved errors defined elsewhere.
7529 //
4. Pure assertion tests whether a value is truthy, as determined
7531 // assert.ok(guard, message_opt);
7532 // This statement is equivalent to assert.equal(true, !!guard,
7533 // message_opt);. To test strictly for the value true, use
7534 // assert.strictEqual(true, guard, message_opt);.
7536 function ok(value, message) {
7537 if (!value) fail(value, true, message, '==', assert.ok);
7541 //
5. The equality assertion tests shallow, coercive equality with
7543 // assert.equal(actual, expected, message_opt);
7545 assert.equal = function equal(actual, expected, message) {
7546 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
7549 //
6. The non-equality assertion tests for whether two objects are not equal
7550 // with != assert.notEqual(actual, expected, message_opt);
7552 assert.notEqual = function notEqual(actual, expected, message) {
7553 if (actual == expected) {
7554 fail(actual, expected, message, '!=', assert.notEqual);
7558 //
7. The equivalence assertion tests a deep equality relation.
7559 // assert.deepEqual(actual, expected, message_opt);
7561 assert.deepEqual = function deepEqual(actual, expected, message) {
7562 if (!_deepEqual(actual, expected, false)) {
7563 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
7567 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
7568 if (!_deepEqual(actual, expected, true)) {
7569 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
7573 function _deepEqual(actual, expected, strict, memos) {
7574 //
7.1. All identical values are equivalent, as determined by ===.
7575 if (actual === expected) {
7577 } else if (isBuffer(actual) && isBuffer(expected)) {
7578 return compare(actual, expected) ===
0;
7580 //
7.2. If the expected value is a Date object, the actual value is
7581 // equivalent if it is also a Date object that refers to the same time.
7582 } else if (util.isDate(actual) && util.isDate(expected)) {
7583 return actual.getTime() === expected.getTime();
7585 //
7.3 If the expected value is a RegExp object, the actual value is
7586 // equivalent if it is also a RegExp object with the same source and
7587 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
7588 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
7589 return actual.source === expected.source &&
7590 actual.global === expected.global &&
7591 actual.multiline === expected.multiline &&
7592 actual.lastIndex === expected.lastIndex &&
7593 actual.ignoreCase === expected.ignoreCase;
7595 //
7.4. Other pairs that do not both pass typeof value == 'object',
7596 // equivalence is determined by ==.
7597 } else if ((actual === null || typeof actual !== 'object') &&
7598 (expected === null || typeof expected !== 'object')) {
7599 return strict ? actual === expected : actual == expected;
7601 // If both values are instances of typed arrays, wrap their underlying
7602 // ArrayBuffers in a Buffer each to increase performance
7603 // This optimization requires the arrays to have the same type as checked by
7604 // Object.prototype.toString (aka pToString). Never perform binary
7605 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
7606 // bit patterns are not identical.
7607 } else if (isView(actual) && isView(expected) &&
7608 pToString(actual) === pToString(expected) &&
7609 !(actual instanceof Float32Array ||
7610 actual instanceof Float64Array)) {
7611 return compare(new Uint8Array(actual.buffer),
7612 new Uint8Array(expected.buffer)) ===
0;
7614 //
7.5 For all other Object pairs, including Array objects, equivalence is
7615 // determined by having the same number of owned properties (as verified
7616 // with Object.prototype.hasOwnProperty.call), the same set of keys
7617 // (although not necessarily the same order), equivalent values for every
7618 // corresponding key, and an identical 'prototype' property. Note: this
7619 // accounts for both named and indexed properties on Arrays.
7620 } else if (isBuffer(actual) !== isBuffer(expected)) {
7623 memos = memos || {actual: [], expected: []};
7625 var actualIndex = memos.actual.indexOf(actual);
7626 if (actualIndex !== -
1) {
7627 if (actualIndex === memos.expected.indexOf(expected)) {
7632 memos.actual.push(actual);
7633 memos.expected.push(expected);
7635 return objEquiv(actual, expected, strict, memos);
7639 function isArguments(object) {
7640 return Object.prototype.toString.call(object) == '[object Arguments]';
7643 function objEquiv(a, b, strict, actualVisitedObjects) {
7644 if (a === null || a === undefined || b === null || b === undefined)
7646 // if one is a primitive, the other must be same
7647 if (util.isPrimitive(a) || util.isPrimitive(b))
7649 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
7651 var aIsArgs = isArguments(a);
7652 var bIsArgs = isArguments(b);
7653 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
7658 return _deepEqual(a, b, strict);
7660 var ka = objectKeys(a);
7661 var kb = objectKeys(b);
7663 // having the same number of owned properties (keys incorporates
7665 if (ka.length !== kb.length)
7667 //the same set of keys (although not necessarily the same order),
7671 for (i = ka.length -
1; i
>=
0; i--) {
7672 if (ka[i] !== kb[i])
7675 //equivalent values for every corresponding key, and
7676 //~~~possibly expensive deep test
7677 for (i = ka.length -
1; i
>=
0; i--) {
7679 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
7685 //
8. The non-equivalence assertion tests for any deep inequality.
7686 // assert.notDeepEqual(actual, expected, message_opt);
7688 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
7689 if (_deepEqual(actual, expected, false)) {
7690 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
7694 assert.notDeepStrictEqual = notDeepStrictEqual;
7695 function notDeepStrictEqual(actual, expected, message) {
7696 if (_deepEqual(actual, expected, true)) {
7697 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
7702 //
9. The strict equality assertion tests strict equality, as determined by ===.
7703 // assert.strictEqual(actual, expected, message_opt);
7705 assert.strictEqual = function strictEqual(actual, expected, message) {
7706 if (actual !== expected) {
7707 fail(actual, expected, message, '===', assert.strictEqual);
7711 //
10. The strict non-equality assertion tests for strict inequality, as
7712 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
7714 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
7715 if (actual === expected) {
7716 fail(actual, expected, message, '!==', assert.notStrictEqual);
7720 function expectedException(actual, expected) {
7721 if (!actual || !expected) {
7725 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
7726 return expected.test(actual);
7730 if (actual instanceof expected) {
7734 // Ignore. The instanceof check doesn't work for arrow functions.
7737 if (Error.isPrototypeOf(expected)) {
7741 return expected.call({}, actual) === true;
7744 function _tryBlock(block) {
7754 function _throws(shouldThrow, block, expected, message) {
7757 if (typeof block !== 'function') {
7758 throw new TypeError('"block" argument must be a function');
7761 if (typeof expected === 'string') {
7766 actual = _tryBlock(block);
7768 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
7769 (message ? ' ' + message : '.');
7771 if (shouldThrow && !actual) {
7772 fail(actual, expected, 'Missing expected exception' + message);
7775 var userProvidedMessage = typeof message === 'string';
7776 var isUnwantedException = !shouldThrow && util.isError(actual);
7777 var isUnexpectedException = !shouldThrow && actual && !expected;
7779 if ((isUnwantedException &&
7780 userProvidedMessage &&
7781 expectedException(actual, expected)) ||
7782 isUnexpectedException) {
7783 fail(actual, expected, 'Got unwanted exception' + message);
7786 if ((shouldThrow && actual && expected &&
7787 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
7792 //
11. Expected to throw an error:
7793 // assert.throws(block, Error_opt, message_opt);
7795 assert.throws = function(block, /*optional*/error, /*optional*/message) {
7796 _throws(true, block, error, message);
7799 // EXTENSION! This is annoying to write outside this module.
7800 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
7801 _throws(false, block, error, message);
7804 assert.ifError = function(err) { if (err) throw err; };
7806 var objectKeys = Object.keys || function (obj) {
7808 for (var key in obj) {
7809 if (hasOwn.call(obj, key)) keys.push(key);
7814 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
7815 },{"util/":
32}],
2:[function(require,module,exports){
7818 exports.byteLength = byteLength
7819 exports.toByteArray = toByteArray
7820 exports.fromByteArray = fromByteArray
7824 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
7826 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
7827 for (var i =
0, len = code.length; i < len; ++i) {
7829 revLookup[code.charCodeAt(i)] = i
7832 revLookup['-'.charCodeAt(
0)] =
62
7833 revLookup['_'.charCodeAt(
0)] =
63
7835 function placeHoldersCount (b64) {
7836 var len = b64.length
7838 throw new Error('Invalid string. Length must be a multiple of
4')
7841 // the number of equal signs (place holders)
7842 // if there are two placeholders, than the two characters before it
7843 // represent one byte
7844 // if there is only one, then the three characters before it represent
2 bytes
7845 // this is just a cheap hack to not do indexOf twice
7846 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
7849 function byteLength (b64) {
7850 // base64 is
4/
3 + up to two characters of the original data
7851 return (b64.length *
3 /
4) - placeHoldersCount(b64)
7854 function toByteArray (b64) {
7855 var i, l, tmp, placeHolders, arr
7856 var len = b64.length
7857 placeHolders = placeHoldersCount(b64)
7859 arr = new Arr((len *
3 /
4) - placeHolders)
7861 // if there are placeholders, only get up to the last complete
4 chars
7862 l = placeHolders
> 0 ? len -
4 : len
7866 for (i =
0; i < l; i +=
4) {
7867 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
7868 arr[L++] = (tmp
>> 16) &
0xFF
7869 arr[L++] = (tmp
>> 8) &
0xFF
7870 arr[L++] = tmp &
0xFF
7873 if (placeHolders ===
2) {
7874 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
7875 arr[L++] = tmp &
0xFF
7876 } else if (placeHolders ===
1) {
7877 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
7878 arr[L++] = (tmp
>> 8) &
0xFF
7879 arr[L++] = tmp &
0xFF
7885 function tripletToBase64 (num) {
7886 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
7889 function encodeChunk (uint8, start, end) {
7892 for (var i = start; i < end; i +=
3) {
7893 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
7894 output.push(tripletToBase64(tmp))
7896 return output.join('')
7899 function fromByteArray (uint8) {
7901 var len = uint8.length
7902 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
7905 var maxChunkLength =
16383 // must be multiple of
3
7907 // go through the array every three bytes, we'll deal with trailing stuff later
7908 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
7909 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
7912 // pad the end with zeros, but make sure to not forget the extra bytes
7913 if (extraBytes ===
1) {
7914 tmp = uint8[len -
1]
7915 output += lookup[tmp
>> 2]
7916 output += lookup[(tmp <<
4) &
0x3F]
7918 } else if (extraBytes ===
2) {
7919 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
7920 output += lookup[tmp
>> 10]
7921 output += lookup[(tmp
>> 4) &
0x3F]
7922 output += lookup[(tmp <<
2) &
0x3F]
7928 return parts.join('')
7931 },{}],
3:[function(require,module,exports){
7933 },{}],
4:[function(require,module,exports){
7935 * The buffer module from node.js, for the browser.
7937 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7940 /* eslint-disable no-proto */
7944 var base64 = require('base64-js')
7945 var ieee754 = require('ieee754')
7947 exports.Buffer = Buffer
7948 exports.SlowBuffer = SlowBuffer
7949 exports.INSPECT_MAX_BYTES =
50
7951 var K_MAX_LENGTH =
0x7fffffff
7952 exports.kMaxLength = K_MAX_LENGTH
7955 * If `Buffer.TYPED_ARRAY_SUPPORT`:
7956 * === true Use Uint8Array implementation (fastest)
7957 * === false Print warning and recommend using `buffer` v4.x which has an Object
7958 * implementation (most compatible, even IE6)
7960 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
7961 * Opera
11.6+, iOS
4.2+.
7963 * We report that the browser does not support typed arrays if the are not subclassable
7964 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
7965 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
7966 * for __proto__ and has a buggy typed array implementation.
7968 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
7970 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
7971 typeof console.error === 'function') {
7973 'This browser lacks typed array (Uint8Array) support which is required by ' +
7974 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
7978 function typedArraySupport () {
7979 // Can typed array instances can be augmented?
7981 var arr = new Uint8Array(
1)
7982 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
7983 return arr.foo() ===
42
7989 function createBuffer (length) {
7990 if (length
> K_MAX_LENGTH) {
7991 throw new RangeError('Invalid typed array length')
7993 // Return an augmented `Uint8Array` instance
7994 var buf = new Uint8Array(length)
7995 buf.__proto__ = Buffer.prototype
8000 * The Buffer constructor returns instances of `Uint8Array` that have their
8001 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
8002 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
8003 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
8004 * returns a single octet.
8006 * The `Uint8Array` prototype remains unmodified.
8009 function Buffer (arg, encodingOrOffset, length) {
8011 if (typeof arg === 'number') {
8012 if (typeof encodingOrOffset === 'string') {
8014 'If encoding is specified then the first argument must be a string'
8017 return allocUnsafe(arg)
8019 return from(arg, encodingOrOffset, length)
8022 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
8023 if (typeof Symbol !== 'undefined' && Symbol.species &&
8024 Buffer[Symbol.species] === Buffer) {
8025 Object.defineProperty(Buffer, Symbol.species, {
8033 Buffer.poolSize =
8192 // not used by this implementation
8035 function from (value, encodingOrOffset, length) {
8036 if (typeof value === 'number') {
8037 throw new TypeError('"value" argument must not be a number')
8040 if (value instanceof ArrayBuffer) {
8041 return fromArrayBuffer(value, encodingOrOffset, length)
8044 if (typeof value === 'string') {
8045 return fromString(value, encodingOrOffset)
8048 return fromObject(value)
8052 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
8053 * if value is a number.
8054 * Buffer.from(str[, encoding])
8055 * Buffer.from(array)
8056 * Buffer.from(buffer)
8057 * Buffer.from(arrayBuffer[, byteOffset[, length]])
8059 Buffer.from = function (value, encodingOrOffset, length) {
8060 return from(value, encodingOrOffset, length)
8063 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
8064 // https://github.com/feross/buffer/pull/
148
8065 Buffer.prototype.__proto__ = Uint8Array.prototype
8066 Buffer.__proto__ = Uint8Array
8068 function assertSize (size) {
8069 if (typeof size !== 'number') {
8070 throw new TypeError('"size" argument must be a number')
8071 } else if (size <
0) {
8072 throw new RangeError('"size" argument must not be negative')
8076 function alloc (size, fill, encoding) {
8079 return createBuffer(size)
8081 if (fill !== undefined) {
8082 // Only pay attention to encoding if it's a string. This
8083 // prevents accidentally sending in a number that would
8084 // be interpretted as a start offset.
8085 return typeof encoding === 'string'
8086 ? createBuffer(size).fill(fill, encoding)
8087 : createBuffer(size).fill(fill)
8089 return createBuffer(size)
8093 * Creates a new filled Buffer instance.
8094 * alloc(size[, fill[, encoding]])
8096 Buffer.alloc = function (size, fill, encoding) {
8097 return alloc(size, fill, encoding)
8100 function allocUnsafe (size) {
8102 return createBuffer(size <
0 ?
0 : checked(size) |
0)
8106 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
8108 Buffer.allocUnsafe = function (size) {
8109 return allocUnsafe(size)
8112 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
8114 Buffer.allocUnsafeSlow = function (size) {
8115 return allocUnsafe(size)
8118 function fromString (string, encoding) {
8119 if (typeof encoding !== 'string' || encoding === '') {
8123 if (!Buffer.isEncoding(encoding)) {
8124 throw new TypeError('"encoding" must be a valid string encoding')
8127 var length = byteLength(string, encoding) |
0
8128 var buf = createBuffer(length)
8130 var actual = buf.write(string, encoding)
8132 if (actual !== length) {
8133 // Writing a hex string, for example, that contains invalid characters will
8134 // cause everything after the first invalid character to be ignored. (e.g.
8135 // 'abxxcd' will be treated as 'ab')
8136 buf = buf.slice(
0, actual)
8142 function fromArrayLike (array) {
8143 var length = array.length <
0 ?
0 : checked(array.length) |
0
8144 var buf = createBuffer(length)
8145 for (var i =
0; i < length; i +=
1) {
8146 buf[i] = array[i] &
255
8151 function fromArrayBuffer (array, byteOffset, length) {
8152 if (byteOffset <
0 || array.byteLength < byteOffset) {
8153 throw new RangeError('\'offset\' is out of bounds')
8156 if (array.byteLength < byteOffset + (length ||
0)) {
8157 throw new RangeError('\'length\' is out of bounds')
8161 if (byteOffset === undefined && length === undefined) {
8162 buf = new Uint8Array(array)
8163 } else if (length === undefined) {
8164 buf = new Uint8Array(array, byteOffset)
8166 buf = new Uint8Array(array, byteOffset, length)
8169 // Return an augmented `Uint8Array` instance
8170 buf.__proto__ = Buffer.prototype
8174 function fromObject (obj) {
8175 if (Buffer.isBuffer(obj)) {
8176 var len = checked(obj.length) |
0
8177 var buf = createBuffer(len)
8179 if (buf.length ===
0) {
8183 obj.copy(buf,
0,
0, len)
8188 if (isArrayBufferView(obj) || 'length' in obj) {
8189 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
8190 return createBuffer(
0)
8192 return fromArrayLike(obj)
8195 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
8196 return fromArrayLike(obj.data)
8200 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
8203 function checked (length) {
8204 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
8205 // length is NaN (which is otherwise coerced to zero.)
8206 if (length
>= K_MAX_LENGTH) {
8207 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
8208 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
8213 function SlowBuffer (length) {
8214 if (+length != length) { // eslint-disable-line eqeqeq
8217 return Buffer.alloc(+length)
8220 Buffer.isBuffer = function isBuffer (b) {
8221 return b != null && b._isBuffer === true
8224 Buffer.compare = function compare (a, b) {
8225 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
8226 throw new TypeError('Arguments must be Buffers')
8229 if (a === b) return
0
8234 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
8235 if (a[i] !== b[i]) {
8242 if (x < y) return -
1
8247 Buffer.isEncoding = function isEncoding (encoding) {
8248 switch (String(encoding).toLowerCase()) {
8266 Buffer.concat = function concat (list, length) {
8267 if (!Array.isArray(list)) {
8268 throw new TypeError('"list" argument must be an Array of Buffers')
8271 if (list.length ===
0) {
8272 return Buffer.alloc(
0)
8276 if (length === undefined) {
8278 for (i =
0; i < list.length; ++i) {
8279 length += list[i].length
8283 var buffer = Buffer.allocUnsafe(length)
8285 for (i =
0; i < list.length; ++i) {
8287 if (!Buffer.isBuffer(buf)) {
8288 throw new TypeError('"list" argument must be an Array of Buffers')
8290 buf.copy(buffer, pos)
8296 function byteLength (string, encoding) {
8297 if (Buffer.isBuffer(string)) {
8298 return string.length
8300 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
8301 return string.byteLength
8303 if (typeof string !== 'string') {
8304 string = '' + string
8307 var len = string.length
8308 if (len ===
0) return
0
8310 // Use a for loop to avoid recursion
8311 var loweredCase = false
8321 return utf8ToBytes(string).length
8330 return base64ToBytes(string).length
8332 if (loweredCase) return utf8ToBytes(string).length // assume utf8
8333 encoding = ('' + encoding).toLowerCase()
8338 Buffer.byteLength = byteLength
8340 function slowToString (encoding, start, end) {
8341 var loweredCase = false
8343 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
8344 // property of a typed array.
8346 // This behaves neither like String nor Uint8Array in that we set start/end
8347 // to their upper/lower bounds if the value passed is out of range.
8348 // undefined is handled specially as per ECMA-
262 6th Edition,
8349 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
8350 if (start === undefined || start <
0) {
8353 // Return early if start
> this.length. Done here to prevent potential uint32
8354 // coercion fail below.
8355 if (start
> this.length) {
8359 if (end === undefined || end
> this.length) {
8367 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
8375 if (!encoding) encoding = 'utf8'
8380 return hexSlice(this, start, end)
8384 return utf8Slice(this, start, end)
8387 return asciiSlice(this, start, end)
8391 return latin1Slice(this, start, end)
8394 return base64Slice(this, start, end)
8400 return utf16leSlice(this, start, end)
8403 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8404 encoding = (encoding + '').toLowerCase()
8410 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
8411 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
8412 // reliably in a browserify context because there could be multiple different
8413 // copies of the 'buffer' package in use. This method works even for Buffer
8414 // instances that were created from another copy of the `buffer` package.
8415 // See: https://github.com/feross/buffer/issues/
154
8416 Buffer.prototype._isBuffer = true
8418 function swap (b, n, m) {
8424 Buffer.prototype.swap16 = function swap16 () {
8425 var len = this.length
8426 if (len %
2 !==
0) {
8427 throw new RangeError('Buffer size must be a multiple of
16-bits')
8429 for (var i =
0; i < len; i +=
2) {
8430 swap(this, i, i +
1)
8435 Buffer.prototype.swap32 = function swap32 () {
8436 var len = this.length
8437 if (len %
4 !==
0) {
8438 throw new RangeError('Buffer size must be a multiple of
32-bits')
8440 for (var i =
0; i < len; i +=
4) {
8441 swap(this, i, i +
3)
8442 swap(this, i +
1, i +
2)
8447 Buffer.prototype.swap64 = function swap64 () {
8448 var len = this.length
8449 if (len %
8 !==
0) {
8450 throw new RangeError('Buffer size must be a multiple of
64-bits')
8452 for (var i =
0; i < len; i +=
8) {
8453 swap(this, i, i +
7)
8454 swap(this, i +
1, i +
6)
8455 swap(this, i +
2, i +
5)
8456 swap(this, i +
3, i +
4)
8461 Buffer.prototype.toString = function toString () {
8462 var length = this.length
8463 if (length ===
0) return ''
8464 if (arguments.length ===
0) return utf8Slice(this,
0, length)
8465 return slowToString.apply(this, arguments)
8468 Buffer.prototype.equals = function equals (b) {
8469 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
8470 if (this === b) return true
8471 return Buffer.compare(this, b) ===
0
8474 Buffer.prototype.inspect = function inspect () {
8476 var max = exports.INSPECT_MAX_BYTES
8477 if (this.length
> 0) {
8478 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
8479 if (this.length
> max) str += ' ... '
8481 return '
<Buffer ' + str + '
>'
8484 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
8485 if (!Buffer.isBuffer(target)) {
8486 throw new TypeError('Argument must be a Buffer')
8489 if (start === undefined) {
8492 if (end === undefined) {
8493 end = target ? target.length :
0
8495 if (thisStart === undefined) {
8498 if (thisEnd === undefined) {
8499 thisEnd = this.length
8502 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
8503 throw new RangeError('out of range index')
8506 if (thisStart
>= thisEnd && start
>= end) {
8509 if (thisStart
>= thisEnd) {
8521 if (this === target) return
0
8523 var x = thisEnd - thisStart
8525 var len = Math.min(x, y)
8527 var thisCopy = this.slice(thisStart, thisEnd)
8528 var targetCopy = target.slice(start, end)
8530 for (var i =
0; i < len; ++i) {
8531 if (thisCopy[i] !== targetCopy[i]) {
8538 if (x < y) return -
1
8543 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
8544 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
8547 // - buffer - a Buffer to search
8548 // - val - a string, Buffer, or number
8549 // - byteOffset - an index into `buffer`; will be clamped to an int32
8550 // - encoding - an optional encoding, relevant is val is a string
8551 // - dir - true for indexOf, false for lastIndexOf
8552 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
8553 // Empty buffer means no match
8554 if (buffer.length ===
0) return -
1
8556 // Normalize byteOffset
8557 if (typeof byteOffset === 'string') {
8558 encoding = byteOffset
8560 } else if (byteOffset
> 0x7fffffff) {
8561 byteOffset =
0x7fffffff
8562 } else if (byteOffset < -
0x80000000) {
8563 byteOffset = -
0x80000000
8565 byteOffset = +byteOffset // Coerce to Number.
8566 if (numberIsNaN(byteOffset)) {
8567 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
8568 byteOffset = dir ?
0 : (buffer.length -
1)
8571 // Normalize byteOffset: negative offsets start from the end of the buffer
8572 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
8573 if (byteOffset
>= buffer.length) {
8575 else byteOffset = buffer.length -
1
8576 } else if (byteOffset <
0) {
8577 if (dir) byteOffset =
0
8582 if (typeof val === 'string') {
8583 val = Buffer.from(val, encoding)
8586 // Finally, search either indexOf (if dir is true) or lastIndexOf
8587 if (Buffer.isBuffer(val)) {
8588 // Special case: looking for empty string/buffer always fails
8589 if (val.length ===
0) {
8592 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
8593 } else if (typeof val === 'number') {
8594 val = val &
0xFF // Search for a byte value [
0-
255]
8595 if (typeof Uint8Array.prototype.indexOf === 'function') {
8597 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
8599 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
8602 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
8605 throw new TypeError('val must be string, number or Buffer')
8608 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
8610 var arrLength = arr.length
8611 var valLength = val.length
8613 if (encoding !== undefined) {
8614 encoding = String(encoding).toLowerCase()
8615 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
8616 encoding === 'utf16le' || encoding === 'utf-
16le') {
8617 if (arr.length <
2 || val.length <
2) {
8627 function read (buf, i) {
8628 if (indexSize ===
1) {
8631 return buf.readUInt16BE(i * indexSize)
8638 for (i = byteOffset; i < arrLength; i++) {
8639 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
8640 if (foundIndex === -
1) foundIndex = i
8641 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
8643 if (foundIndex !== -
1) i -= i - foundIndex
8648 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
8649 for (i = byteOffset; i
>=
0; i--) {
8651 for (var j =
0; j < valLength; j++) {
8652 if (read(arr, i + j) !== read(val, j)) {
8664 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
8665 return this.indexOf(val, byteOffset, encoding) !== -
1
8668 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
8669 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
8672 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
8673 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
8676 function hexWrite (buf, string, offset, length) {
8677 offset = Number(offset) ||
0
8678 var remaining = buf.length - offset
8682 length = Number(length)
8683 if (length
> remaining) {
8688 // must be an even number of digits
8689 var strLen = string.length
8690 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
8692 if (length
> strLen /
2) {
8695 for (var i =
0; i < length; ++i) {
8696 var parsed = parseInt(string.substr(i *
2,
2),
16)
8697 if (numberIsNaN(parsed)) return i
8698 buf[offset + i] = parsed
8703 function utf8Write (buf, string, offset, length) {
8704 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
8707 function asciiWrite (buf, string, offset, length) {
8708 return blitBuffer(asciiToBytes(string), buf, offset, length)
8711 function latin1Write (buf, string, offset, length) {
8712 return asciiWrite(buf, string, offset, length)
8715 function base64Write (buf, string, offset, length) {
8716 return blitBuffer(base64ToBytes(string), buf, offset, length)
8719 function ucs2Write (buf, string, offset, length) {
8720 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
8723 Buffer.prototype.write = function write (string, offset, length, encoding) {
8724 // Buffer#write(string)
8725 if (offset === undefined) {
8727 length = this.length
8729 // Buffer#write(string, encoding)
8730 } else if (length === undefined && typeof offset === 'string') {
8732 length = this.length
8734 // Buffer#write(string, offset[, length][, encoding])
8735 } else if (isFinite(offset)) {
8736 offset = offset
>>> 0
8737 if (isFinite(length)) {
8738 length = length
>>> 0
8739 if (encoding === undefined) encoding = 'utf8'
8746 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
8750 var remaining = this.length - offset
8751 if (length === undefined || length
> remaining) length = remaining
8753 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
8754 throw new RangeError('Attempt to write outside buffer bounds')
8757 if (!encoding) encoding = 'utf8'
8759 var loweredCase = false
8763 return hexWrite(this, string, offset, length)
8767 return utf8Write(this, string, offset, length)
8770 return asciiWrite(this, string, offset, length)
8774 return latin1Write(this, string, offset, length)
8777 // Warning: maxLength not taken into account in base64Write
8778 return base64Write(this, string, offset, length)
8784 return ucs2Write(this, string, offset, length)
8787 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8788 encoding = ('' + encoding).toLowerCase()
8794 Buffer.prototype.toJSON = function toJSON () {
8797 data: Array.prototype.slice.call(this._arr || this,
0)
8801 function base64Slice (buf, start, end) {
8802 if (start ===
0 && end === buf.length) {
8803 return base64.fromByteArray(buf)
8805 return base64.fromByteArray(buf.slice(start, end))
8809 function utf8Slice (buf, start, end) {
8810 end = Math.min(buf.length, end)
8815 var firstByte = buf[i]
8816 var codePoint = null
8817 var bytesPerSequence = (firstByte
> 0xEF) ?
4
8818 : (firstByte
> 0xDF) ?
3
8819 : (firstByte
> 0xBF) ?
2
8822 if (i + bytesPerSequence <= end) {
8823 var secondByte, thirdByte, fourthByte, tempCodePoint
8825 switch (bytesPerSequence) {
8827 if (firstByte <
0x80) {
8828 codePoint = firstByte
8832 secondByte = buf[i +
1]
8833 if ((secondByte &
0xC0) ===
0x80) {
8834 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
8835 if (tempCodePoint
> 0x7F) {
8836 codePoint = tempCodePoint
8841 secondByte = buf[i +
1]
8842 thirdByte = buf[i +
2]
8843 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
8844 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
8845 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
8846 codePoint = tempCodePoint
8851 secondByte = buf[i +
1]
8852 thirdByte = buf[i +
2]
8853 fourthByte = buf[i +
3]
8854 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
8855 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
8856 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
8857 codePoint = tempCodePoint
8863 if (codePoint === null) {
8864 // we did not generate a valid codePoint so insert a
8865 // replacement char (U+FFFD) and advance only
1 byte
8867 bytesPerSequence =
1
8868 } else if (codePoint
> 0xFFFF) {
8869 // encode to utf16 (surrogate pair dance)
8870 codePoint -=
0x10000
8871 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
8872 codePoint =
0xDC00 | codePoint &
0x3FF
8876 i += bytesPerSequence
8879 return decodeCodePointsArray(res)
8882 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
8883 // the lowest limit is Chrome, with
0x10000 args.
8884 // We go
1 magnitude less, for safety
8885 var MAX_ARGUMENTS_LENGTH =
0x1000
8887 function decodeCodePointsArray (codePoints) {
8888 var len = codePoints.length
8889 if (len <= MAX_ARGUMENTS_LENGTH) {
8890 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
8893 // Decode in chunks to avoid
"call stack size exceeded".
8897 res += String.fromCharCode.apply(
8899 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
8905 function asciiSlice (buf, start, end) {
8907 end = Math.min(buf.length, end)
8909 for (var i = start; i < end; ++i) {
8910 ret += String.fromCharCode(buf[i] &
0x7F)
8915 function latin1Slice (buf, start, end) {
8917 end = Math.min(buf.length, end)
8919 for (var i = start; i < end; ++i) {
8920 ret += String.fromCharCode(buf[i])
8925 function hexSlice (buf, start, end) {
8926 var len = buf.length
8928 if (!start || start <
0) start =
0
8929 if (!end || end <
0 || end
> len) end = len
8932 for (var i = start; i < end; ++i) {
8933 out += toHex(buf[i])
8938 function utf16leSlice (buf, start, end) {
8939 var bytes = buf.slice(start, end)
8941 for (var i =
0; i < bytes.length; i +=
2) {
8942 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
8947 Buffer.prototype.slice = function slice (start, end) {
8948 var len = this.length
8950 end = end === undefined ? len : ~~end
8954 if (start <
0) start =
0
8955 } else if (start
> len) {
8961 if (end <
0) end =
0
8962 } else if (end
> len) {
8966 if (end < start) end = start
8968 var newBuf = this.subarray(start, end)
8969 // Return an augmented `Uint8Array` instance
8970 newBuf.__proto__ = Buffer.prototype
8975 * Need to make sure that buffer isn't trying to write out of bounds.
8977 function checkOffset (offset, ext, length) {
8978 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
8979 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
8982 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
8983 offset = offset
>>> 0
8984 byteLength = byteLength
>>> 0
8985 if (!noAssert) checkOffset(offset, byteLength, this.length)
8987 var val = this[offset]
8990 while (++i < byteLength && (mul *=
0x100)) {
8991 val += this[offset + i] * mul
8997 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
8998 offset = offset
>>> 0
8999 byteLength = byteLength
>>> 0
9001 checkOffset(offset, byteLength, this.length)
9004 var val = this[offset + --byteLength]
9006 while (byteLength
> 0 && (mul *=
0x100)) {
9007 val += this[offset + --byteLength] * mul
9013 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
9014 offset = offset
>>> 0
9015 if (!noAssert) checkOffset(offset,
1, this.length)
9019 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
9020 offset = offset
>>> 0
9021 if (!noAssert) checkOffset(offset,
2, this.length)
9022 return this[offset] | (this[offset +
1] <<
8)
9025 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
9026 offset = offset
>>> 0
9027 if (!noAssert) checkOffset(offset,
2, this.length)
9028 return (this[offset] <<
8) | this[offset +
1]
9031 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
9032 offset = offset
>>> 0
9033 if (!noAssert) checkOffset(offset,
4, this.length)
9035 return ((this[offset]) |
9036 (this[offset +
1] <<
8) |
9037 (this[offset +
2] <<
16)) +
9038 (this[offset +
3] *
0x1000000)
9041 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
9042 offset = offset
>>> 0
9043 if (!noAssert) checkOffset(offset,
4, this.length)
9045 return (this[offset] *
0x1000000) +
9046 ((this[offset +
1] <<
16) |
9047 (this[offset +
2] <<
8) |
9051 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
9052 offset = offset
>>> 0
9053 byteLength = byteLength
>>> 0
9054 if (!noAssert) checkOffset(offset, byteLength, this.length)
9056 var val = this[offset]
9059 while (++i < byteLength && (mul *=
0x100)) {
9060 val += this[offset + i] * mul
9064 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9069 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
9070 offset = offset
>>> 0
9071 byteLength = byteLength
>>> 0
9072 if (!noAssert) checkOffset(offset, byteLength, this.length)
9076 var val = this[offset + --i]
9077 while (i
> 0 && (mul *=
0x100)) {
9078 val += this[offset + --i] * mul
9082 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9087 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
9088 offset = offset
>>> 0
9089 if (!noAssert) checkOffset(offset,
1, this.length)
9090 if (!(this[offset] &
0x80)) return (this[offset])
9091 return ((
0xff - this[offset] +
1) * -
1)
9094 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
9095 offset = offset
>>> 0
9096 if (!noAssert) checkOffset(offset,
2, this.length)
9097 var val = this[offset] | (this[offset +
1] <<
8)
9098 return (val &
0x8000) ? val |
0xFFFF0000 : val
9101 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
9102 offset = offset
>>> 0
9103 if (!noAssert) checkOffset(offset,
2, this.length)
9104 var val = this[offset +
1] | (this[offset] <<
8)
9105 return (val &
0x8000) ? val |
0xFFFF0000 : val
9108 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
9109 offset = offset
>>> 0
9110 if (!noAssert) checkOffset(offset,
4, this.length)
9112 return (this[offset]) |
9113 (this[offset +
1] <<
8) |
9114 (this[offset +
2] <<
16) |
9115 (this[offset +
3] <<
24)
9118 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
9119 offset = offset
>>> 0
9120 if (!noAssert) checkOffset(offset,
4, this.length)
9122 return (this[offset] <<
24) |
9123 (this[offset +
1] <<
16) |
9124 (this[offset +
2] <<
8) |
9128 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
9129 offset = offset
>>> 0
9130 if (!noAssert) checkOffset(offset,
4, this.length)
9131 return ieee754.read(this, offset, true,
23,
4)
9134 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
9135 offset = offset
>>> 0
9136 if (!noAssert) checkOffset(offset,
4, this.length)
9137 return ieee754.read(this, offset, false,
23,
4)
9140 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
9141 offset = offset
>>> 0
9142 if (!noAssert) checkOffset(offset,
8, this.length)
9143 return ieee754.read(this, offset, true,
52,
8)
9146 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
9147 offset = offset
>>> 0
9148 if (!noAssert) checkOffset(offset,
8, this.length)
9149 return ieee754.read(this, offset, false,
52,
8)
9152 function checkInt (buf, value, offset, ext, max, min) {
9153 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
9154 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
9155 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9158 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
9160 offset = offset
>>> 0
9161 byteLength = byteLength
>>> 0
9163 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9164 checkInt(this, value, offset, byteLength, maxBytes,
0)
9169 this[offset] = value &
0xFF
9170 while (++i < byteLength && (mul *=
0x100)) {
9171 this[offset + i] = (value / mul) &
0xFF
9174 return offset + byteLength
9177 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
9179 offset = offset
>>> 0
9180 byteLength = byteLength
>>> 0
9182 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9183 checkInt(this, value, offset, byteLength, maxBytes,
0)
9186 var i = byteLength -
1
9188 this[offset + i] = value &
0xFF
9189 while (--i
>=
0 && (mul *=
0x100)) {
9190 this[offset + i] = (value / mul) &
0xFF
9193 return offset + byteLength
9196 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
9198 offset = offset
>>> 0
9199 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
9200 this[offset] = (value &
0xff)
9204 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
9206 offset = offset
>>> 0
9207 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9208 this[offset] = (value &
0xff)
9209 this[offset +
1] = (value
>>> 8)
9213 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
9215 offset = offset
>>> 0
9216 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9217 this[offset] = (value
>>> 8)
9218 this[offset +
1] = (value &
0xff)
9222 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
9224 offset = offset
>>> 0
9225 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9226 this[offset +
3] = (value
>>> 24)
9227 this[offset +
2] = (value
>>> 16)
9228 this[offset +
1] = (value
>>> 8)
9229 this[offset] = (value &
0xff)
9233 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
9235 offset = offset
>>> 0
9236 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9237 this[offset] = (value
>>> 24)
9238 this[offset +
1] = (value
>>> 16)
9239 this[offset +
2] = (value
>>> 8)
9240 this[offset +
3] = (value &
0xff)
9244 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
9246 offset = offset
>>> 0
9248 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9250 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9256 this[offset] = value &
0xFF
9257 while (++i < byteLength && (mul *=
0x100)) {
9258 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
9261 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9264 return offset + byteLength
9267 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
9269 offset = offset
>>> 0
9271 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9273 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9276 var i = byteLength -
1
9279 this[offset + i] = value &
0xFF
9280 while (--i
>=
0 && (mul *=
0x100)) {
9281 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
9284 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9287 return offset + byteLength
9290 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
9292 offset = offset
>>> 0
9293 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
9294 if (value <
0) value =
0xff + value +
1
9295 this[offset] = (value &
0xff)
9299 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
9301 offset = offset
>>> 0
9302 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9303 this[offset] = (value &
0xff)
9304 this[offset +
1] = (value
>>> 8)
9308 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
9310 offset = offset
>>> 0
9311 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9312 this[offset] = (value
>>> 8)
9313 this[offset +
1] = (value &
0xff)
9317 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
9319 offset = offset
>>> 0
9320 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9321 this[offset] = (value &
0xff)
9322 this[offset +
1] = (value
>>> 8)
9323 this[offset +
2] = (value
>>> 16)
9324 this[offset +
3] = (value
>>> 24)
9328 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
9330 offset = offset
>>> 0
9331 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9332 if (value <
0) value =
0xffffffff + value +
1
9333 this[offset] = (value
>>> 24)
9334 this[offset +
1] = (value
>>> 16)
9335 this[offset +
2] = (value
>>> 8)
9336 this[offset +
3] = (value &
0xff)
9340 function checkIEEE754 (buf, value, offset, ext, max, min) {
9341 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9342 if (offset <
0) throw new RangeError('Index out of range')
9345 function writeFloat (buf, value, offset, littleEndian, noAssert) {
9347 offset = offset
>>> 0
9349 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
9351 ieee754.write(buf, value, offset, littleEndian,
23,
4)
9355 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
9356 return writeFloat(this, value, offset, true, noAssert)
9359 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
9360 return writeFloat(this, value, offset, false, noAssert)
9363 function writeDouble (buf, value, offset, littleEndian, noAssert) {
9365 offset = offset
>>> 0
9367 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
9369 ieee754.write(buf, value, offset, littleEndian,
52,
8)
9373 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
9374 return writeDouble(this, value, offset, true, noAssert)
9377 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
9378 return writeDouble(this, value, offset, false, noAssert)
9381 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
9382 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
9383 if (!start) start =
0
9384 if (!end && end !==
0) end = this.length
9385 if (targetStart
>= target.length) targetStart = target.length
9386 if (!targetStart) targetStart =
0
9387 if (end
> 0 && end < start) end = start
9389 // Copy
0 bytes; we're done
9390 if (end === start) return
0
9391 if (target.length ===
0 || this.length ===
0) return
0
9393 // Fatal error conditions
9394 if (targetStart <
0) {
9395 throw new RangeError('targetStart out of bounds')
9397 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
9398 if (end <
0) throw new RangeError('sourceEnd out of bounds')
9401 if (end
> this.length) end = this.length
9402 if (target.length - targetStart < end - start) {
9403 end = target.length - targetStart + start
9406 var len = end - start
9409 if (this === target && start < targetStart && targetStart < end) {
9410 // descending copy from end
9411 for (i = len -
1; i
>=
0; --i) {
9412 target[i + targetStart] = this[i + start]
9414 } else if (len <
1000) {
9415 // ascending copy from start
9416 for (i =
0; i < len; ++i) {
9417 target[i + targetStart] = this[i + start]
9420 Uint8Array.prototype.set.call(
9422 this.subarray(start, start + len),
9431 // buffer.fill(number[, offset[, end]])
9432 // buffer.fill(buffer[, offset[, end]])
9433 // buffer.fill(string[, offset[, end]][, encoding])
9434 Buffer.prototype.fill = function fill (val, start, end, encoding) {
9435 // Handle string cases:
9436 if (typeof val === 'string') {
9437 if (typeof start === 'string') {
9441 } else if (typeof end === 'string') {
9445 if (val.length ===
1) {
9446 var code = val.charCodeAt(
0)
9451 if (encoding !== undefined && typeof encoding !== 'string') {
9452 throw new TypeError('encoding must be a string')
9454 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
9455 throw new TypeError('Unknown encoding: ' + encoding)
9457 } else if (typeof val === 'number') {
9461 // Invalid ranges are not set to a default, so can range check early.
9462 if (start <
0 || this.length < start || this.length < end) {
9463 throw new RangeError('Out of range index')
9471 end = end === undefined ? this.length : end
>>> 0
9476 if (typeof val === 'number') {
9477 for (i = start; i < end; ++i) {
9481 var bytes = Buffer.isBuffer(val)
9483 : new Buffer(val, encoding)
9484 var len = bytes.length
9485 for (i =
0; i < end - start; ++i) {
9486 this[i + start] = bytes[i % len]
9496 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
9498 function base64clean (str) {
9499 // Node strips out invalid characters like \n and \t from the string, base64-js does not
9500 str = str.trim().replace(INVALID_BASE64_RE, '')
9501 // Node converts strings with length <
2 to ''
9502 if (str.length <
2) return ''
9503 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
9504 while (str.length %
4 !==
0) {
9510 function toHex (n) {
9511 if (n <
16) return '
0' + n.toString(
16)
9512 return n.toString(
16)
9515 function utf8ToBytes (string, units) {
9516 units = units || Infinity
9518 var length = string.length
9519 var leadSurrogate = null
9522 for (var i =
0; i < length; ++i) {
9523 codePoint = string.charCodeAt(i)
9525 // is surrogate component
9526 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
9527 // last char was a lead
9528 if (!leadSurrogate) {
9530 if (codePoint
> 0xDBFF) {
9532 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9534 } else if (i +
1 === length) {
9536 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9541 leadSurrogate = codePoint
9547 if (codePoint <
0xDC00) {
9548 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9549 leadSurrogate = codePoint
9553 // valid surrogate pair
9554 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
9555 } else if (leadSurrogate) {
9556 // valid bmp char, but last char was a lead
9557 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9560 leadSurrogate = null
9563 if (codePoint <
0x80) {
9564 if ((units -=
1) <
0) break
9565 bytes.push(codePoint)
9566 } else if (codePoint <
0x800) {
9567 if ((units -=
2) <
0) break
9569 codePoint
>> 0x6 |
0xC0,
9570 codePoint &
0x3F |
0x80
9572 } else if (codePoint <
0x10000) {
9573 if ((units -=
3) <
0) break
9575 codePoint
>> 0xC |
0xE0,
9576 codePoint
>> 0x6 &
0x3F |
0x80,
9577 codePoint &
0x3F |
0x80
9579 } else if (codePoint <
0x110000) {
9580 if ((units -=
4) <
0) break
9582 codePoint
>> 0x12 |
0xF0,
9583 codePoint
>> 0xC &
0x3F |
0x80,
9584 codePoint
>> 0x6 &
0x3F |
0x80,
9585 codePoint &
0x3F |
0x80
9588 throw new Error('Invalid code point')
9595 function asciiToBytes (str) {
9597 for (var i =
0; i < str.length; ++i) {
9598 // Node's code seems to be doing this and not &
0x7F..
9599 byteArray.push(str.charCodeAt(i) &
0xFF)
9604 function utf16leToBytes (str, units) {
9607 for (var i =
0; i < str.length; ++i) {
9608 if ((units -=
2) <
0) break
9610 c = str.charCodeAt(i)
9620 function base64ToBytes (str) {
9621 return base64.toByteArray(base64clean(str))
9624 function blitBuffer (src, dst, offset, length) {
9625 for (var i =
0; i < length; ++i) {
9626 if ((i + offset
>= dst.length) || (i
>= src.length)) break
9627 dst[i + offset] = src[i]
9632 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
9633 function isArrayBufferView (obj) {
9634 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
9637 function numberIsNaN (obj) {
9638 return obj !== obj // eslint-disable-line no-self-compare
9641 },{"base64-js":
2,"ieee754":
7}],
5:[function(require,module,exports){
9643 // Copyright Joyent, Inc. and other Node contributors.
9645 // Permission is hereby granted, free of charge, to any person obtaining a
9646 // copy of this software and associated documentation files (the
9647 // "Software"), to deal in the Software without restriction, including
9648 // without limitation the rights to use, copy, modify, merge, publish,
9649 // distribute, sublicense, and/or sell copies of the Software, and to permit
9650 // persons to whom the Software is furnished to do so, subject to the
9651 // following conditions:
9653 // The above copyright notice and this permission notice shall be included
9654 // in all copies or substantial portions of the Software.
9656 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9657 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9658 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9659 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9660 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9661 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9662 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9664 // NOTE: These type checking functions intentionally don't use `instanceof`
9665 // because it is fragile and can be easily faked with `Object.create()`.
9667 function isArray(arg) {
9668 if (Array.isArray) {
9669 return Array.isArray(arg);
9671 return objectToString(arg) === '[object Array]';
9673 exports.isArray = isArray;
9675 function isBoolean(arg) {
9676 return typeof arg === 'boolean';
9678 exports.isBoolean = isBoolean;
9680 function isNull(arg) {
9681 return arg === null;
9683 exports.isNull = isNull;
9685 function isNullOrUndefined(arg) {
9688 exports.isNullOrUndefined = isNullOrUndefined;
9690 function isNumber(arg) {
9691 return typeof arg === 'number';
9693 exports.isNumber = isNumber;
9695 function isString(arg) {
9696 return typeof arg === 'string';
9698 exports.isString = isString;
9700 function isSymbol(arg) {
9701 return typeof arg === 'symbol';
9703 exports.isSymbol = isSymbol;
9705 function isUndefined(arg) {
9706 return arg === void
0;
9708 exports.isUndefined = isUndefined;
9710 function isRegExp(re) {
9711 return objectToString(re) === '[object RegExp]';
9713 exports.isRegExp = isRegExp;
9715 function isObject(arg) {
9716 return typeof arg === 'object' && arg !== null;
9718 exports.isObject = isObject;
9720 function isDate(d) {
9721 return objectToString(d) === '[object Date]';
9723 exports.isDate = isDate;
9725 function isError(e) {
9726 return (objectToString(e) === '[object Error]' || e instanceof Error);
9728 exports.isError = isError;
9730 function isFunction(arg) {
9731 return typeof arg === 'function';
9733 exports.isFunction = isFunction;
9735 function isPrimitive(arg) {
9736 return arg === null ||
9737 typeof arg === 'boolean' ||
9738 typeof arg === 'number' ||
9739 typeof arg === 'string' ||
9740 typeof arg === 'symbol' || // ES6 symbol
9741 typeof arg === 'undefined';
9743 exports.isPrimitive = isPrimitive;
9745 exports.isBuffer = Buffer.isBuffer;
9747 function objectToString(o) {
9748 return Object.prototype.toString.call(o);
9751 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
9752 },{"../../is-buffer/index.js":
9}],
6:[function(require,module,exports){
9753 // Copyright Joyent, Inc. and other Node contributors.
9755 // Permission is hereby granted, free of charge, to any person obtaining a
9756 // copy of this software and associated documentation files (the
9757 // "Software"), to deal in the Software without restriction, including
9758 // without limitation the rights to use, copy, modify, merge, publish,
9759 // distribute, sublicense, and/or sell copies of the Software, and to permit
9760 // persons to whom the Software is furnished to do so, subject to the
9761 // following conditions:
9763 // The above copyright notice and this permission notice shall be included
9764 // in all copies or substantial portions of the Software.
9766 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9767 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9768 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9769 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9770 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9771 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9772 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9774 function EventEmitter() {
9775 this._events = this._events || {};
9776 this._maxListeners = this._maxListeners || undefined;
9778 module.exports = EventEmitter;
9780 // Backwards-compat with node
0.10.x
9781 EventEmitter.EventEmitter = EventEmitter;
9783 EventEmitter.prototype._events = undefined;
9784 EventEmitter.prototype._maxListeners = undefined;
9786 // By default EventEmitters will print a warning if more than
10 listeners are
9787 // added to it. This is a useful default which helps finding memory leaks.
9788 EventEmitter.defaultMaxListeners =
10;
9790 // Obviously not all Emitters should be limited to
10. This function allows
9791 // that to be increased. Set to zero for unlimited.
9792 EventEmitter.prototype.setMaxListeners = function(n) {
9793 if (!isNumber(n) || n <
0 || isNaN(n))
9794 throw TypeError('n must be a positive number');
9795 this._maxListeners = n;
9799 EventEmitter.prototype.emit = function(type) {
9800 var er, handler, len, args, i, listeners;
9805 // If there is no 'error' event listener then throw.
9806 if (type === 'error') {
9807 if (!this._events.error ||
9808 (isObject(this._events.error) && !this._events.error.length)) {
9810 if (er instanceof Error) {
9811 throw er; // Unhandled 'error' event
9813 // At least give some kind of context to the user
9814 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
9821 handler = this._events[type];
9823 if (isUndefined(handler))
9826 if (isFunction(handler)) {
9827 switch (arguments.length) {
9833 handler.call(this, arguments[
1]);
9836 handler.call(this, arguments[
1], arguments[
2]);
9840 args = Array.prototype.slice.call(arguments,
1);
9841 handler.apply(this, args);
9843 } else if (isObject(handler)) {
9844 args = Array.prototype.slice.call(arguments,
1);
9845 listeners = handler.slice();
9846 len = listeners.length;
9847 for (i =
0; i < len; i++)
9848 listeners[i].apply(this, args);
9854 EventEmitter.prototype.addListener = function(type, listener) {
9857 if (!isFunction(listener))
9858 throw TypeError('listener must be a function');
9863 // To avoid recursion in the case that type === "newListener"! Before
9864 // adding it to the listeners, first emit "newListener".
9865 if (this._events.newListener)
9866 this.emit('newListener', type,
9867 isFunction(listener.listener) ?
9868 listener.listener : listener);
9870 if (!this._events[type])
9871 // Optimize the case of one listener. Don't need the extra array object.
9872 this._events[type] = listener;
9873 else if (isObject(this._events[type]))
9874 // If we've already got an array, just append.
9875 this._events[type].push(listener);
9877 // Adding the second element, need to change to array.
9878 this._events[type] = [this._events[type], listener];
9880 // Check for listener leak
9881 if (isObject(this._events[type]) && !this._events[type].warned) {
9882 if (!isUndefined(this._maxListeners)) {
9883 m = this._maxListeners;
9885 m = EventEmitter.defaultMaxListeners;
9888 if (m && m
> 0 && this._events[type].length
> m) {
9889 this._events[type].warned = true;
9890 console.error('(node) warning: possible EventEmitter memory ' +
9891 'leak detected. %d listeners added. ' +
9892 'Use emitter.setMaxListeners() to increase limit.',
9893 this._events[type].length);
9894 if (typeof console.trace === 'function') {
9895 // not supported in IE
10
9904 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
9906 EventEmitter.prototype.once = function(type, listener) {
9907 if (!isFunction(listener))
9908 throw TypeError('listener must be a function');
9913 this.removeListener(type, g);
9917 listener.apply(this, arguments);
9921 g.listener = listener;
9927 // emits a 'removeListener' event iff the listener was removed
9928 EventEmitter.prototype.removeListener = function(type, listener) {
9929 var list, position, length, i;
9931 if (!isFunction(listener))
9932 throw TypeError('listener must be a function');
9934 if (!this._events || !this._events[type])
9937 list = this._events[type];
9938 length = list.length;
9941 if (list === listener ||
9942 (isFunction(list.listener) && list.listener === listener)) {
9943 delete this._events[type];
9944 if (this._events.removeListener)
9945 this.emit('removeListener', type, listener);
9947 } else if (isObject(list)) {
9948 for (i = length; i--
> 0;) {
9949 if (list[i] === listener ||
9950 (list[i].listener && list[i].listener === listener)) {
9959 if (list.length ===
1) {
9961 delete this._events[type];
9963 list.splice(position,
1);
9966 if (this._events.removeListener)
9967 this.emit('removeListener', type, listener);
9973 EventEmitter.prototype.removeAllListeners = function(type) {
9979 // not listening for removeListener, no need to emit
9980 if (!this._events.removeListener) {
9981 if (arguments.length ===
0)
9983 else if (this._events[type])
9984 delete this._events[type];
9988 // emit removeListener for all listeners on all events
9989 if (arguments.length ===
0) {
9990 for (key in this._events) {
9991 if (key === 'removeListener') continue;
9992 this.removeAllListeners(key);
9994 this.removeAllListeners('removeListener');
9999 listeners = this._events[type];
10001 if (isFunction(listeners)) {
10002 this.removeListener(type, listeners);
10003 } else if (listeners) {
10005 while (listeners.length)
10006 this.removeListener(type, listeners[listeners.length -
1]);
10008 delete this._events[type];
10013 EventEmitter.prototype.listeners = function(type) {
10015 if (!this._events || !this._events[type])
10017 else if (isFunction(this._events[type]))
10018 ret = [this._events[type]];
10020 ret = this._events[type].slice();
10024 EventEmitter.prototype.listenerCount = function(type) {
10025 if (this._events) {
10026 var evlistener = this._events[type];
10028 if (isFunction(evlistener))
10030 else if (evlistener)
10031 return evlistener.length;
10036 EventEmitter.listenerCount = function(emitter, type) {
10037 return emitter.listenerCount(type);
10040 function isFunction(arg) {
10041 return typeof arg === 'function';
10044 function isNumber(arg) {
10045 return typeof arg === 'number';
10048 function isObject(arg) {
10049 return typeof arg === 'object' && arg !== null;
10052 function isUndefined(arg) {
10053 return arg === void
0;
10056 },{}],
7:[function(require,module,exports){
10057 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10059 var eLen = nBytes *
8 - mLen -
1
10060 var eMax = (
1 << eLen) -
1
10061 var eBias = eMax
>> 1
10063 var i = isLE ? (nBytes -
1) :
0
10064 var d = isLE ? -
1 :
1
10065 var s = buffer[offset + i]
10069 e = s & ((
1 << (-nBits)) -
1)
10072 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10074 m = e & ((
1 << (-nBits)) -
1)
10077 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10081 } else if (e === eMax) {
10082 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10084 m = m + Math.pow(
2, mLen)
10087 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10090 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10092 var eLen = nBytes *
8 - mLen -
1
10093 var eMax = (
1 << eLen) -
1
10094 var eBias = eMax
>> 1
10095 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10096 var i = isLE ?
0 : (nBytes -
1)
10097 var d = isLE ?
1 : -
1
10098 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10100 value = Math.abs(value)
10102 if (isNaN(value) || value === Infinity) {
10103 m = isNaN(value) ?
1 :
0
10106 e = Math.floor(Math.log(value) / Math.LN2)
10107 if (value * (c = Math.pow(
2, -e)) <
1) {
10111 if (e + eBias
>=
1) {
10114 value += rt * Math.pow(
2,
1 - eBias)
10116 if (value * c
>=
2) {
10121 if (e + eBias
>= eMax) {
10124 } else if (e + eBias
>=
1) {
10125 m = (value * c -
1) * Math.pow(
2, mLen)
10128 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10133 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10135 e = (e << mLen) | m
10137 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10139 buffer[offset + i - d] |= s *
128
10142 },{}],
8:[function(require,module,exports){
10143 if (typeof Object.create === 'function') {
10144 // implementation from standard node.js 'util' module
10145 module.exports = function inherits(ctor, superCtor) {
10146 ctor.super_ = superCtor
10147 ctor.prototype = Object.create(superCtor.prototype, {
10157 // old school shim for old browsers
10158 module.exports = function inherits(ctor, superCtor) {
10159 ctor.super_ = superCtor
10160 var TempCtor = function () {}
10161 TempCtor.prototype = superCtor.prototype
10162 ctor.prototype = new TempCtor()
10163 ctor.prototype.constructor = ctor
10167 },{}],
9:[function(require,module,exports){
10169 * Determine if an object is a Buffer
10171 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
10175 // The _isBuffer check is for Safari
5-
7 support, because it's missing
10176 // Object.prototype.constructor. Remove this eventually
10177 module.exports = function (obj) {
10178 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
10181 function isBuffer (obj) {
10182 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
10185 // For Node v0.10 support. Remove this eventually.
10186 function isSlowBuffer (obj) {
10187 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
10190 },{}],
10:[function(require,module,exports){
10191 var toString = {}.toString;
10193 module.exports = Array.isArray || function (arr) {
10194 return toString.call(arr) == '[object Array]';
10197 },{}],
11:[function(require,module,exports){
10198 (function (process){
10201 if (!process.version ||
10202 process.version.indexOf('v0.') ===
0 ||
10203 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
10204 module.exports = nextTick;
10206 module.exports = process.nextTick;
10209 function nextTick(fn, arg1, arg2, arg3) {
10210 if (typeof fn !== 'function') {
10211 throw new TypeError('"callback" argument must be a function');
10213 var len = arguments.length;
10218 return process.nextTick(fn);
10220 return process.nextTick(function afterTickOne() {
10221 fn.call(null, arg1);
10224 return process.nextTick(function afterTickTwo() {
10225 fn.call(null, arg1, arg2);
10228 return process.nextTick(function afterTickThree() {
10229 fn.call(null, arg1, arg2, arg3);
10232 args = new Array(len -
1);
10234 while (i < args.length) {
10235 args[i++] = arguments[i];
10237 return process.nextTick(function afterTick() {
10238 fn.apply(null, args);
10243 }).call(this,require('_process'))
10244 },{"_process":
12}],
12:[function(require,module,exports){
10245 // shim for using process in browser
10246 var process = module.exports = {};
10248 // cached from whatever global is present so that test runners that stub it
10249 // don't break things. But we need to wrap it in a try catch in case it is
10250 // wrapped in strict mode code which doesn't define any globals. It's inside a
10251 // function because try/catches deoptimize in certain engines.
10253 var cachedSetTimeout;
10254 var cachedClearTimeout;
10256 function defaultSetTimout() {
10257 throw new Error('setTimeout has not been defined');
10259 function defaultClearTimeout () {
10260 throw new Error('clearTimeout has not been defined');
10264 if (typeof setTimeout === 'function') {
10265 cachedSetTimeout = setTimeout;
10267 cachedSetTimeout = defaultSetTimout;
10270 cachedSetTimeout = defaultSetTimout;
10273 if (typeof clearTimeout === 'function') {
10274 cachedClearTimeout = clearTimeout;
10276 cachedClearTimeout = defaultClearTimeout;
10279 cachedClearTimeout = defaultClearTimeout;
10282 function runTimeout(fun) {
10283 if (cachedSetTimeout === setTimeout) {
10284 //normal enviroments in sane situations
10285 return setTimeout(fun,
0);
10287 // if setTimeout wasn't available but was latter defined
10288 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
10289 cachedSetTimeout = setTimeout;
10290 return setTimeout(fun,
0);
10293 // when when somebody has screwed with setTimeout but no I.E. maddness
10294 return cachedSetTimeout(fun,
0);
10297 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10298 return cachedSetTimeout.call(null, fun,
0);
10300 // 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
10301 return cachedSetTimeout.call(this, fun,
0);
10307 function runClearTimeout(marker) {
10308 if (cachedClearTimeout === clearTimeout) {
10309 //normal enviroments in sane situations
10310 return clearTimeout(marker);
10312 // if clearTimeout wasn't available but was latter defined
10313 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
10314 cachedClearTimeout = clearTimeout;
10315 return clearTimeout(marker);
10318 // when when somebody has screwed with setTimeout but no I.E. maddness
10319 return cachedClearTimeout(marker);
10322 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10323 return cachedClearTimeout.call(null, marker);
10325 // 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.
10326 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
10327 return cachedClearTimeout.call(this, marker);
10335 var draining = false;
10337 var queueIndex = -
1;
10339 function cleanUpNextTick() {
10340 if (!draining || !currentQueue) {
10344 if (currentQueue.length) {
10345 queue = currentQueue.concat(queue);
10349 if (queue.length) {
10354 function drainQueue() {
10358 var timeout = runTimeout(cleanUpNextTick);
10361 var len = queue.length;
10363 currentQueue = queue;
10365 while (++queueIndex < len) {
10366 if (currentQueue) {
10367 currentQueue[queueIndex].run();
10371 len = queue.length;
10373 currentQueue = null;
10375 runClearTimeout(timeout);
10378 process.nextTick = function (fun) {
10379 var args = new Array(arguments.length -
1);
10380 if (arguments.length
> 1) {
10381 for (var i =
1; i < arguments.length; i++) {
10382 args[i -
1] = arguments[i];
10385 queue.push(new Item(fun, args));
10386 if (queue.length ===
1 && !draining) {
10387 runTimeout(drainQueue);
10391 // v8 likes predictible objects
10392 function Item(fun, array) {
10394 this.array = array;
10396 Item.prototype.run = function () {
10397 this.fun.apply(null, this.array);
10399 process.title = 'browser';
10400 process.browser = true;
10403 process.version = ''; // empty string to avoid regexp issues
10404 process.versions = {};
10409 process.addListener = noop;
10410 process.once = noop;
10411 process.off = noop;
10412 process.removeListener = noop;
10413 process.removeAllListeners = noop;
10414 process.emit = noop;
10415 process.prependListener = noop;
10416 process.prependOnceListener = noop;
10418 process.listeners = function (name) { return [] }
10420 process.binding = function (name) {
10421 throw new Error('process.binding is not supported');
10424 process.cwd = function () { return '/' };
10425 process.chdir = function (dir) {
10426 throw new Error('process.chdir is not supported');
10428 process.umask = function() { return
0; };
10430 },{}],
13:[function(require,module,exports){
10431 module.exports = require('./lib/_stream_duplex.js');
10433 },{
"./lib/_stream_duplex.js":
14}],
14:[function(require,module,exports){
10434 // Copyright Joyent, Inc. and other Node contributors.
10436 // Permission is hereby granted, free of charge, to any person obtaining a
10437 // copy of this software and associated documentation files (the
10438 //
"Software"), to deal in the Software without restriction, including
10439 // without limitation the rights to use, copy, modify, merge, publish,
10440 // distribute, sublicense, and/or sell copies of the Software, and to permit
10441 // persons to whom the Software is furnished to do so, subject to the
10442 // following conditions:
10444 // The above copyright notice and this permission notice shall be included
10445 // in all copies or substantial portions of the Software.
10447 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10448 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10449 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10450 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10451 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10452 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10453 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10455 // a duplex stream is just a stream that is both readable and writable.
10456 // Since JS doesn't have multiple prototypal inheritance, this class
10457 // prototypally inherits from Readable, and then parasitically from
10464 var processNextTick = require('process-nextick-args');
10468 var objectKeys = Object.keys || function (obj) {
10470 for (var key in obj) {
10476 module.exports = Duplex;
10479 var util = require('core-util-is');
10480 util.inherits = require('inherits');
10483 var Readable = require('./_stream_readable');
10484 var Writable = require('./_stream_writable');
10486 util.inherits(Duplex, Readable);
10488 var keys = objectKeys(Writable.prototype);
10489 for (var v =
0; v < keys.length; v++) {
10490 var method = keys[v];
10491 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
10494 function Duplex(options) {
10495 if (!(this instanceof Duplex)) return new Duplex(options);
10497 Readable.call(this, options);
10498 Writable.call(this, options);
10500 if (options && options.readable === false) this.readable = false;
10502 if (options && options.writable === false) this.writable = false;
10504 this.allowHalfOpen = true;
10505 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
10507 this.once('end', onend);
10510 // the no-half-open enforcer
10512 // if we allow half-open state, or if the writable side ended,
10514 if (this.allowHalfOpen || this._writableState.ended) return;
10516 // no more data can be written.
10517 // But allow more writes to happen in this tick.
10518 processNextTick(onEndNT, this);
10521 function onEndNT(self) {
10525 Object.defineProperty(Duplex.prototype, 'destroyed', {
10527 if (this._readableState === undefined || this._writableState === undefined) {
10530 return this._readableState.destroyed && this._writableState.destroyed;
10532 set: function (value) {
10533 // we ignore the value if the stream
10534 // has not been initialized yet
10535 if (this._readableState === undefined || this._writableState === undefined) {
10539 // backward compatibility, the user is explicitly
10540 // managing destroyed
10541 this._readableState.destroyed = value;
10542 this._writableState.destroyed = value;
10546 Duplex.prototype._destroy = function (err, cb) {
10550 processNextTick(cb, err);
10553 function forEach(xs, f) {
10554 for (var i =
0, l = xs.length; i < l; i++) {
10558 },{"./_stream_readable":
16,"./_stream_writable":
18,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11}],
15:[function(require,module,exports){
10559 // Copyright Joyent, Inc. and other Node contributors.
10561 // Permission is hereby granted, free of charge, to any person obtaining a
10562 // copy of this software and associated documentation files (the
10563 // "Software"), to deal in the Software without restriction, including
10564 // without limitation the rights to use, copy, modify, merge, publish,
10565 // distribute, sublicense, and/or sell copies of the Software, and to permit
10566 // persons to whom the Software is furnished to do so, subject to the
10567 // following conditions:
10569 // The above copyright notice and this permission notice shall be included
10570 // in all copies or substantial portions of the Software.
10572 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10573 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10574 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10575 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10576 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10577 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10578 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10580 // a passthrough stream.
10581 // basically just the most minimal sort of Transform stream.
10582 // Every written chunk gets output as-is.
10586 module.exports = PassThrough;
10588 var Transform = require('./_stream_transform');
10591 var util = require('core-util-is');
10592 util.inherits = require('inherits');
10595 util.inherits(PassThrough, Transform);
10597 function PassThrough(options) {
10598 if (!(this instanceof PassThrough)) return new PassThrough(options);
10600 Transform.call(this, options);
10603 PassThrough.prototype._transform = function (chunk, encoding, cb) {
10606 },{"./_stream_transform":
17,"core-util-is":
5,"inherits":
8}],
16:[function(require,module,exports){
10607 (function (process,global){
10608 // Copyright Joyent, Inc. and other Node contributors.
10610 // Permission is hereby granted, free of charge, to any person obtaining a
10611 // copy of this software and associated documentation files (the
10612 // "Software"), to deal in the Software without restriction, including
10613 // without limitation the rights to use, copy, modify, merge, publish,
10614 // distribute, sublicense, and/or sell copies of the Software, and to permit
10615 // persons to whom the Software is furnished to do so, subject to the
10616 // following conditions:
10618 // The above copyright notice and this permission notice shall be included
10619 // in all copies or substantial portions of the Software.
10621 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10622 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10623 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10624 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10625 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10626 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10627 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10633 var processNextTick = require('process-nextick-args');
10636 module.exports = Readable;
10639 var isArray = require('isarray');
10646 Readable.ReadableState = ReadableState;
10649 var EE = require('events').EventEmitter;
10651 var EElistenerCount = function (emitter, type) {
10652 return emitter.listeners(type).length;
10657 var Stream = require('./internal/streams/stream');
10660 // TODO(bmeurer): Change this back to const once hole checks are
10661 // properly optimized away early in Ignition+TurboFan.
10663 var Buffer = require('safe-buffer').Buffer;
10664 var OurUint8Array = global.Uint8Array || function () {};
10665 function _uint8ArrayToBuffer(chunk) {
10666 return Buffer.from(chunk);
10668 function _isUint8Array(obj) {
10669 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
10674 var util = require('core-util-is');
10675 util.inherits = require('inherits');
10679 var debugUtil = require('util');
10680 var debug = void
0;
10681 if (debugUtil && debugUtil.debuglog) {
10682 debug = debugUtil.debuglog('stream');
10684 debug = function () {};
10688 var BufferList = require('./internal/streams/BufferList');
10689 var destroyImpl = require('./internal/streams/destroy');
10692 util.inherits(Readable, Stream);
10694 var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
10696 function prependListener(emitter, event, fn) {
10697 // Sadly this is not cacheable as some libraries bundle their own
10698 // event emitter implementation with them.
10699 if (typeof emitter.prependListener === 'function') {
10700 return emitter.prependListener(event, fn);
10702 // This is a hack to make sure that our error handler is attached before any
10703 // userland ones. NEVER DO THIS. This is here only because this code needs
10704 // to continue to work with older versions of Node.js that do not include
10705 // the prependListener() method. The goal is to eventually remove this hack.
10706 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]];
10710 function ReadableState(options, stream) {
10711 Duplex = Duplex || require('./_stream_duplex');
10713 options = options || {};
10715 // object stream flag. Used to make read(n) ignore n and to
10716 // make all the buffer merging and length checks go away
10717 this.objectMode = !!options.objectMode;
10719 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
10721 // the point at which it stops calling _read() to fill the buffer
10722 // Note:
0 is a valid value, means "don't call _read preemptively ever"
10723 var hwm = options.highWaterMark;
10724 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
10725 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
10728 this.highWaterMark = Math.floor(this.highWaterMark);
10730 // A linked list is used to store data chunks instead of an array because the
10731 // linked list can remove elements from the beginning faster than
10733 this.buffer = new BufferList();
10736 this.pipesCount =
0;
10737 this.flowing = null;
10738 this.ended = false;
10739 this.endEmitted = false;
10740 this.reading = false;
10742 // a flag to be able to tell if the event 'readable'/'data' is emitted
10743 // immediately, or on a later tick. We set this to true at first, because
10744 // any actions that shouldn't happen until "later" should generally also
10745 // not happen before the first read call.
10748 // whenever we return null, then we set a flag to say
10749 // that we're awaiting a 'readable' event emission.
10750 this.needReadable = false;
10751 this.emittedReadable = false;
10752 this.readableListening = false;
10753 this.resumeScheduled = false;
10755 // has it been destroyed
10756 this.destroyed = false;
10758 // Crypto is kind of old and crusty. Historically, its default string
10759 // encoding is 'binary' so we have to make this configurable.
10760 // Everything else in the universe uses 'utf8', though.
10761 this.defaultEncoding = options.defaultEncoding || 'utf8';
10763 // the number of writers that are awaiting a drain event in .pipe()s
10764 this.awaitDrain =
0;
10766 // if true, a maybeReadMore has been scheduled
10767 this.readingMore = false;
10769 this.decoder = null;
10770 this.encoding = null;
10771 if (options.encoding) {
10772 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10773 this.decoder = new StringDecoder(options.encoding);
10774 this.encoding = options.encoding;
10778 function Readable(options) {
10779 Duplex = Duplex || require('./_stream_duplex');
10781 if (!(this instanceof Readable)) return new Readable(options);
10783 this._readableState = new ReadableState(options, this);
10786 this.readable = true;
10789 if (typeof options.read === 'function') this._read = options.read;
10791 if (typeof options.destroy === 'function') this._destroy = options.destroy;
10797 Object.defineProperty(Readable.prototype, 'destroyed', {
10799 if (this._readableState === undefined) {
10802 return this._readableState.destroyed;
10804 set: function (value) {
10805 // we ignore the value if the stream
10806 // has not been initialized yet
10807 if (!this._readableState) {
10811 // backward compatibility, the user is explicitly
10812 // managing destroyed
10813 this._readableState.destroyed = value;
10817 Readable.prototype.destroy = destroyImpl.destroy;
10818 Readable.prototype._undestroy = destroyImpl.undestroy;
10819 Readable.prototype._destroy = function (err, cb) {
10824 // Manually shove something into the read() buffer.
10825 // This returns true if the highWaterMark has not been hit yet,
10826 // similar to how Writable.write() returns true if you should
10827 // write() some more.
10828 Readable.prototype.push = function (chunk, encoding) {
10829 var state = this._readableState;
10830 var skipChunkCheck;
10832 if (!state.objectMode) {
10833 if (typeof chunk === 'string') {
10834 encoding = encoding || state.defaultEncoding;
10835 if (encoding !== state.encoding) {
10836 chunk = Buffer.from(chunk, encoding);
10839 skipChunkCheck = true;
10842 skipChunkCheck = true;
10845 return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
10848 // Unshift should *always* be something directly out of read()
10849 Readable.prototype.unshift = function (chunk) {
10850 return readableAddChunk(this, chunk, null, true, false);
10853 function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
10854 var state = stream._readableState;
10855 if (chunk === null) {
10856 state.reading = false;
10857 onEofChunk(stream, state);
10860 if (!skipChunkCheck) er = chunkInvalid(state, chunk);
10862 stream.emit('error', er);
10863 } else if (state.objectMode || chunk && chunk.length
> 0) {
10864 if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
10865 chunk = _uint8ArrayToBuffer(chunk);
10869 if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
10870 } else if (state.ended) {
10871 stream.emit('error', new Error('stream.push() after EOF'));
10873 state.reading = false;
10874 if (state.decoder && !encoding) {
10875 chunk = state.decoder.write(chunk);
10876 if (state.objectMode || chunk.length !==
0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
10878 addChunk(stream, state, chunk, false);
10881 } else if (!addToFront) {
10882 state.reading = false;
10886 return needMoreData(state);
10889 function addChunk(stream, state, chunk, addToFront) {
10890 if (state.flowing && state.length ===
0 && !state.sync) {
10891 stream.emit('data', chunk);
10894 // update the buffer info.
10895 state.length += state.objectMode ?
1 : chunk.length;
10896 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
10898 if (state.needReadable) emitReadable(stream);
10900 maybeReadMore(stream, state);
10903 function chunkInvalid(state, chunk) {
10905 if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
10906 er = new TypeError('Invalid non-string/buffer chunk');
10911 // if it's past the high water mark, we can push in some more.
10912 // Also, if we have no data yet, we can stand some
10913 // more bytes. This is to work around cases where hwm=
0,
10914 // such as the repl. Also, if the push() triggered a
10915 // readable event, and the user called read(largeNumber) such that
10916 // needReadable was set, then we ought to push more, so that another
10917 // 'readable' event will be triggered.
10918 function needMoreData(state) {
10919 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
10922 Readable.prototype.isPaused = function () {
10923 return this._readableState.flowing === false;
10926 // backwards compatibility.
10927 Readable.prototype.setEncoding = function (enc) {
10928 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10929 this._readableState.decoder = new StringDecoder(enc);
10930 this._readableState.encoding = enc;
10934 // Don't raise the hwm
> 8MB
10935 var MAX_HWM =
0x800000;
10936 function computeNewHighWaterMark(n) {
10937 if (n
>= MAX_HWM) {
10940 // Get the next highest power of
2 to prevent increasing hwm excessively in
10953 // This function is designed to be inlinable, so please take care when making
10954 // changes to the function body.
10955 function howMuchToRead(n, state) {
10956 if (n <=
0 || state.length ===
0 && state.ended) return
0;
10957 if (state.objectMode) return
1;
10959 // Only flow one buffer at a time
10960 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
10962 // If we're asking for more than the current hwm, then raise the hwm.
10963 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
10964 if (n <= state.length) return n;
10965 // Don't have enough
10966 if (!state.ended) {
10967 state.needReadable = true;
10970 return state.length;
10973 // you can override either this method, or the async _read(n) below.
10974 Readable.prototype.read = function (n) {
10976 n = parseInt(n,
10);
10977 var state = this._readableState;
10980 if (n !==
0) state.emittedReadable = false;
10982 // if we're doing read(
0) to trigger a readable event, but we
10983 // already have a bunch of data in the buffer, then just trigger
10984 // the 'readable' event and move on.
10985 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
10986 debug('read: emitReadable', state.length, state.ended);
10987 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
10991 n = howMuchToRead(n, state);
10993 // if we've ended, and we're now clear, then finish it up.
10994 if (n ===
0 && state.ended) {
10995 if (state.length ===
0) endReadable(this);
10999 // All the actual chunk generation logic needs to be
11000 // *below* the call to _read. The reason is that in certain
11001 // synthetic stream cases, such as passthrough streams, _read
11002 // may be a completely synchronous operation which may change
11003 // the state of the read buffer, providing enough data when
11004 // before there was *not* enough.
11006 // So, the steps are:
11007 //
1. Figure out what the state of things will be after we do
11008 // a read from the buffer.
11010 //
2. If that resulting state will trigger a _read, then call _read.
11011 // Note that this may be asynchronous, or synchronous. Yes, it is
11012 // deeply ugly to write APIs this way, but that still doesn't mean
11013 // that the Readable class should behave improperly, as streams are
11014 // designed to be sync/async agnostic.
11015 // Take note if the _read call is sync or async (ie, if the read call
11016 // has returned yet), so that we know whether or not it's safe to emit
11019 //
3. Actually pull the requested chunks out of the buffer and return.
11021 // if we need a readable event, then we need to do some reading.
11022 var doRead = state.needReadable;
11023 debug('need readable', doRead);
11025 // if we currently have less than the highWaterMark, then also read some
11026 if (state.length ===
0 || state.length - n < state.highWaterMark) {
11028 debug('length less than watermark', doRead);
11031 // however, if we've ended, then there's no point, and if we're already
11032 // reading, then it's unnecessary.
11033 if (state.ended || state.reading) {
11035 debug('reading or ended', doRead);
11036 } else if (doRead) {
11038 state.reading = true;
11040 // if the length is currently zero, then we *need* a readable event.
11041 if (state.length ===
0) state.needReadable = true;
11042 // call internal read method
11043 this._read(state.highWaterMark);
11044 state.sync = false;
11045 // If _read pushed data synchronously, then `reading` will be false,
11046 // and we need to re-evaluate how much data we can return to the user.
11047 if (!state.reading) n = howMuchToRead(nOrig, state);
11051 if (n
> 0) ret = fromList(n, state);else ret = null;
11053 if (ret === null) {
11054 state.needReadable = true;
11060 if (state.length ===
0) {
11061 // If we have nothing in the buffer, then we want to know
11062 // as soon as we *do* get something into the buffer.
11063 if (!state.ended) state.needReadable = true;
11065 // If we tried to read() past the EOF, then emit end on the next tick.
11066 if (nOrig !== n && state.ended) endReadable(this);
11069 if (ret !== null) this.emit('data', ret);
11074 function onEofChunk(stream, state) {
11075 if (state.ended) return;
11076 if (state.decoder) {
11077 var chunk = state.decoder.end();
11078 if (chunk && chunk.length) {
11079 state.buffer.push(chunk);
11080 state.length += state.objectMode ?
1 : chunk.length;
11083 state.ended = true;
11085 // emit 'readable' now to make sure it gets picked up.
11086 emitReadable(stream);
11089 // Don't emit readable right away in sync mode, because this can trigger
11090 // another read() call =
> stack overflow. This way, it might trigger
11091 // a nextTick recursion warning, but that's not so bad.
11092 function emitReadable(stream) {
11093 var state = stream._readableState;
11094 state.needReadable = false;
11095 if (!state.emittedReadable) {
11096 debug('emitReadable', state.flowing);
11097 state.emittedReadable = true;
11098 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
11102 function emitReadable_(stream) {
11103 debug('emit readable');
11104 stream.emit('readable');
11108 // at this point, the user has presumably seen the 'readable' event,
11109 // and called read() to consume some data. that may have triggered
11110 // in turn another _read(n) call, in which case reading = true if
11111 // it's in progress.
11112 // However, if we're not ended, or reading, and the length < hwm,
11113 // then go ahead and try to read some more preemptively.
11114 function maybeReadMore(stream, state) {
11115 if (!state.readingMore) {
11116 state.readingMore = true;
11117 processNextTick(maybeReadMore_, stream, state);
11121 function maybeReadMore_(stream, state) {
11122 var len = state.length;
11123 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
11124 debug('maybeReadMore read
0');
11126 if (len === state.length)
11127 // didn't get any data, stop spinning.
11128 break;else len = state.length;
11130 state.readingMore = false;
11133 // abstract method. to be overridden in specific implementation classes.
11134 // call cb(er, data) where data is <= n in length.
11135 // for virtual (non-string, non-buffer) streams, "length" is somewhat
11136 // arbitrary, and perhaps not very meaningful.
11137 Readable.prototype._read = function (n) {
11138 this.emit('error', new Error('_read() is not implemented'));
11141 Readable.prototype.pipe = function (dest, pipeOpts) {
11143 var state = this._readableState;
11145 switch (state.pipesCount) {
11147 state.pipes = dest;
11150 state.pipes = [state.pipes, dest];
11153 state.pipes.push(dest);
11156 state.pipesCount +=
1;
11157 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
11159 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
11161 var endFn = doEnd ? onend : unpipe;
11162 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
11164 dest.on('unpipe', onunpipe);
11165 function onunpipe(readable, unpipeInfo) {
11167 if (readable === src) {
11168 if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
11169 unpipeInfo.hasUnpiped = true;
11180 // when the dest drains, it reduces the awaitDrain counter
11181 // on the source. This would be more elegant with a .once()
11182 // handler in flow(), but adding and removing repeatedly is
11184 var ondrain = pipeOnDrain(src);
11185 dest.on('drain', ondrain);
11187 var cleanedUp = false;
11188 function cleanup() {
11190 // cleanup event handlers once the pipe is broken
11191 dest.removeListener('close', onclose);
11192 dest.removeListener('finish', onfinish);
11193 dest.removeListener('drain', ondrain);
11194 dest.removeListener('error', onerror);
11195 dest.removeListener('unpipe', onunpipe);
11196 src.removeListener('end', onend);
11197 src.removeListener('end', unpipe);
11198 src.removeListener('data', ondata);
11202 // if the reader is waiting for a drain event from this
11203 // specific writer, then it would cause it to never start
11205 // So, if this is awaiting a drain, then we just call it now.
11206 // If we don't know, then assume that we are waiting for one.
11207 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
11210 // If the user pushes more data while we're writing to dest then we'll end up
11211 // in ondata again. However, we only want to increase awaitDrain once because
11212 // dest will only emit one 'drain' event for the multiple writes.
11213 // =
> Introduce a guard on increasing awaitDrain.
11214 var increasedAwaitDrain = false;
11215 src.on('data', ondata);
11216 function ondata(chunk) {
11218 increasedAwaitDrain = false;
11219 var ret = dest.write(chunk);
11220 if (false === ret && !increasedAwaitDrain) {
11221 // If the user unpiped during `dest.write()`, it is possible
11222 // to get stuck in a permanently paused state if that write
11223 // also returned false.
11224 // =
> Check whether `dest` is still a piping destination.
11225 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
11226 debug('false write response, pause', src._readableState.awaitDrain);
11227 src._readableState.awaitDrain++;
11228 increasedAwaitDrain = true;
11234 // if the dest has an error, then stop piping into it.
11235 // however, don't suppress the throwing behavior for this.
11236 function onerror(er) {
11237 debug('onerror', er);
11239 dest.removeListener('error', onerror);
11240 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
11243 // Make sure our error handler is attached before userland ones.
11244 prependListener(dest, 'error', onerror);
11246 // Both close and finish should trigger unpipe, but only once.
11247 function onclose() {
11248 dest.removeListener('finish', onfinish);
11251 dest.once('close', onclose);
11252 function onfinish() {
11254 dest.removeListener('close', onclose);
11257 dest.once('finish', onfinish);
11259 function unpipe() {
11264 // tell the dest that it's being piped to
11265 dest.emit('pipe', src);
11267 // start the flow if it hasn't been started already.
11268 if (!state.flowing) {
11269 debug('pipe resume');
11276 function pipeOnDrain(src) {
11277 return function () {
11278 var state = src._readableState;
11279 debug('pipeOnDrain', state.awaitDrain);
11280 if (state.awaitDrain) state.awaitDrain--;
11281 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
11282 state.flowing = true;
11288 Readable.prototype.unpipe = function (dest) {
11289 var state = this._readableState;
11290 var unpipeInfo = { hasUnpiped: false };
11292 // if we're not piping anywhere, then do nothing.
11293 if (state.pipesCount ===
0) return this;
11295 // just one destination. most common case.
11296 if (state.pipesCount ===
1) {
11297 // passed in one, but it's not the right one.
11298 if (dest && dest !== state.pipes) return this;
11300 if (!dest) dest = state.pipes;
11303 state.pipes = null;
11304 state.pipesCount =
0;
11305 state.flowing = false;
11306 if (dest) dest.emit('unpipe', this, unpipeInfo);
11310 // slow case. multiple pipe destinations.
11314 var dests = state.pipes;
11315 var len = state.pipesCount;
11316 state.pipes = null;
11317 state.pipesCount =
0;
11318 state.flowing = false;
11320 for (var i =
0; i < len; i++) {
11321 dests[i].emit('unpipe', this, unpipeInfo);
11325 // try to find the right one.
11326 var index = indexOf(state.pipes, dest);
11327 if (index === -
1) return this;
11329 state.pipes.splice(index,
1);
11330 state.pipesCount -=
1;
11331 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
11333 dest.emit('unpipe', this, unpipeInfo);
11338 // set up data events if they are asked for
11339 // Ensure readable listeners eventually get something
11340 Readable.prototype.on = function (ev, fn) {
11341 var res = Stream.prototype.on.call(this, ev, fn);
11343 if (ev === 'data') {
11344 // Start flowing on next tick if stream isn't explicitly paused
11345 if (this._readableState.flowing !== false) this.resume();
11346 } else if (ev === 'readable') {
11347 var state = this._readableState;
11348 if (!state.endEmitted && !state.readableListening) {
11349 state.readableListening = state.needReadable = true;
11350 state.emittedReadable = false;
11351 if (!state.reading) {
11352 processNextTick(nReadingNextTick, this);
11353 } else if (state.length) {
11354 emitReadable(this);
11361 Readable.prototype.addListener = Readable.prototype.on;
11363 function nReadingNextTick(self) {
11364 debug('readable nexttick read
0');
11368 // pause() and resume() are remnants of the legacy readable stream API
11369 // If the user uses them, then switch into old mode.
11370 Readable.prototype.resume = function () {
11371 var state = this._readableState;
11372 if (!state.flowing) {
11374 state.flowing = true;
11375 resume(this, state);
11380 function resume(stream, state) {
11381 if (!state.resumeScheduled) {
11382 state.resumeScheduled = true;
11383 processNextTick(resume_, stream, state);
11387 function resume_(stream, state) {
11388 if (!state.reading) {
11389 debug('resume read
0');
11393 state.resumeScheduled = false;
11394 state.awaitDrain =
0;
11395 stream.emit('resume');
11397 if (state.flowing && !state.reading) stream.read(
0);
11400 Readable.prototype.pause = function () {
11401 debug('call pause flowing=%j', this._readableState.flowing);
11402 if (false !== this._readableState.flowing) {
11404 this._readableState.flowing = false;
11405 this.emit('pause');
11410 function flow(stream) {
11411 var state = stream._readableState;
11412 debug('flow', state.flowing);
11413 while (state.flowing && stream.read() !== null) {}
11416 // wrap an old-style stream as the async data source.
11417 // This is *not* part of the readable stream interface.
11418 // It is an ugly unfortunate mess of history.
11419 Readable.prototype.wrap = function (stream) {
11420 var state = this._readableState;
11421 var paused = false;
11424 stream.on('end', function () {
11425 debug('wrapped end');
11426 if (state.decoder && !state.ended) {
11427 var chunk = state.decoder.end();
11428 if (chunk && chunk.length) self.push(chunk);
11434 stream.on('data', function (chunk) {
11435 debug('wrapped data');
11436 if (state.decoder) chunk = state.decoder.write(chunk);
11438 // don't skip over falsy values in objectMode
11439 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
11441 var ret = self.push(chunk);
11448 // proxy all the other methods.
11449 // important when wrapping filters and duplexes.
11450 for (var i in stream) {
11451 if (this[i] === undefined && typeof stream[i] === 'function') {
11452 this[i] = function (method) {
11453 return function () {
11454 return stream[method].apply(stream, arguments);
11460 // proxy certain important events.
11461 for (var n =
0; n < kProxyEvents.length; n++) {
11462 stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
11465 // when we try to consume some more bytes, simply unpause the
11466 // underlying stream.
11467 self._read = function (n) {
11468 debug('wrapped _read', n);
11478 // exposed for testing purposes only.
11479 Readable._fromList = fromList;
11481 // Pluck off n bytes from an array of buffers.
11482 // Length is the combined lengths of all the buffers in the list.
11483 // This function is designed to be inlinable, so please take care when making
11484 // changes to the function body.
11485 function fromList(n, state) {
11486 // nothing buffered
11487 if (state.length ===
0) return null;
11490 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
11491 // read it all, truncate the list
11492 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);
11493 state.buffer.clear();
11495 // read part of list
11496 ret = fromListPartial(n, state.buffer, state.decoder);
11502 // Extracts only enough buffered data to satisfy the amount requested.
11503 // This function is designed to be inlinable, so please take care when making
11504 // changes to the function body.
11505 function fromListPartial(n, list, hasStrings) {
11507 if (n < list.head.data.length) {
11508 // slice is the same for buffers and strings
11509 ret = list.head.data.slice(
0, n);
11510 list.head.data = list.head.data.slice(n);
11511 } else if (n === list.head.data.length) {
11512 // first chunk is a perfect match
11513 ret = list.shift();
11515 // result spans more than one buffer
11516 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
11521 // Copies a specified amount of characters from the list of buffered data
11523 // This function is designed to be inlinable, so please take care when making
11524 // changes to the function body.
11525 function copyFromBufferString(n, list) {
11530 while (p = p.next) {
11532 var nb = n
> str.length ? str.length : n;
11533 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
11536 if (nb === str.length) {
11538 if (p.next) list.head = p.next;else list.head = list.tail = null;
11541 p.data = str.slice(nb);
11551 // Copies a specified amount of bytes from the list of buffered data chunks.
11552 // This function is designed to be inlinable, so please take care when making
11553 // changes to the function body.
11554 function copyFromBuffer(n, list) {
11555 var ret = Buffer.allocUnsafe(n);
11559 n -= p.data.length;
11560 while (p = p.next) {
11562 var nb = n
> buf.length ? buf.length : n;
11563 buf.copy(ret, ret.length - n,
0, nb);
11566 if (nb === buf.length) {
11568 if (p.next) list.head = p.next;else list.head = list.tail = null;
11571 p.data = buf.slice(nb);
11581 function endReadable(stream) {
11582 var state = stream._readableState;
11584 // If we get here before consuming all the bytes, then that is a
11585 // bug in node. Should never happen.
11586 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
11588 if (!state.endEmitted) {
11589 state.ended = true;
11590 processNextTick(endReadableNT, state, stream);
11594 function endReadableNT(state, stream) {
11595 // Check that we didn't get one last unshift.
11596 if (!state.endEmitted && state.length ===
0) {
11597 state.endEmitted = true;
11598 stream.readable = false;
11599 stream.emit('end');
11603 function forEach(xs, f) {
11604 for (var i =
0, l = xs.length; i < l; i++) {
11609 function indexOf(xs, x) {
11610 for (var i =
0, l = xs.length; i < l; i++) {
11611 if (xs[i] === x) return i;
11615 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11616 },{
"./_stream_duplex":
14,
"./internal/streams/BufferList":
19,
"./internal/streams/destroy":
20,
"./internal/streams/stream":
21,
"_process":
12,
"core-util-is":
5,
"events":
6,
"inherits":
8,
"isarray":
10,
"process-nextick-args":
11,
"safe-buffer":
26,
"string_decoder/":
28,
"util":
3}],
17:[function(require,module,exports){
11617 // Copyright Joyent, Inc. and other Node contributors.
11619 // Permission is hereby granted, free of charge, to any person obtaining a
11620 // copy of this software and associated documentation files (the
11621 //
"Software"), to deal in the Software without restriction, including
11622 // without limitation the rights to use, copy, modify, merge, publish,
11623 // distribute, sublicense, and/or sell copies of the Software, and to permit
11624 // persons to whom the Software is furnished to do so, subject to the
11625 // following conditions:
11627 // The above copyright notice and this permission notice shall be included
11628 // in all copies or substantial portions of the Software.
11630 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11631 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11632 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11633 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11634 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11635 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11636 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11638 // a transform stream is a readable/writable stream where you do
11639 // something with the data. Sometimes it's called a
"filter",
11640 // but that's not a great name for it, since that implies a thing where
11641 // some bits pass through, and others are simply ignored. (That would
11642 // be a valid example of a transform, of course.)
11644 // While the output is causally related to the input, it's not a
11645 // necessarily symmetric or synchronous transformation. For example,
11646 // a zlib stream might take multiple plain-text writes(), and then
11647 // emit a single compressed chunk some time in the future.
11649 // Here's how this works:
11651 // The Transform stream has all the aspects of the readable and writable
11652 // stream classes. When you write(chunk), that calls _write(chunk,cb)
11653 // internally, and returns false if there's a lot of pending writes
11654 // buffered up. When you call read(), that calls _read(n) until
11655 // there's enough pending readable data buffered up.
11657 // In a transform stream, the written data is placed in a buffer. When
11658 // _read(n) is called, it transforms the queued up data, calling the
11659 // buffered _write cb's as it consumes chunks. If consuming a single
11660 // written chunk would result in multiple output chunks, then the first
11661 // outputted bit calls the readcb, and subsequent chunks just go into
11662 // the read buffer, and will cause it to emit 'readable' if necessary.
11664 // This way, back-pressure is actually determined by the reading side,
11665 // since _read has to be called to start processing a new chunk. However,
11666 // a pathological inflate type of transform can cause excessive buffering
11667 // here. For example, imagine a stream where every byte of input is
11668 // interpreted as an integer from
0-
255, and then results in that many
11669 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
11670 //
1kb of data being output. In this case, you could write a very small
11671 // amount of input, and end up with a very large amount of output. In
11672 // such a pathological inflating mechanism, there'd be no way to tell
11673 // the system to stop doing the transform. A single
4MB write could
11674 // cause the system to run out of memory.
11676 // However, even in such a pathological case, only a single written chunk
11677 // would be consumed, and then the rest would wait (un-transformed) until
11678 // the results of the previous transformed chunk were consumed.
11682 module.exports = Transform;
11684 var Duplex = require('./_stream_duplex');
11687 var util = require('core-util-is');
11688 util.inherits = require('inherits');
11691 util.inherits(Transform, Duplex);
11693 function TransformState(stream) {
11694 this.afterTransform = function (er, data) {
11695 return afterTransform(stream, er, data);
11698 this.needTransform = false;
11699 this.transforming = false;
11700 this.writecb = null;
11701 this.writechunk = null;
11702 this.writeencoding = null;
11705 function afterTransform(stream, er, data) {
11706 var ts = stream._transformState;
11707 ts.transforming = false;
11709 var cb = ts.writecb;
11712 return stream.emit('error', new Error('write callback called multiple times'));
11715 ts.writechunk = null;
11718 if (data !== null && data !== undefined) stream.push(data);
11722 var rs = stream._readableState;
11723 rs.reading = false;
11724 if (rs.needReadable || rs.length < rs.highWaterMark) {
11725 stream._read(rs.highWaterMark);
11729 function Transform(options) {
11730 if (!(this instanceof Transform)) return new Transform(options);
11732 Duplex.call(this, options);
11734 this._transformState = new TransformState(this);
11738 // start out asking for a readable event once data is transformed.
11739 this._readableState.needReadable = true;
11741 // we have implemented the _read method, and done the other things
11742 // that Readable wants before the first _read call, so unset the
11743 // sync guard flag.
11744 this._readableState.sync = false;
11747 if (typeof options.transform === 'function') this._transform = options.transform;
11749 if (typeof options.flush === 'function') this._flush = options.flush;
11752 // When the writable side finishes, then flush out anything remaining.
11753 this.once('prefinish', function () {
11754 if (typeof this._flush === 'function') this._flush(function (er, data) {
11755 done(stream, er, data);
11756 });else done(stream);
11760 Transform.prototype.push = function (chunk, encoding) {
11761 this._transformState.needTransform = false;
11762 return Duplex.prototype.push.call(this, chunk, encoding);
11765 // This is the part where you do stuff!
11766 // override this function in implementation classes.
11767 // 'chunk' is an input chunk.
11769 // Call `push(newChunk)` to pass along transformed output
11770 // to the readable side. You may call 'push' zero or more times.
11772 // Call `cb(err)` when you are done with this chunk. If you pass
11773 // an error, then that'll put the hurt on the whole operation. If you
11774 // never call cb(), then you'll never get another chunk.
11775 Transform.prototype._transform = function (chunk, encoding, cb) {
11776 throw new Error('_transform() is not implemented');
11779 Transform.prototype._write = function (chunk, encoding, cb) {
11780 var ts = this._transformState;
11782 ts.writechunk = chunk;
11783 ts.writeencoding = encoding;
11784 if (!ts.transforming) {
11785 var rs = this._readableState;
11786 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
11790 // Doesn't matter what the args are here.
11791 // _transform does all the work.
11792 // That we got here means that the readable side wants more data.
11793 Transform.prototype._read = function (n) {
11794 var ts = this._transformState;
11796 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
11797 ts.transforming = true;
11798 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
11800 // mark that we need a transform, so that any data that comes in
11801 // will get processed, now that we've asked for it.
11802 ts.needTransform = true;
11806 Transform.prototype._destroy = function (err, cb) {
11809 Duplex.prototype._destroy.call(this, err, function (err2) {
11811 _this.emit('close');
11815 function done(stream, er, data) {
11816 if (er) return stream.emit('error', er);
11818 if (data !== null && data !== undefined) stream.push(data);
11820 // if there's nothing in the write buffer, then that means
11821 // that nothing more will ever be provided
11822 var ws = stream._writableState;
11823 var ts = stream._transformState;
11825 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
11827 if (ts.transforming) throw new Error('Calling transform done when still transforming');
11829 return stream.push(null);
11831 },{"./_stream_duplex":
14,"core-util-is":
5,"inherits":
8}],
18:[function(require,module,exports){
11832 (function (process,global){
11833 // Copyright Joyent, Inc. and other Node contributors.
11835 // Permission is hereby granted, free of charge, to any person obtaining a
11836 // copy of this software and associated documentation files (the
11837 // "Software"), to deal in the Software without restriction, including
11838 // without limitation the rights to use, copy, modify, merge, publish,
11839 // distribute, sublicense, and/or sell copies of the Software, and to permit
11840 // persons to whom the Software is furnished to do so, subject to the
11841 // following conditions:
11843 // The above copyright notice and this permission notice shall be included
11844 // in all copies or substantial portions of the Software.
11846 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11847 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11848 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11849 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11850 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11851 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11852 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11854 // A bit simpler than readable streams.
11855 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
11856 // the drain event emission and buffering.
11862 var processNextTick = require('process-nextick-args');
11865 module.exports = Writable;
11867 /*
<replacement> */
11868 function WriteReq(chunk, encoding, cb) {
11869 this.chunk = chunk;
11870 this.encoding = encoding;
11871 this.callback = cb;
11875 // It seems a linked list but it is not
11876 // there will be only
2 of these for each stream
11877 function CorkedRequest(state) {
11882 this.finish = function () {
11883 onCorkedFinish(_this, state);
11886 /*
</replacement> */
11889 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
11896 Writable.WritableState = WritableState;
11899 var util = require('core-util-is');
11900 util.inherits = require('inherits');
11904 var internalUtil = {
11905 deprecate: require('util-deprecate')
11910 var Stream = require('./internal/streams/stream');
11914 var Buffer = require('safe-buffer').Buffer;
11915 var OurUint8Array = global.Uint8Array || function () {};
11916 function _uint8ArrayToBuffer(chunk) {
11917 return Buffer.from(chunk);
11919 function _isUint8Array(obj) {
11920 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
11924 var destroyImpl = require('./internal/streams/destroy');
11926 util.inherits(Writable, Stream);
11930 function WritableState(options, stream) {
11931 Duplex = Duplex || require('./_stream_duplex');
11933 options = options || {};
11935 // object stream flag to indicate whether or not this stream
11936 // contains buffers or objects.
11937 this.objectMode = !!options.objectMode;
11939 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
11941 // the point at which write() starts returning false
11942 // Note:
0 is a valid value, means that we always return false if
11943 // the entire buffer is not flushed immediately on write()
11944 var hwm = options.highWaterMark;
11945 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
11946 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
11949 this.highWaterMark = Math.floor(this.highWaterMark);
11951 // if _final has been called
11952 this.finalCalled = false;
11954 // drain event flag.
11955 this.needDrain = false;
11956 // at the start of calling end()
11957 this.ending = false;
11958 // when end() has been called, and returned
11959 this.ended = false;
11960 // when 'finish' is emitted
11961 this.finished = false;
11963 // has it been destroyed
11964 this.destroyed = false;
11966 // should we decode strings into buffers before passing to _write?
11967 // this is here so that some node-core streams can optimize string
11968 // handling at a lower level.
11969 var noDecode = options.decodeStrings === false;
11970 this.decodeStrings = !noDecode;
11972 // Crypto is kind of old and crusty. Historically, its default string
11973 // encoding is 'binary' so we have to make this configurable.
11974 // Everything else in the universe uses 'utf8', though.
11975 this.defaultEncoding = options.defaultEncoding || 'utf8';
11977 // not an actual buffer we keep track of, but a measurement
11978 // of how much we're waiting to get pushed to some underlying
11982 // a flag to see when we're in the middle of a write.
11983 this.writing = false;
11985 // when true all writes will be buffered until .uncork() call
11988 // a flag to be able to tell if the onwrite cb is called immediately,
11989 // or on a later tick. We set this to true at first, because any
11990 // actions that shouldn't happen until "later" should generally also
11991 // not happen before the first write call.
11994 // a flag to know if we're processing previously buffered items, which
11995 // may call the _write() callback in the same tick, so that we don't
11996 // end up in an overlapped onwrite situation.
11997 this.bufferProcessing = false;
11999 // the callback that's passed to _write(chunk,cb)
12000 this.onwrite = function (er) {
12001 onwrite(stream, er);
12004 // the callback that the user supplies to write(chunk,encoding,cb)
12005 this.writecb = null;
12007 // the amount that is being written when _write is called.
12010 this.bufferedRequest = null;
12011 this.lastBufferedRequest = null;
12013 // number of pending user-supplied write callbacks
12014 // this must be
0 before 'finish' can be emitted
12015 this.pendingcb =
0;
12017 // emit prefinish if the only thing we're waiting for is _write cbs
12018 // This is relevant for synchronous Transform streams
12019 this.prefinished = false;
12021 // True if the error was already emitted and should not be thrown again
12022 this.errorEmitted = false;
12024 // count buffered requests
12025 this.bufferedRequestCount =
0;
12027 // allocate the first CorkedRequest, there is always
12028 // one allocated and free to use, and we maintain at most two
12029 this.corkedRequestsFree = new CorkedRequest(this);
12032 WritableState.prototype.getBuffer = function getBuffer() {
12033 var current = this.bufferedRequest;
12037 current = current.next;
12044 Object.defineProperty(WritableState.prototype, 'buffer', {
12045 get: internalUtil.deprecate(function () {
12046 return this.getBuffer();
12047 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
12052 // Test _writableState for inheritance to account for Duplex streams,
12053 // whose prototype chain only points to Readable.
12054 var realHasInstance;
12055 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
12056 realHasInstance = Function.prototype[Symbol.hasInstance];
12057 Object.defineProperty(Writable, Symbol.hasInstance, {
12058 value: function (object) {
12059 if (realHasInstance.call(this, object)) return true;
12061 return object && object._writableState instanceof WritableState;
12065 realHasInstance = function (object) {
12066 return object instanceof this;
12070 function Writable(options) {
12071 Duplex = Duplex || require('./_stream_duplex');
12073 // Writable ctor is applied to Duplexes, too.
12074 // `realHasInstance` is necessary because using plain `instanceof`
12075 // would return false, as no `_writableState` property is attached.
12077 // Trying to use the custom `instanceof` for Writable here will also break the
12078 // Node.js LazyTransform implementation, which has a non-trivial getter for
12079 // `_writableState` that would lead to infinite recursion.
12080 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
12081 return new Writable(options);
12084 this._writableState = new WritableState(options, this);
12087 this.writable = true;
12090 if (typeof options.write === 'function') this._write = options.write;
12092 if (typeof options.writev === 'function') this._writev = options.writev;
12094 if (typeof options.destroy === 'function') this._destroy = options.destroy;
12096 if (typeof options.final === 'function') this._final = options.final;
12102 // Otherwise people can pipe Writable streams, which is just wrong.
12103 Writable.prototype.pipe = function () {
12104 this.emit('error', new Error('Cannot pipe, not readable'));
12107 function writeAfterEnd(stream, cb) {
12108 var er = new Error('write after end');
12109 // TODO: defer error events consistently everywhere, not just the cb
12110 stream.emit('error', er);
12111 processNextTick(cb, er);
12114 // Checks that a user-supplied chunk is valid, especially for the particular
12115 // mode the stream is in. Currently this means that `null` is never accepted
12116 // and undefined/non-string values are only allowed in object mode.
12117 function validChunk(stream, state, chunk, cb) {
12121 if (chunk === null) {
12122 er = new TypeError('May not write null values to stream');
12123 } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
12124 er = new TypeError('Invalid non-string/buffer chunk');
12127 stream.emit('error', er);
12128 processNextTick(cb, er);
12134 Writable.prototype.write = function (chunk, encoding, cb) {
12135 var state = this._writableState;
12137 var isBuf = _isUint8Array(chunk) && !state.objectMode;
12139 if (isBuf && !Buffer.isBuffer(chunk)) {
12140 chunk = _uint8ArrayToBuffer(chunk);
12143 if (typeof encoding === 'function') {
12148 if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
12150 if (typeof cb !== 'function') cb = nop;
12152 if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
12154 ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
12160 Writable.prototype.cork = function () {
12161 var state = this._writableState;
12166 Writable.prototype.uncork = function () {
12167 var state = this._writableState;
12169 if (state.corked) {
12172 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
12176 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
12177 // node::ParseEncoding() requires lower case.
12178 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
12179 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);
12180 this._writableState.defaultEncoding = encoding;
12184 function decodeChunk(state, chunk, encoding) {
12185 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
12186 chunk = Buffer.from(chunk, encoding);
12191 // if we're already writing something, then just put this
12192 // in the queue, and wait our turn. Otherwise, call _write
12193 // If we return false, then we need a drain event, so set that flag.
12194 function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
12196 var newChunk = decodeChunk(state, chunk, encoding);
12197 if (chunk !== newChunk) {
12199 encoding = 'buffer';
12203 var len = state.objectMode ?
1 : chunk.length;
12205 state.length += len;
12207 var ret = state.length < state.highWaterMark;
12208 // we must ensure that previous needDrain will not be reset to false.
12209 if (!ret) state.needDrain = true;
12211 if (state.writing || state.corked) {
12212 var last = state.lastBufferedRequest;
12213 state.lastBufferedRequest = {
12215 encoding: encoding,
12221 last.next = state.lastBufferedRequest;
12223 state.bufferedRequest = state.lastBufferedRequest;
12225 state.bufferedRequestCount +=
1;
12227 doWrite(stream, state, false, len, chunk, encoding, cb);
12233 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
12234 state.writelen = len;
12235 state.writecb = cb;
12236 state.writing = true;
12238 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
12239 state.sync = false;
12242 function onwriteError(stream, state, sync, er, cb) {
12246 // defer the callback if we are being called synchronously
12247 // to avoid piling up things on the stack
12248 processNextTick(cb, er);
12249 // this can emit finish, and it will always happen
12251 processNextTick(finishMaybe, stream, state);
12252 stream._writableState.errorEmitted = true;
12253 stream.emit('error', er);
12255 // the caller expect this to happen before if
12258 stream._writableState.errorEmitted = true;
12259 stream.emit('error', er);
12260 // this can emit finish, but finish must
12261 // always follow error
12262 finishMaybe(stream, state);
12266 function onwriteStateUpdate(state) {
12267 state.writing = false;
12268 state.writecb = null;
12269 state.length -= state.writelen;
12270 state.writelen =
0;
12273 function onwrite(stream, er) {
12274 var state = stream._writableState;
12275 var sync = state.sync;
12276 var cb = state.writecb;
12278 onwriteStateUpdate(state);
12280 if (er) onwriteError(stream, state, sync, er, cb);else {
12281 // Check if we're actually ready to finish, but don't emit yet
12282 var finished = needFinish(state);
12284 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
12285 clearBuffer(stream, state);
12290 asyncWrite(afterWrite, stream, state, finished, cb);
12293 afterWrite(stream, state, finished, cb);
12298 function afterWrite(stream, state, finished, cb) {
12299 if (!finished) onwriteDrain(stream, state);
12302 finishMaybe(stream, state);
12305 // Must force callback to be called on nextTick, so that we don't
12306 // emit 'drain' before the write() consumer gets the 'false' return
12307 // value, and has a chance to attach a 'drain' listener.
12308 function onwriteDrain(stream, state) {
12309 if (state.length ===
0 && state.needDrain) {
12310 state.needDrain = false;
12311 stream.emit('drain');
12315 // if there's something in the buffer waiting, then process it
12316 function clearBuffer(stream, state) {
12317 state.bufferProcessing = true;
12318 var entry = state.bufferedRequest;
12320 if (stream._writev && entry && entry.next) {
12321 // Fast case, write everything using _writev()
12322 var l = state.bufferedRequestCount;
12323 var buffer = new Array(l);
12324 var holder = state.corkedRequestsFree;
12325 holder.entry = entry;
12328 var allBuffers = true;
12330 buffer[count] = entry;
12331 if (!entry.isBuf) allBuffers = false;
12332 entry = entry.next;
12335 buffer.allBuffers = allBuffers;
12337 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
12339 // doWrite is almost always async, defer these to save a bit of time
12340 // as the hot path ends with doWrite
12342 state.lastBufferedRequest = null;
12344 state.corkedRequestsFree = holder.next;
12345 holder.next = null;
12347 state.corkedRequestsFree = new CorkedRequest(state);
12350 // Slow case, write chunks one-by-one
12352 var chunk = entry.chunk;
12353 var encoding = entry.encoding;
12354 var cb = entry.callback;
12355 var len = state.objectMode ?
1 : chunk.length;
12357 doWrite(stream, state, false, len, chunk, encoding, cb);
12358 entry = entry.next;
12359 // if we didn't call the onwrite immediately, then
12360 // it means that we need to wait until it does.
12361 // also, that means that the chunk and cb are currently
12362 // being processed, so move the buffer counter past them.
12363 if (state.writing) {
12368 if (entry === null) state.lastBufferedRequest = null;
12371 state.bufferedRequestCount =
0;
12372 state.bufferedRequest = entry;
12373 state.bufferProcessing = false;
12376 Writable.prototype._write = function (chunk, encoding, cb) {
12377 cb(new Error('_write() is not implemented'));
12380 Writable.prototype._writev = null;
12382 Writable.prototype.end = function (chunk, encoding, cb) {
12383 var state = this._writableState;
12385 if (typeof chunk === 'function') {
12389 } else if (typeof encoding === 'function') {
12394 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
12396 // .end() fully uncorks
12397 if (state.corked) {
12402 // ignore unnecessary end() calls.
12403 if (!state.ending && !state.finished) endWritable(this, state, cb);
12406 function needFinish(state) {
12407 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
12409 function callFinal(stream, state) {
12410 stream._final(function (err) {
12413 stream.emit('error', err);
12415 state.prefinished = true;
12416 stream.emit('prefinish');
12417 finishMaybe(stream, state);
12420 function prefinish(stream, state) {
12421 if (!state.prefinished && !state.finalCalled) {
12422 if (typeof stream._final === 'function') {
12424 state.finalCalled = true;
12425 processNextTick(callFinal, stream, state);
12427 state.prefinished = true;
12428 stream.emit('prefinish');
12433 function finishMaybe(stream, state) {
12434 var need = needFinish(state);
12436 prefinish(stream, state);
12437 if (state.pendingcb ===
0) {
12438 state.finished = true;
12439 stream.emit('finish');
12445 function endWritable(stream, state, cb) {
12446 state.ending = true;
12447 finishMaybe(stream, state);
12449 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
12451 state.ended = true;
12452 stream.writable = false;
12455 function onCorkedFinish(corkReq, state, err) {
12456 var entry = corkReq.entry;
12457 corkReq.entry = null;
12459 var cb = entry.callback;
12462 entry = entry.next;
12464 if (state.corkedRequestsFree) {
12465 state.corkedRequestsFree.next = corkReq;
12467 state.corkedRequestsFree = corkReq;
12471 Object.defineProperty(Writable.prototype, 'destroyed', {
12473 if (this._writableState === undefined) {
12476 return this._writableState.destroyed;
12478 set: function (value) {
12479 // we ignore the value if the stream
12480 // has not been initialized yet
12481 if (!this._writableState) {
12485 // backward compatibility, the user is explicitly
12486 // managing destroyed
12487 this._writableState.destroyed = value;
12491 Writable.prototype.destroy = destroyImpl.destroy;
12492 Writable.prototype._undestroy = destroyImpl.undestroy;
12493 Writable.prototype._destroy = function (err, cb) {
12497 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12498 },{"./_stream_duplex":
14,"./internal/streams/destroy":
20,"./internal/streams/stream":
21,"_process":
12,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11,"safe-buffer":
26,"util-deprecate":
29}],
19:[function(require,module,exports){
12503 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12505 var Buffer = require('safe-buffer').Buffer;
12508 function copyBuffer(src, target, offset) {
12509 src.copy(target, offset);
12512 module.exports = function () {
12513 function BufferList() {
12514 _classCallCheck(this, BufferList);
12521 BufferList.prototype.push = function push(v) {
12522 var entry = { data: v, next: null };
12523 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
12528 BufferList.prototype.unshift = function unshift(v) {
12529 var entry = { data: v, next: this.head };
12530 if (this.length ===
0) this.tail = entry;
12535 BufferList.prototype.shift = function shift() {
12536 if (this.length ===
0) return;
12537 var ret = this.head.data;
12538 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
12543 BufferList.prototype.clear = function clear() {
12544 this.head = this.tail = null;
12548 BufferList.prototype.join = function join(s) {
12549 if (this.length ===
0) return '';
12551 var ret = '' + p.data;
12552 while (p = p.next) {
12557 BufferList.prototype.concat = function concat(n) {
12558 if (this.length ===
0) return Buffer.alloc(
0);
12559 if (this.length ===
1) return this.head.data;
12560 var ret = Buffer.allocUnsafe(n
>>> 0);
12564 copyBuffer(p.data, ret, i);
12565 i += p.data.length;
12573 },{
"safe-buffer":
26}],
20:[function(require,module,exports){
12578 var processNextTick = require('process-nextick-args');
12581 // undocumented cb() API, needed for core, not for public API
12582 function destroy(err, cb) {
12585 var readableDestroyed = this._readableState && this._readableState.destroyed;
12586 var writableDestroyed = this._writableState && this._writableState.destroyed;
12588 if (readableDestroyed || writableDestroyed) {
12591 } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
12592 processNextTick(emitErrorNT, this, err);
12597 // we set destroyed to true before firing error callbacks in order
12598 // to make it re-entrance safe in case destroy() is called within callbacks
12600 if (this._readableState) {
12601 this._readableState.destroyed = true;
12604 // if this is a duplex stream mark the writable part as destroyed as well
12605 if (this._writableState) {
12606 this._writableState.destroyed = true;
12609 this._destroy(err || null, function (err) {
12611 processNextTick(emitErrorNT, _this, err);
12612 if (_this._writableState) {
12613 _this._writableState.errorEmitted = true;
12621 function undestroy() {
12622 if (this._readableState) {
12623 this._readableState.destroyed = false;
12624 this._readableState.reading = false;
12625 this._readableState.ended = false;
12626 this._readableState.endEmitted = false;
12629 if (this._writableState) {
12630 this._writableState.destroyed = false;
12631 this._writableState.ended = false;
12632 this._writableState.ending = false;
12633 this._writableState.finished = false;
12634 this._writableState.errorEmitted = false;
12638 function emitErrorNT(self, err) {
12639 self.emit('error', err);
12644 undestroy: undestroy
12646 },{"process-nextick-args":
11}],
21:[function(require,module,exports){
12647 module.exports = require('events').EventEmitter;
12649 },{"events":
6}],
22:[function(require,module,exports){
12650 module.exports = require('./readable').PassThrough
12652 },{"./readable":
23}],
23:[function(require,module,exports){
12653 exports = module.exports = require('./lib/_stream_readable.js');
12654 exports.Stream = exports;
12655 exports.Readable = exports;
12656 exports.Writable = require('./lib/_stream_writable.js');
12657 exports.Duplex = require('./lib/_stream_duplex.js');
12658 exports.Transform = require('./lib/_stream_transform.js');
12659 exports.PassThrough = require('./lib/_stream_passthrough.js');
12661 },{"./lib/_stream_duplex.js":
14,"./lib/_stream_passthrough.js":
15,"./lib/_stream_readable.js":
16,"./lib/_stream_transform.js":
17,"./lib/_stream_writable.js":
18}],
24:[function(require,module,exports){
12662 module.exports = require('./readable').Transform
12664 },{"./readable":
23}],
25:[function(require,module,exports){
12665 module.exports = require('./lib/_stream_writable.js');
12667 },{"./lib/_stream_writable.js":
18}],
26:[function(require,module,exports){
12668 /* eslint-disable node/no-deprecated-api */
12669 var buffer = require('buffer')
12670 var Buffer = buffer.Buffer
12672 // alternative to using Object.keys for old browsers
12673 function copyProps (src, dst) {
12674 for (var key in src) {
12675 dst[key] = src[key]
12678 if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
12679 module.exports = buffer
12681 // Copy properties from require('buffer')
12682 copyProps(buffer, exports)
12683 exports.Buffer = SafeBuffer
12686 function SafeBuffer (arg, encodingOrOffset, length) {
12687 return Buffer(arg, encodingOrOffset, length)
12690 // Copy static methods from Buffer
12691 copyProps(Buffer, SafeBuffer)
12693 SafeBuffer.from = function (arg, encodingOrOffset, length) {
12694 if (typeof arg === 'number') {
12695 throw new TypeError('Argument must not be a number')
12697 return Buffer(arg, encodingOrOffset, length)
12700 SafeBuffer.alloc = function (size, fill, encoding) {
12701 if (typeof size !== 'number') {
12702 throw new TypeError('Argument must be a number')
12704 var buf = Buffer(size)
12705 if (fill !== undefined) {
12706 if (typeof encoding === 'string') {
12707 buf.fill(fill, encoding)
12717 SafeBuffer.allocUnsafe = function (size) {
12718 if (typeof size !== 'number') {
12719 throw new TypeError('Argument must be a number')
12721 return Buffer(size)
12724 SafeBuffer.allocUnsafeSlow = function (size) {
12725 if (typeof size !== 'number') {
12726 throw new TypeError('Argument must be a number')
12728 return buffer.SlowBuffer(size)
12731 },{"buffer":
4}],
27:[function(require,module,exports){
12732 // Copyright Joyent, Inc. and other Node contributors.
12734 // Permission is hereby granted, free of charge, to any person obtaining a
12735 // copy of this software and associated documentation files (the
12736 // "Software"), to deal in the Software without restriction, including
12737 // without limitation the rights to use, copy, modify, merge, publish,
12738 // distribute, sublicense, and/or sell copies of the Software, and to permit
12739 // persons to whom the Software is furnished to do so, subject to the
12740 // following conditions:
12742 // The above copyright notice and this permission notice shall be included
12743 // in all copies or substantial portions of the Software.
12745 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12746 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12747 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12748 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12749 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12750 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12751 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12753 module.exports = Stream;
12755 var EE = require('events').EventEmitter;
12756 var inherits = require('inherits');
12758 inherits(Stream, EE);
12759 Stream.Readable = require('readable-stream/readable.js');
12760 Stream.Writable = require('readable-stream/writable.js');
12761 Stream.Duplex = require('readable-stream/duplex.js');
12762 Stream.Transform = require('readable-stream/transform.js');
12763 Stream.PassThrough = require('readable-stream/passthrough.js');
12765 // Backwards-compat with node
0.4.x
12766 Stream.Stream = Stream;
12770 // old-style streams. Note that the pipe method (the only relevant
12771 // part of this class) is overridden in the Readable class.
12773 function Stream() {
12777 Stream.prototype.pipe = function(dest, options) {
12780 function ondata(chunk) {
12781 if (dest.writable) {
12782 if (false === dest.write(chunk) && source.pause) {
12788 source.on('data', ondata);
12790 function ondrain() {
12791 if (source.readable && source.resume) {
12796 dest.on('drain', ondrain);
12798 // If the 'end' option is not supplied, dest.end() will be called when
12799 // source gets the 'end' or 'close' events. Only dest.end() once.
12800 if (!dest._isStdio && (!options || options.end !== false)) {
12801 source.on('end', onend);
12802 source.on('close', onclose);
12805 var didOnEnd = false;
12807 if (didOnEnd) return;
12814 function onclose() {
12815 if (didOnEnd) return;
12818 if (typeof dest.destroy === 'function') dest.destroy();
12821 // don't leave dangling pipes when there are errors.
12822 function onerror(er) {
12824 if (EE.listenerCount(this, 'error') ===
0) {
12825 throw er; // Unhandled stream error in pipe.
12829 source.on('error', onerror);
12830 dest.on('error', onerror);
12832 // remove all the event listeners that were added.
12833 function cleanup() {
12834 source.removeListener('data', ondata);
12835 dest.removeListener('drain', ondrain);
12837 source.removeListener('end', onend);
12838 source.removeListener('close', onclose);
12840 source.removeListener('error', onerror);
12841 dest.removeListener('error', onerror);
12843 source.removeListener('end', cleanup);
12844 source.removeListener('close', cleanup);
12846 dest.removeListener('close', cleanup);
12849 source.on('end', cleanup);
12850 source.on('close', cleanup);
12852 dest.on('close', cleanup);
12854 dest.emit('pipe', source);
12856 // Allow for unix-like usage: A.pipe(B).pipe(C)
12860 },{"events":
6,"inherits":
8,"readable-stream/duplex.js":
13,"readable-stream/passthrough.js":
22,"readable-stream/readable.js":
23,"readable-stream/transform.js":
24,"readable-stream/writable.js":
25}],
28:[function(require,module,exports){
12863 var Buffer = require('safe-buffer').Buffer;
12865 var isEncoding = Buffer.isEncoding || function (encoding) {
12866 encoding = '' + encoding;
12867 switch (encoding && encoding.toLowerCase()) {
12868 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':
12875 function _normalizeEncoding(enc) {
12876 if (!enc) return 'utf8';
12896 if (retried) return; // undefined
12897 enc = ('' + enc).toLowerCase();
12903 // Do not cache `Buffer.isEncoding` when checking encoding names as some
12904 // modules monkey-patch it to support additional encodings
12905 function normalizeEncoding(enc) {
12906 var nenc = _normalizeEncoding(enc);
12907 if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
12908 return nenc || enc;
12911 // StringDecoder provides an interface for efficiently splitting a series of
12912 // buffers into a series of JS strings without breaking apart multi-byte
12914 exports.StringDecoder = StringDecoder;
12915 function StringDecoder(encoding) {
12916 this.encoding = normalizeEncoding(encoding);
12918 switch (this.encoding) {
12920 this.text = utf16Text;
12921 this.end = utf16End;
12925 this.fillLast = utf8FillLast;
12929 this.text = base64Text;
12930 this.end = base64End;
12934 this.write = simpleWrite;
12935 this.end = simpleEnd;
12939 this.lastTotal =
0;
12940 this.lastChar = Buffer.allocUnsafe(nb);
12943 StringDecoder.prototype.write = function (buf) {
12944 if (buf.length ===
0) return '';
12947 if (this.lastNeed) {
12948 r = this.fillLast(buf);
12949 if (r === undefined) return '';
12955 if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
12959 StringDecoder.prototype.end = utf8End;
12961 // Returns only complete characters in a Buffer
12962 StringDecoder.prototype.text = utf8Text;
12964 // Attempts to complete a partial non-UTF-
8 character using bytes from a Buffer
12965 StringDecoder.prototype.fillLast = function (buf) {
12966 if (this.lastNeed <= buf.length) {
12967 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, this.lastNeed);
12968 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
12970 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, buf.length);
12971 this.lastNeed -= buf.length;
12974 // Checks the type of a UTF-
8 byte, whether it's ASCII, a leading byte, or a
12975 // continuation byte.
12976 function utf8CheckByte(byte) {
12977 if (byte <=
0x7F) return
0;else if (byte
>> 5 ===
0x06) return
2;else if (byte
>> 4 ===
0x0E) return
3;else if (byte
>> 3 ===
0x1E) return
4;
12981 // Checks at most
3 bytes at the end of a Buffer in order to detect an
12982 // incomplete multi-byte UTF-
8 character. The total number of bytes (
2,
3, or
4)
12983 // needed to complete the UTF-
8 character (if applicable) are returned.
12984 function utf8CheckIncomplete(self, buf, i) {
12985 var j = buf.length -
1;
12986 if (j < i) return
0;
12987 var nb = utf8CheckByte(buf[j]);
12989 if (nb
> 0) self.lastNeed = nb -
1;
12992 if (--j < i) return
0;
12993 nb = utf8CheckByte(buf[j]);
12995 if (nb
> 0) self.lastNeed = nb -
2;
12998 if (--j < i) return
0;
12999 nb = utf8CheckByte(buf[j]);
13002 if (nb ===
2) nb =
0;else self.lastNeed = nb -
3;
13009 // Validates as many continuation bytes for a multi-byte UTF-
8 character as
13010 // needed or are available. If we see a non-continuation byte where we expect
13011 // one, we
"replace" the validated continuation bytes we've seen so far with
13012 // UTF-
8 replacement characters ('\ufffd'), to match v8's UTF-
8 decoding
13013 // behavior. The continuation byte check is included three times in the case
13014 // where all of the continuation bytes for a character exist in the same buffer.
13015 // It is also done this way as a slight performance increase instead of using a
13017 function utf8CheckExtraBytes(self, buf, p) {
13018 if ((buf[
0] &
0xC0) !==
0x80) {
13020 return '\ufffd'.repeat(p);
13022 if (self.lastNeed
> 1 && buf.length
> 1) {
13023 if ((buf[
1] &
0xC0) !==
0x80) {
13025 return '\ufffd'.repeat(p +
1);
13027 if (self.lastNeed
> 2 && buf.length
> 2) {
13028 if ((buf[
2] &
0xC0) !==
0x80) {
13030 return '\ufffd'.repeat(p +
2);
13036 // Attempts to complete a multi-byte UTF-
8 character using bytes from a Buffer.
13037 function utf8FillLast(buf) {
13038 var p = this.lastTotal - this.lastNeed;
13039 var r = utf8CheckExtraBytes(this, buf, p);
13040 if (r !== undefined) return r;
13041 if (this.lastNeed <= buf.length) {
13042 buf.copy(this.lastChar, p,
0, this.lastNeed);
13043 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
13045 buf.copy(this.lastChar, p,
0, buf.length);
13046 this.lastNeed -= buf.length;
13049 // Returns all complete UTF-
8 characters in a Buffer. If the Buffer ended on a
13050 // partial character, the character's bytes are buffered until the required
13051 // number of bytes are available.
13052 function utf8Text(buf, i) {
13053 var total = utf8CheckIncomplete(this, buf, i);
13054 if (!this.lastNeed) return buf.toString('utf8', i);
13055 this.lastTotal = total;
13056 var end = buf.length - (total - this.lastNeed);
13057 buf.copy(this.lastChar,
0, end);
13058 return buf.toString('utf8', i, end);
13061 // For UTF-
8, a replacement character for each buffered byte of a (partial)
13062 // character needs to be added to the output.
13063 function utf8End(buf) {
13064 var r = buf && buf.length ? this.write(buf) : '';
13065 if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
13069 // UTF-
16LE typically needs two bytes per character, but even if we have an even
13070 // number of bytes available, we need to check if we end on a leading/high
13071 // surrogate. In that case, we need to wait for the next two bytes in order to
13072 // decode the last character properly.
13073 function utf16Text(buf, i) {
13074 if ((buf.length - i) %
2 ===
0) {
13075 var r = buf.toString('utf16le', i);
13077 var c = r.charCodeAt(r.length -
1);
13078 if (c
>=
0xD800 && c <=
0xDBFF) {
13080 this.lastTotal =
4;
13081 this.lastChar[
0] = buf[buf.length -
2];
13082 this.lastChar[
1] = buf[buf.length -
1];
13083 return r.slice(
0, -
1);
13089 this.lastTotal =
2;
13090 this.lastChar[
0] = buf[buf.length -
1];
13091 return buf.toString('utf16le', i, buf.length -
1);
13094 // For UTF-
16LE we do not explicitly append special replacement characters if we
13095 // end on a partial character, we simply let v8 handle that.
13096 function utf16End(buf) {
13097 var r = buf && buf.length ? this.write(buf) : '';
13098 if (this.lastNeed) {
13099 var end = this.lastTotal - this.lastNeed;
13100 return r + this.lastChar.toString('utf16le',
0, end);
13105 function base64Text(buf, i) {
13106 var n = (buf.length - i) %
3;
13107 if (n ===
0) return buf.toString('base64', i);
13108 this.lastNeed =
3 - n;
13109 this.lastTotal =
3;
13111 this.lastChar[
0] = buf[buf.length -
1];
13113 this.lastChar[
0] = buf[buf.length -
2];
13114 this.lastChar[
1] = buf[buf.length -
1];
13116 return buf.toString('base64', i, buf.length - n);
13119 function base64End(buf) {
13120 var r = buf && buf.length ? this.write(buf) : '';
13121 if (this.lastNeed) return r + this.lastChar.toString('base64',
0,
3 - this.lastNeed);
13125 // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
13126 function simpleWrite(buf) {
13127 return buf.toString(this.encoding);
13130 function simpleEnd(buf) {
13131 return buf && buf.length ? this.write(buf) : '';
13133 },{"safe-buffer":
26}],
29:[function(require,module,exports){
13134 (function (global){
13140 module.exports = deprecate;
13143 * Mark that a method should not be used.
13144 * Returns a modified function which warns once by default.
13146 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
13148 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
13149 * will throw an Error when invoked.
13151 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
13152 * will invoke `console.trace()` instead of `console.error()`.
13154 * @param {Function} fn - the function to deprecate
13155 * @param {String} msg - the string to print to the console when `fn` is invoked
13156 * @returns {Function} a new "deprecated" version of `fn`
13160 function deprecate (fn, msg) {
13161 if (config('noDeprecation')) {
13165 var warned = false;
13166 function deprecated() {
13168 if (config('throwDeprecation')) {
13169 throw new Error(msg);
13170 } else if (config('traceDeprecation')) {
13171 console.trace(msg);
13177 return fn.apply(this, arguments);
13184 * Checks `localStorage` for boolean values for the given `name`.
13186 * @param {String} name
13187 * @returns {Boolean}
13191 function config (name) {
13192 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
13194 if (!global.localStorage) return false;
13198 var val = global.localStorage[name];
13199 if (null == val) return false;
13200 return String(val).toLowerCase() === 'true';
13203 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
13204 },{}],
30:[function(require,module,exports){
13205 arguments[
4][
8][
0].apply(exports,arguments)
13206 },{"dup":
8}],
31:[function(require,module,exports){
13207 module.exports = function isBuffer(arg) {
13208 return arg && typeof arg === 'object'
13209 && typeof arg.copy === 'function'
13210 && typeof arg.fill === 'function'
13211 && typeof arg.readUInt8 === 'function';
13213 },{}],
32:[function(require,module,exports){
13214 (function (process,global){
13215 // Copyright Joyent, Inc. and other Node contributors.
13217 // Permission is hereby granted, free of charge, to any person obtaining a
13218 // copy of this software and associated documentation files (the
13219 // "Software"), to deal in the Software without restriction, including
13220 // without limitation the rights to use, copy, modify, merge, publish,
13221 // distribute, sublicense, and/or sell copies of the Software, and to permit
13222 // persons to whom the Software is furnished to do so, subject to the
13223 // following conditions:
13225 // The above copyright notice and this permission notice shall be included
13226 // in all copies or substantial portions of the Software.
13228 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13229 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13230 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13231 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13232 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13233 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13234 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13236 var formatRegExp = /%[sdj%]/g;
13237 exports.format = function(f) {
13238 if (!isString(f)) {
13240 for (var i =
0; i < arguments.length; i++) {
13241 objects.push(inspect(arguments[i]));
13243 return objects.join(' ');
13247 var args = arguments;
13248 var len = args.length;
13249 var str = String(f).replace(formatRegExp, function(x) {
13250 if (x === '%%') return '%';
13251 if (i
>= len) return x;
13253 case '%s': return String(args[i++]);
13254 case '%d': return Number(args[i++]);
13257 return JSON.stringify(args[i++]);
13259 return '[Circular]';
13265 for (var x = args[i]; i < len; x = args[++i]) {
13266 if (isNull(x) || !isObject(x)) {
13269 str += ' ' + inspect(x);
13276 // Mark that a method should not be used.
13277 // Returns a modified function which warns once by default.
13278 // If --no-deprecation is set, then it is a no-op.
13279 exports.deprecate = function(fn, msg) {
13280 // Allow for deprecating things in the process of starting up.
13281 if (isUndefined(global.process)) {
13282 return function() {
13283 return exports.deprecate(fn, msg).apply(this, arguments);
13287 if (process.noDeprecation === true) {
13291 var warned = false;
13292 function deprecated() {
13294 if (process.throwDeprecation) {
13295 throw new Error(msg);
13296 } else if (process.traceDeprecation) {
13297 console.trace(msg);
13299 console.error(msg);
13303 return fn.apply(this, arguments);
13312 exports.debuglog = function(set) {
13313 if (isUndefined(debugEnviron))
13314 debugEnviron = process.env.NODE_DEBUG || '';
13315 set = set.toUpperCase();
13316 if (!debugs[set]) {
13317 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13318 var pid = process.pid;
13319 debugs[set] = function() {
13320 var msg = exports.format.apply(exports, arguments);
13321 console.error('%s %d: %s', set, pid, msg);
13324 debugs[set] = function() {};
13327 return debugs[set];
13332 * Echos the value of a value. Trys to print the value out
13333 * in the best way possible given the different types.
13335 * @param {Object} obj The object to print out.
13336 * @param {Object} opts Optional options object that alters the output.
13338 /* legacy: obj, showHidden, depth, colors*/
13339 function inspect(obj, opts) {
13343 stylize: stylizeNoColor
13346 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13347 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13348 if (isBoolean(opts)) {
13350 ctx.showHidden = opts;
13352 // got an "options" object
13353 exports._extend(ctx, opts);
13355 // set default options
13356 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13357 if (isUndefined(ctx.depth)) ctx.depth =
2;
13358 if (isUndefined(ctx.colors)) ctx.colors = false;
13359 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13360 if (ctx.colors) ctx.stylize = stylizeWithColor;
13361 return formatValue(ctx, obj, ctx.depth);
13363 exports.inspect = inspect;
13366 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13369 'italic' : [
3,
23],
13370 'underline' : [
4,
24],
13371 'inverse' : [
7,
27],
13372 'white' : [
37,
39],
13374 'black' : [
30,
39],
13377 'green' : [
32,
39],
13378 'magenta' : [
35,
39],
13380 'yellow' : [
33,
39]
13383 // Don't use 'blue' not visible on cmd.exe
13386 'number': 'yellow',
13387 'boolean': 'yellow',
13388 'undefined': 'grey',
13392 // "name": intentionally not styling
13397 function stylizeWithColor(str, styleType) {
13398 var style = inspect.styles[styleType];
13401 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13402 '\u001b[' + inspect.colors[style][
1] + 'm';
13409 function stylizeNoColor(str, styleType) {
13414 function arrayToHash(array) {
13417 array.forEach(function(val, idx) {
13425 function formatValue(ctx, value, recurseTimes) {
13426 // Provide a hook for user-specified inspect functions.
13427 // Check that value is an object with an inspect function on it
13428 if (ctx.customInspect &&
13430 isFunction(value.inspect) &&
13431 // Filter out the util module, it's inspect function is special
13432 value.inspect !== exports.inspect &&
13433 // Also filter out any prototype objects using the circular check.
13434 !(value.constructor && value.constructor.prototype === value)) {
13435 var ret = value.inspect(recurseTimes, ctx);
13436 if (!isString(ret)) {
13437 ret = formatValue(ctx, ret, recurseTimes);
13442 // Primitive types cannot have properties
13443 var primitive = formatPrimitive(ctx, value);
13448 // Look up the keys of the object.
13449 var keys = Object.keys(value);
13450 var visibleKeys = arrayToHash(keys);
13452 if (ctx.showHidden) {
13453 keys = Object.getOwnPropertyNames(value);
13456 // IE doesn't make error fields non-enumerable
13457 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13459 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13460 return formatError(value);
13463 // Some type of object without properties can be shortcutted.
13464 if (keys.length ===
0) {
13465 if (isFunction(value)) {
13466 var name = value.name ? ': ' + value.name : '';
13467 return ctx.stylize('[Function' + name + ']', 'special');
13469 if (isRegExp(value)) {
13470 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13472 if (isDate(value)) {
13473 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13475 if (isError(value)) {
13476 return formatError(value);
13480 var base = '', array = false, braces = ['{', '}'];
13482 // Make Array say that they are Array
13483 if (isArray(value)) {
13485 braces = ['[', ']'];
13488 // Make functions say that they are functions
13489 if (isFunction(value)) {
13490 var n = value.name ? ': ' + value.name : '';
13491 base = ' [Function' + n + ']';
13494 // Make RegExps say that they are RegExps
13495 if (isRegExp(value)) {
13496 base = ' ' + RegExp.prototype.toString.call(value);
13499 // Make dates with properties first say the date
13500 if (isDate(value)) {
13501 base = ' ' + Date.prototype.toUTCString.call(value);
13504 // Make error with message first say the error
13505 if (isError(value)) {
13506 base = ' ' + formatError(value);
13509 if (keys.length ===
0 && (!array || value.length ==
0)) {
13510 return braces[
0] + base + braces[
1];
13513 if (recurseTimes <
0) {
13514 if (isRegExp(value)) {
13515 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13517 return ctx.stylize('[Object]', 'special');
13521 ctx.seen.push(value);
13525 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
13527 output = keys.map(function(key) {
13528 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
13534 return reduceToSingleString(output, base, braces);
13538 function formatPrimitive(ctx, value) {
13539 if (isUndefined(value))
13540 return ctx.stylize('undefined', 'undefined');
13541 if (isString(value)) {
13542 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
13543 .replace(/'/g, "\\'")
13544 .replace(/\\"/g, '"') + '\'';
13545 return ctx.stylize(simple, 'string');
13547 if (isNumber(value))
13548 return ctx.stylize('' + value, 'number');
13549 if (isBoolean(value))
13550 return ctx.stylize('' + value, 'boolean');
13551 // For some reason typeof null is "object", so special case here.
13553 return ctx.stylize('null', 'null');
13557 function formatError(value) {
13558 return '[' + Error.prototype.toString.call(value) + ']';
13562 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
13564 for (var i =
0, l = value.length; i < l; ++i) {
13565 if (hasOwnProperty(value, String(i))) {
13566 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13572 keys.forEach(function(key) {
13573 if (!key.match(/^\d+$/)) {
13574 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13582 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
13583 var name, str, desc;
13584 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
13587 str = ctx.stylize('[Getter/Setter]', 'special');
13589 str = ctx.stylize('[Getter]', 'special');
13593 str = ctx.stylize('[Setter]', 'special');
13596 if (!hasOwnProperty(visibleKeys, key)) {
13597 name = '[' + key + ']';
13600 if (ctx.seen.indexOf(desc.value) <
0) {
13601 if (isNull(recurseTimes)) {
13602 str = formatValue(ctx, desc.value, null);
13604 str = formatValue(ctx, desc.value, recurseTimes -
1);
13606 if (str.indexOf('\n')
> -
1) {
13608 str = str.split('\n').map(function(line) {
13610 }).join('\n').substr(
2);
13612 str = '\n' + str.split('\n').map(function(line) {
13618 str = ctx.stylize('[Circular]', 'special');
13621 if (isUndefined(name)) {
13622 if (array && key.match(/^\d+$/)) {
13625 name = JSON.stringify('' + key);
13626 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
13627 name = name.substr(
1, name.length -
2);
13628 name = ctx.stylize(name, 'name');
13630 name = name.replace(/'/g, "\\'")
13631 .replace(/\\"/g, '"')
13632 .replace(/(^"|"$)/g, "'");
13633 name = ctx.stylize(name, 'string');
13637 return name + ': ' + str;
13641 function reduceToSingleString(output, base, braces) {
13642 var numLinesEst =
0;
13643 var length = output.reduce(function(prev, cur) {
13645 if (cur.indexOf('\n')
>=
0) numLinesEst++;
13646 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
13651 (base === '' ? '' : base + '\n ') +
13653 output.join(',\n ') +
13658 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
13662 // NOTE: These type checking functions intentionally don't use `instanceof`
13663 // because it is fragile and can be easily faked with `Object.create()`.
13664 function isArray(ar) {
13665 return Array.isArray(ar);
13667 exports.isArray = isArray;
13669 function isBoolean(arg) {
13670 return typeof arg === 'boolean';
13672 exports.isBoolean = isBoolean;
13674 function isNull(arg) {
13675 return arg === null;
13677 exports.isNull = isNull;
13679 function isNullOrUndefined(arg) {
13680 return arg == null;
13682 exports.isNullOrUndefined = isNullOrUndefined;
13684 function isNumber(arg) {
13685 return typeof arg === 'number';
13687 exports.isNumber = isNumber;
13689 function isString(arg) {
13690 return typeof arg === 'string';
13692 exports.isString = isString;
13694 function isSymbol(arg) {
13695 return typeof arg === 'symbol';
13697 exports.isSymbol = isSymbol;
13699 function isUndefined(arg) {
13700 return arg === void
0;
13702 exports.isUndefined = isUndefined;
13704 function isRegExp(re) {
13705 return isObject(re) && objectToString(re) === '[object RegExp]';
13707 exports.isRegExp = isRegExp;
13709 function isObject(arg) {
13710 return typeof arg === 'object' && arg !== null;
13712 exports.isObject = isObject;
13714 function isDate(d) {
13715 return isObject(d) && objectToString(d) === '[object Date]';
13717 exports.isDate = isDate;
13719 function isError(e) {
13720 return isObject(e) &&
13721 (objectToString(e) === '[object Error]' || e instanceof Error);
13723 exports.isError = isError;
13725 function isFunction(arg) {
13726 return typeof arg === 'function';
13728 exports.isFunction = isFunction;
13730 function isPrimitive(arg) {
13731 return arg === null ||
13732 typeof arg === 'boolean' ||
13733 typeof arg === 'number' ||
13734 typeof arg === 'string' ||
13735 typeof arg === 'symbol' || // ES6 symbol
13736 typeof arg === 'undefined';
13738 exports.isPrimitive = isPrimitive;
13740 exports.isBuffer = require('./support/isBuffer');
13742 function objectToString(o) {
13743 return Object.prototype.toString.call(o);
13748 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
13752 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
13753 'Oct', 'Nov', 'Dec'];
13756 function timestamp() {
13757 var d = new Date();
13758 var time = [pad(d.getHours()),
13759 pad(d.getMinutes()),
13760 pad(d.getSeconds())].join(':');
13761 return [d.getDate(), months[d.getMonth()], time].join(' ');
13765 // log is just a thin wrapper to console.log that prepends a timestamp
13766 exports.log = function() {
13767 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
13772 * Inherit the prototype methods from one constructor into another.
13774 * The Function.prototype.inherits from lang.js rewritten as a standalone
13775 * function (not on Function.prototype). NOTE: If this file is to be loaded
13776 * during bootstrapping this function needs to be rewritten using some native
13777 * functions as prototype setup using normal JavaScript does not work as
13778 * expected during bootstrapping (see mirror.js in r114903).
13780 * @param {function} ctor Constructor function which needs to inherit the
13782 * @param {function} superCtor Constructor function to inherit prototype from.
13784 exports.inherits = require('inherits');
13786 exports._extend = function(origin, add) {
13787 // Don't do anything if add isn't an object
13788 if (!add || !isObject(add)) return origin;
13790 var keys = Object.keys(add);
13791 var i = keys.length;
13793 origin[keys[i]] = add[keys[i]];
13798 function hasOwnProperty(obj, prop) {
13799 return Object.prototype.hasOwnProperty.call(obj, prop);
13802 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
13803 },{
"./support/isBuffer":
31,
"_process":
12,
"inherits":
30}],
33:[function(require,module,exports){
13805 base58: require('bs58'),
13806 bitcoin: require('bitcoinjs-lib'),
13807 ecurve: require('ecurve'),
13808 BigInteger: require('bigi')
13811 },{
"bigi":
37,
"bitcoinjs-lib":
50,
"bs58":
79,
"ecurve":
89}],
34:[function(require,module,exports){
13813 // Forked from https://github.com/cryptocoinjs/bs58
13814 // Originally written by Mike Hearn for BitcoinJ
13815 // Copyright (c)
2011 Google Inc
13816 // Ported to JavaScript by Stefan Thomas
13817 // Merged Buffer refactorings from base58-native by Stephen Pair
13818 // Copyright (c)
2013 BitPay Inc
13820 var Buffer = require('safe-buffer').Buffer
13822 module.exports = function base (ALPHABET) {
13823 var ALPHABET_MAP = {}
13824 var BASE = ALPHABET.length
13825 var LEADER = ALPHABET.charAt(
0)
13827 // pre-compute lookup table
13828 for (var z =
0; z < ALPHABET.length; z++) {
13829 var x = ALPHABET.charAt(z)
13831 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
13832 ALPHABET_MAP[x] = z
13835 function encode (source) {
13836 if (source.length ===
0) return ''
13839 for (var i =
0; i < source.length; ++i) {
13840 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
13841 carry += digits[j] <<
8
13842 digits[j] = carry % BASE
13843 carry = (carry / BASE) |
0
13846 while (carry
> 0) {
13847 digits.push(carry % BASE)
13848 carry = (carry / BASE) |
0
13854 // deal with leading zeros
13855 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
13856 // convert digits to a string
13857 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
13862 function decodeUnsafe (string) {
13863 if (string.length ===
0) return Buffer.allocUnsafe(
0)
13866 for (var i =
0; i < string.length; i++) {
13867 var value = ALPHABET_MAP[string[i]]
13868 if (value === undefined) return
13870 for (var j =
0, carry = value; j < bytes.length; ++j) {
13871 carry += bytes[j] * BASE
13872 bytes[j] = carry &
0xff
13876 while (carry
> 0) {
13877 bytes.push(carry &
0xff)
13882 // deal with leading zeros
13883 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
13887 return Buffer.from(bytes.reverse())
13890 function decode (string) {
13891 var buffer = decodeUnsafe(string)
13892 if (buffer) return buffer
13894 throw new Error('Non-base' + BASE + ' character')
13899 decodeUnsafe: decodeUnsafe,
13904 },{"safe-buffer":
98}],
35:[function(require,module,exports){
13905 // (public) Constructor
13906 function BigInteger(a, b, c) {
13907 if (!(this instanceof BigInteger))
13908 return new BigInteger(a, b, c)
13911 if ("number" == typeof a) this.fromNumber(a, b, c)
13912 else if (b == null && "string" != typeof a) this.fromString(a,
256)
13913 else this.fromString(a, b)
13917 var proto = BigInteger.prototype
13919 // duck-typed isBigInteger
13920 proto.__bigi = require('../package.json').version
13921 BigInteger.isBigInteger = function (obj, check_ver) {
13922 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
13928 // am: Compute w_j += (x*this_i), propagate carries,
13929 // c is initial carry, returns final carry.
13930 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
13931 // We need to select the fastest one that works in this environment.
13933 // am1: use a single mult and divide to get the high bits,
13934 // max digit bits should be
26 because
13935 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
13936 function am1(i, x, w, j, c, n) {
13938 var v = x * this[i++] + w[j] + c
13939 c = Math.floor(v /
0x4000000)
13940 w[j++] = v &
0x3ffffff
13944 // am2 avoids a big mult-and-extract completely.
13945 // Max digit bits should be <=
30 because we do bitwise ops
13946 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
13947 function am2(i, x, w, j, c, n) {
13948 var xl = x &
0x7fff,
13951 var l = this[i] &
0x7fff
13952 var h = this[i++]
>> 15
13953 var m = xh * l + h * xl
13954 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
13955 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
13956 w[j++] = l &
0x3fffffff
13960 // Alternately, set max digit bits to
28 since some
13961 // browsers slow down when dealing with
32-bit numbers.
13962 function am3(i, x, w, j, c, n) {
13963 var xl = x &
0x3fff,
13966 var l = this[i] &
0x3fff
13967 var h = this[i++]
>> 14
13968 var m = xh * l + h * xl
13969 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
13970 c = (l
>> 28) + (m
>> 14) + xh * h
13971 w[j++] = l &
0xfffffff
13977 BigInteger.prototype.am = am1
13980 BigInteger.prototype.DB = dbits
13981 BigInteger.prototype.DM = ((
1 << dbits) -
1)
13982 var DV = BigInteger.prototype.DV = (
1 << dbits)
13985 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
13986 BigInteger.prototype.F1 = BI_FP - dbits
13987 BigInteger.prototype.F2 =
2 * dbits - BI_FP
13989 // Digit conversions
13990 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
13991 var BI_RC = new Array()
13993 rr =
"0".charCodeAt(
0)
13994 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
13995 rr =
"a".charCodeAt(
0)
13996 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13997 rr =
"A".charCodeAt(
0)
13998 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
14000 function int2char(n) {
14001 return BI_RM.charAt(n)
14004 function intAt(s, i) {
14005 var c = BI_RC[s.charCodeAt(i)]
14006 return (c == null) ? -
1 : c
14009 // (protected) copy this to r
14010 function bnpCopyTo(r) {
14011 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
14016 // (protected) set from integer value x, -DV <= x < DV
14017 function bnpFromInt(x) {
14019 this.s = (x <
0) ? -
1 :
0
14020 if (x
> 0) this[
0] = x
14021 else if (x < -
1) this[
0] = x + DV
14025 // return bigint initialized to value
14027 var r = new BigInteger()
14032 // (protected) set from string and radix
14033 function bnpFromString(s, b) {
14038 else if (b ==
8) k =
3
14039 else if (b ==
256) k =
8; // byte array
14040 else if (b ==
2) k =
1
14041 else if (b ==
32) k =
5
14042 else if (b ==
4) k =
2
14044 self.fromRadix(s, b)
14053 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
14055 if (s.charAt(i) == "-") mi = true
14061 else if (sh + k
> self.DB) {
14062 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
14063 self[self.t++] = (x
>> (self.DB - sh))
14065 self[self.t -
1] |= x << sh
14067 if (sh
>= self.DB) sh -= self.DB
14069 if (k ==
8 && (s[
0] &
0x80) !=
0) {
14071 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
14074 if (mi) BigInteger.ZERO.subTo(self, self)
14077 // (protected) clamp off excess high words
14078 function bnpClamp() {
14079 var c = this.s & this.DM
14080 while (this.t
> 0 && this[this.t -
1] == c)--this.t
14083 // (public) return string representation in given radix
14084 function bnToString(b) {
14086 if (self.s <
0) return
"-" + self.negate()
14090 else if (b ==
8) k =
3
14091 else if (b ==
2) k =
1
14092 else if (b ==
32) k =
5
14093 else if (b ==
4) k =
2
14094 else return self.toRadix(b)
14095 var km = (
1 << k) -
1,
14099 var p = self.DB - (i * self.DB) % k
14101 if (p < self.DB && (d = self[i]
>> p)
> 0) {
14107 d = (self[i] & ((
1 << p) -
1)) << (k - p)
14108 d |= self[--i]
>> (p += self.DB - k)
14110 d = (self[i]
>> (p -= k)) & km
14116 if (d
> 0) m = true
14117 if (m) r += int2char(d)
14124 function bnNegate() {
14125 var r = new BigInteger()
14126 BigInteger.ZERO.subTo(this, r)
14132 return (this.s <
0) ? this.negate() : this
14135 // (public) return + if this
> a, - if this < a,
0 if equal
14136 function bnCompareTo(a) {
14137 var r = this.s - a.s
14138 if (r !=
0) return r
14141 if (r !=
0) return (this.s <
0) ? -r : r
14143 if ((r = this[i] - a[i]) !=
0) return r
14147 // returns bit length of the integer x
14148 function nbits(x) {
14151 if ((t = x
>>> 16) !=
0) {
14155 if ((t = x
>> 8) !=
0) {
14159 if ((t = x
>> 4) !=
0) {
14163 if ((t = x
>> 2) !=
0) {
14167 if ((t = x
>> 1) !=
0) {
14174 // (public) return the number of bits in
"this"
14175 function bnBitLength() {
14176 if (this.t <=
0) return
0
14177 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
14180 // (public) return the number of bytes in
"this"
14181 function bnByteLength() {
14182 return this.bitLength()
>> 3
14185 // (protected) r = this << n*DB
14186 function bnpDLShiftTo(n, r) {
14188 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
14189 for (i = n -
1; i
>=
0; --i) r[i] =
0
14194 // (protected) r = this
>> n*DB
14195 function bnpDRShiftTo(n, r) {
14196 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
14197 r.t = Math.max(this.t - n,
0)
14201 // (protected) r = this << n
14202 function bnpLShiftTo(n, r) {
14204 var bs = n % self.DB
14205 var cbs = self.DB - bs
14206 var bm = (
1 << cbs) -
1
14207 var ds = Math.floor(n / self.DB),
14208 c = (self.s << bs) & self.DM,
14210 for (i = self.t -
1; i
>=
0; --i) {
14211 r[i + ds +
1] = (self[i]
>> cbs) | c
14212 c = (self[i] & bm) << bs
14214 for (i = ds -
1; i
>=
0; --i) r[i] =
0
14216 r.t = self.t + ds +
1
14221 // (protected) r = this
>> n
14222 function bnpRShiftTo(n, r) {
14225 var ds = Math.floor(n / self.DB)
14226 if (ds
>= self.t) {
14230 var bs = n % self.DB
14231 var cbs = self.DB - bs
14232 var bm = (
1 << bs) -
1
14233 r[
0] = self[ds]
>> bs
14234 for (var i = ds +
1; i < self.t; ++i) {
14235 r[i - ds -
1] |= (self[i] & bm) << cbs
14236 r[i - ds] = self[i]
>> bs
14238 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
14243 // (protected) r = this - a
14244 function bnpSubTo(a, r) {
14248 m = Math.min(a.t, self.t)
14250 c += self[i] - a[i]
14251 r[i++] = c & self.DM
14254 if (a.t < self.t) {
14256 while (i < self.t) {
14258 r[i++] = c & self.DM
14266 r[i++] = c & self.DM
14271 r.s = (c <
0) ? -
1 :
0
14272 if (c < -
1) r[i++] = self.DV + c
14273 else if (c
> 0) r[i++] = c
14278 // (protected) r = this * a, r != this,a (HAC
14.12)
14279 //
"this" should be the larger one if appropriate.
14280 function bnpMultiplyTo(a, r) {
14281 var x = this.abs(),
14285 while (--i
>=
0) r[i] =
0
14286 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
14289 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
14292 // (protected) r = this^
2, r != this (HAC
14.16)
14293 function bnpSquareTo(r) {
14295 var i = r.t =
2 * x.t
14296 while (--i
>=
0) r[i] =
0
14297 for (i =
0; i < x.t -
1; ++i) {
14298 var c = x.am(i, x[i], r,
2 * i,
0,
1)
14299 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
14304 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
14309 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
14310 // r != q, this != m. q or r may be null.
14311 function bnpDivRemTo(m, q, r) {
14314 if (pm.t <=
0) return
14315 var pt = self.abs()
14317 if (q != null) q.fromInt(
0)
14318 if (r != null) self.copyTo(r)
14321 if (r == null) r = new BigInteger()
14322 var y = new BigInteger(),
14325 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
14327 pm.lShiftTo(nsh, y)
14328 pt.lShiftTo(nsh, r)
14335 if (y0 ==
0) return
14336 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
14337 var d1 = self.FV / yt,
14338 d2 = (
1 << self.F1) / yt,
14342 t = (q == null) ? new BigInteger() : q
14344 if (r.compareTo(t)
>=
0) {
14348 BigInteger.ONE.dlShiftTo(ys, t)
14349 t.subTo(y, y); // "negative" y so we can replace sub with am later
14350 while (y.t < ys) y[y.t++] =
0
14352 // Estimate quotient digit
14353 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
14354 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
14357 while (r[i] < --qd) r.subTo(t, r)
14362 if (ts != ms) BigInteger.ZERO.subTo(q, q)
14366 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
14367 if (ts <
0) BigInteger.ZERO.subTo(r, r)
14370 // (public) this mod a
14371 function bnMod(a) {
14372 var r = new BigInteger()
14374 .divRemTo(a, null, r)
14375 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
14379 // Modular reduction using
"classic" algorithm
14380 function Classic(m) {
14384 function cConvert(x) {
14385 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
14389 function cRevert(x) {
14393 function cReduce(x) {
14394 x.divRemTo(this.m, null, x)
14397 function cMulTo(x, y, r) {
14402 function cSqrTo(x, r) {
14407 Classic.prototype.convert = cConvert
14408 Classic.prototype.revert = cRevert
14409 Classic.prototype.reduce = cReduce
14410 Classic.prototype.mulTo = cMulTo
14411 Classic.prototype.sqrTo = cSqrTo
14413 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
14417 // xy(
2-xy) = (
1+km)(
1-km)
14418 // x[y(
2-xy)] =
1-k^
2m^
2
14419 // x[y(
2-xy)] ==
1 (mod m^
2)
14420 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
14421 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
14422 // JS multiply "overflows" differently from C/C++, so care is needed here.
14423 function bnpInvDigit() {
14424 if (this.t <
1) return
0
14426 if ((x &
1) ==
0) return
0
14427 var y = x &
3; // y ==
1/x mod
2^
2
14428 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
14429 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
14430 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
14431 // last step - calculate inverse mod DV directly
14432 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
14433 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
14434 // we really want the negative inverse, and -DV < y < DV
14435 return (y
> 0) ? this.DV - y : -y
14438 // Montgomery reduction
14439 function Montgomery(m) {
14441 this.mp = m.invDigit()
14442 this.mpl = this.mp &
0x7fff
14443 this.mph = this.mp
>> 15
14444 this.um = (
1 << (m.DB -
15)) -
1
14449 function montConvert(x) {
14450 var r = new BigInteger()
14452 .dlShiftTo(this.m.t, r)
14453 r.divRemTo(this.m, null, r)
14454 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
14459 function montRevert(x) {
14460 var r = new BigInteger()
14466 // x = x/R mod m (HAC
14.32)
14467 function montReduce(x) {
14468 while (x.t <= this.mt2) // pad x so am has enough room later
14470 for (var i =
0; i < this.m.t; ++i) {
14471 // faster way of calculating u0 = x[i]*mp mod DV
14472 var j = x[i] &
0x7fff
14473 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
14474 // use am to combine the multiply-shift-add into one call
14476 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
14478 while (x[j]
>= x.DV) {
14484 x.drShiftTo(this.m.t, x)
14485 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
14488 // r = "x^
2/R mod m"; x != r
14489 function montSqrTo(x, r) {
14494 // r = "xy/R mod m"; x,y != r
14495 function montMulTo(x, y, r) {
14500 Montgomery.prototype.convert = montConvert
14501 Montgomery.prototype.revert = montRevert
14502 Montgomery.prototype.reduce = montReduce
14503 Montgomery.prototype.mulTo = montMulTo
14504 Montgomery.prototype.sqrTo = montSqrTo
14506 // (protected) true iff this is even
14507 function bnpIsEven() {
14508 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
14511 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
14512 function bnpExp(e, z) {
14513 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
14514 var r = new BigInteger(),
14515 r2 = new BigInteger(),
14516 g = z.convert(this),
14521 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
14531 // (public) this^e % m,
0 <= e <
2^
32
14532 function bnModPowInt(e, m) {
14534 if (e <
256 || m.isEven()) z = new Classic(m)
14535 else z = new Montgomery(m)
14536 return this.exp(e, z)
14540 proto.copyTo = bnpCopyTo
14541 proto.fromInt = bnpFromInt
14542 proto.fromString = bnpFromString
14543 proto.clamp = bnpClamp
14544 proto.dlShiftTo = bnpDLShiftTo
14545 proto.drShiftTo = bnpDRShiftTo
14546 proto.lShiftTo = bnpLShiftTo
14547 proto.rShiftTo = bnpRShiftTo
14548 proto.subTo = bnpSubTo
14549 proto.multiplyTo = bnpMultiplyTo
14550 proto.squareTo = bnpSquareTo
14551 proto.divRemTo = bnpDivRemTo
14552 proto.invDigit = bnpInvDigit
14553 proto.isEven = bnpIsEven
14557 proto.toString = bnToString
14558 proto.negate = bnNegate
14560 proto.compareTo = bnCompareTo
14561 proto.bitLength = bnBitLength
14562 proto.byteLength = bnByteLength
14564 proto.modPowInt = bnModPowInt
14567 function bnClone() {
14568 var r = new BigInteger()
14573 // (public) return value as integer
14574 function bnIntValue() {
14576 if (this.t ==
1) return this[
0] - this.DV
14577 else if (this.t ==
0) return -
1
14578 } else if (this.t ==
1) return this[
0]
14579 else if (this.t ==
0) return
0
14580 // assumes
16 < DB <
32
14581 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
14584 // (public) return value as byte
14585 function bnByteValue() {
14586 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
14589 // (public) return value as short (assumes DB
>=
16)
14590 function bnShortValue() {
14591 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
14594 // (protected) return x s.t. r^x < DV
14595 function bnpChunkSize(r) {
14596 return Math.floor(Math.LN2 * this.DB / Math.log(r))
14599 // (public)
0 if this ==
0,
1 if this
> 0
14600 function bnSigNum() {
14601 if (this.s <
0) return -
1
14602 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
14606 // (protected) convert to radix string
14607 function bnpToRadix(b) {
14608 if (b == null) b =
10
14609 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
14610 var cs = this.chunkSize(b)
14611 var a = Math.pow(b, cs)
14613 y = new BigInteger(),
14614 z = new BigInteger(),
14616 this.divRemTo(d, y, z)
14617 while (y.signum()
> 0) {
14618 r = (a + z.intValue())
14621 y.divRemTo(d, y, z)
14623 return z.intValue()
14627 // (protected) convert from radix string
14628 function bnpFromRadix(s, b) {
14631 if (b == null) b =
10
14632 var cs = self.chunkSize(b)
14633 var d = Math.pow(b, cs),
14637 for (var i =
0; i < s.length; ++i) {
14638 var x = intAt(s, i)
14640 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
14646 self.dAddOffset(w,
0)
14652 self.dMultiply(Math.pow(b, j))
14653 self.dAddOffset(w,
0)
14655 if (mi) BigInteger.ZERO.subTo(self, self)
14658 // (protected) alternate constructor
14659 function bnpFromNumber(a, b, c) {
14661 if (
"number" == typeof b) {
14662 // new BigInteger(int,int,RNG)
14663 if (a <
2) self.fromInt(
1)
14665 self.fromNumber(a, c)
14666 if (!self.testBit(a -
1)) // force MSB set
14667 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
14668 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
14669 while (!self.isProbablePrime(b)) {
14670 self.dAddOffset(
2,
0)
14671 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
14675 // new BigInteger(int,RNG)
14676 var x = new Array(),
14678 x.length = (a
>> 3) +
1
14680 if (t
> 0) x[
0] &= ((
1 << t) -
1)
14682 self.fromString(x,
256)
14686 // (public) convert to bigendian byte array
14687 function bnToByteArray() {
14692 var p = self.DB - (i * self.DB) %
8,
14695 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
14696 r[k++] = d | (self.s << (self.DB - p))
14699 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
14700 d |= self[--i]
>> (p += self.DB -
8)
14702 d = (self[i]
>> (p -=
8)) &
0xff
14708 if ((d &
0x80) !=
0) d |= -
256
14709 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
14710 if (k
> 0 || d != self.s) r[k++] = d
14716 function bnEquals(a) {
14717 return (this.compareTo(a) ==
0)
14720 function bnMin(a) {
14721 return (this.compareTo(a) <
0) ? this : a
14724 function bnMax(a) {
14725 return (this.compareTo(a)
> 0) ? this : a
14728 // (protected) r = this op a (bitwise)
14729 function bnpBitwiseTo(a, op, r) {
14731 var i, f, m = Math.min(a.t, self.t)
14732 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
14733 if (a.t < self.t) {
14735 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
14738 f = self.s & self.DM
14739 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
14742 r.s = op(self.s, a.s)
14746 // (public) this & a
14747 function op_and(x, y) {
14751 function bnAnd(a) {
14752 var r = new BigInteger()
14753 this.bitwiseTo(a, op_and, r)
14757 // (public) this | a
14758 function op_or(x, y) {
14763 var r = new BigInteger()
14764 this.bitwiseTo(a, op_or, r)
14768 // (public) this ^ a
14769 function op_xor(x, y) {
14773 function bnXor(a) {
14774 var r = new BigInteger()
14775 this.bitwiseTo(a, op_xor, r)
14779 // (public) this & ~a
14780 function op_andnot(x, y) {
14784 function bnAndNot(a) {
14785 var r = new BigInteger()
14786 this.bitwiseTo(a, op_andnot, r)
14792 var r = new BigInteger()
14793 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
14799 // (public) this << n
14800 function bnShiftLeft(n) {
14801 var r = new BigInteger()
14802 if (n <
0) this.rShiftTo(-n, r)
14803 else this.lShiftTo(n, r)
14807 // (public) this
>> n
14808 function bnShiftRight(n) {
14809 var r = new BigInteger()
14810 if (n <
0) this.lShiftTo(-n, r)
14811 else this.rShiftTo(n, r)
14815 // return index of lowest
1-bit in x, x <
2^
31
14817 if (x ==
0) return -
1
14819 if ((x &
0xffff) ==
0) {
14823 if ((x &
0xff) ==
0) {
14827 if ((x &
0xf) ==
0) {
14831 if ((x &
3) ==
0) {
14835 if ((x &
1) ==
0)++r
14839 // (public) returns index of lowest
1-bit (or -
1 if none)
14840 function bnGetLowestSetBit() {
14841 for (var i =
0; i < this.t; ++i)
14842 if (this[i] !=
0) return i * this.DB + lbit(this[i])
14843 if (this.s <
0) return this.t * this.DB
14847 // return number of
1 bits in x
14857 // (public) return number of set bits
14858 function bnBitCount() {
14860 x = this.s & this.DM
14861 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
14865 // (public) true iff nth bit is set
14866 function bnTestBit(n) {
14867 var j = Math.floor(n / this.DB)
14868 if (j
>= this.t) return (this.s !=
0)
14869 return ((this[j] & (
1 << (n % this.DB))) !=
0)
14872 // (protected) this op (
1<
<n)
14873 function bnpChangeBit(n, op) {
14874 var r = BigInteger.ONE.shiftLeft(n)
14875 this.bitwiseTo(r, op, r)
14879 // (public) this | (
1<
<n)
14880 function bnSetBit(n) {
14881 return this.changeBit(n, op_or)
14884 // (public) this & ~(
1<
<n)
14885 function bnClearBit(n) {
14886 return this.changeBit(n, op_andnot)
14889 // (public) this ^ (
1<
<n)
14890 function bnFlipBit(n) {
14891 return this.changeBit(n, op_xor)
14894 // (protected) r = this + a
14895 function bnpAddTo(a, r) {
14900 m = Math.min(a.t, self.t)
14902 c += self[i] + a[i]
14903 r[i++] = c & self.DM
14906 if (a.t < self.t) {
14908 while (i < self.t) {
14910 r[i++] = c & self.DM
14918 r[i++] = c & self.DM
14923 r.s = (c <
0) ? -
1 :
0
14924 if (c
> 0) r[i++] = c
14925 else if (c < -
1) r[i++] = self.DV + c
14930 // (public) this + a
14931 function bnAdd(a) {
14932 var r = new BigInteger()
14937 // (public) this - a
14938 function bnSubtract(a) {
14939 var r = new BigInteger()
14944 // (public) this * a
14945 function bnMultiply(a) {
14946 var r = new BigInteger()
14947 this.multiplyTo(a, r)
14952 function bnSquare() {
14953 var r = new BigInteger()
14958 // (public) this / a
14959 function bnDivide(a) {
14960 var r = new BigInteger()
14961 this.divRemTo(a, r, null)
14965 // (public) this % a
14966 function bnRemainder(a) {
14967 var r = new BigInteger()
14968 this.divRemTo(a, null, r)
14972 // (public) [this/a,this%a]
14973 function bnDivideAndRemainder(a) {
14974 var q = new BigInteger(),
14975 r = new BigInteger()
14976 this.divRemTo(a, q, r)
14977 return new Array(q, r)
14980 // (protected) this *= n, this
>=
0,
1 < n < DV
14981 function bnpDMultiply(n) {
14982 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
14987 // (protected) this += n << w words, this
>=
0
14988 function bnpDAddOffset(n, w) {
14990 while (this.t <= w) this[this.t++] =
0
14992 while (this[w]
>= this.DV) {
14994 if (++w
>= this.t) this[this.t++] =
0
14999 // A "null" reducer
15000 function NullExp() {}
15006 function nMulTo(x, y, r) {
15010 function nSqrTo(x, r) {
15014 NullExp.prototype.convert = nNop
15015 NullExp.prototype.revert = nNop
15016 NullExp.prototype.mulTo = nMulTo
15017 NullExp.prototype.sqrTo = nSqrTo
15020 function bnPow(e) {
15021 return this.exp(e, new NullExp())
15024 // (protected) r = lower n words of "this * a", a.t <= n
15025 // "this" should be the larger one if appropriate.
15026 function bnpMultiplyLowerTo(a, n, r) {
15027 var i = Math.min(this.t + a.t, n)
15028 r.s =
0; // assumes a,this
>=
0
15030 while (i
> 0) r[--i] =
0
15032 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
15033 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
15037 // (protected) r =
"this * a" without lower n words, n
> 0
15038 //
"this" should be the larger one if appropriate.
15039 function bnpMultiplyUpperTo(a, n, r) {
15041 var i = r.t = this.t + a.t - n
15042 r.s =
0; // assumes a,this
>=
0
15043 while (--i
>=
0) r[i] =
0
15044 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
15045 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
15050 // Barrett modular reduction
15051 function Barrett(m) {
15053 this.r2 = new BigInteger()
15054 this.q3 = new BigInteger()
15055 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
15056 this.mu = this.r2.divide(m)
15060 function barrettConvert(x) {
15061 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
15062 else if (x.compareTo(this.m) <
0) return x
15064 var r = new BigInteger()
15071 function barrettRevert(x) {
15075 // x = x mod m (HAC
14.42)
15076 function barrettReduce(x) {
15078 x.drShiftTo(self.m.t -
1, self.r2)
15079 if (x.t
> self.m.t +
1) {
15083 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
15084 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
15085 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
15086 x.subTo(self.r2, x)
15087 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
15090 // r = x^
2 mod m; x != r
15091 function barrettSqrTo(x, r) {
15096 // r = x*y mod m; x,y != r
15097 function barrettMulTo(x, y, r) {
15102 Barrett.prototype.convert = barrettConvert
15103 Barrett.prototype.revert = barrettRevert
15104 Barrett.prototype.reduce = barrettReduce
15105 Barrett.prototype.mulTo = barrettMulTo
15106 Barrett.prototype.sqrTo = barrettSqrTo
15108 // (public) this^e % m (HAC
14.85)
15109 function bnModPow(e, m) {
15110 var i = e.bitLength(),
15113 if (i <=
0) return r
15114 else if (i <
18) k =
1
15115 else if (i <
48) k =
3
15116 else if (i <
144) k =
4
15117 else if (i <
768) k =
5
15121 else if (m.isEven())
15124 z = new Montgomery(m)
15127 var g = new Array(),
15131 g[
1] = z.convert(this)
15133 var g2 = new BigInteger()
15136 g[n] = new BigInteger()
15137 z.mulTo(g2, g[n -
2], g[n])
15144 r2 = new BigInteger(),
15146 i = nbits(e[j]) -
1
15148 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
15150 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
15151 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
15155 while ((w &
1) ==
0) {
15159 if ((i -= n) <
0) {
15163 if (is1) { // ret ==
1, don't bother squaring or multiplying it
15172 if (n
> 0) z.sqrTo(r, r2)
15178 z.mulTo(r2, g[w], r)
15181 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
15195 // (public) gcd(this,a) (HAC
14.54)
15196 function bnGCD(a) {
15197 var x = (this.s <
0) ? this.negate() : this.clone()
15198 var y = (a.s <
0) ? a.negate() : a.clone()
15199 if (x.compareTo(y) <
0) {
15204 var i = x.getLowestSetBit(),
15205 g = y.getLowestSetBit()
15206 if (g <
0) return x
15212 while (x.signum()
> 0) {
15213 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
15214 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
15215 if (x.compareTo(y)
>=
0) {
15223 if (g
> 0) y.lShiftTo(g, y)
15227 // (protected) this % n, n <
2^
26
15228 function bnpModInt(n) {
15229 if (n <=
0) return
0
15230 var d = this.DV % n,
15231 r = (this.s <
0) ? n -
1 :
0
15233 if (d ==
0) r = this[
0] % n
15235 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
15239 // (public)
1/this % m (HAC
14.61)
15240 function bnModInverse(m) {
15241 var ac = m.isEven()
15242 if (this.signum() ===
0) throw new Error('division by zero')
15243 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
15250 while (u.signum() !=
0) {
15251 while (u.isEven()) {
15254 if (!a.isEven() || !b.isEven()) {
15259 } else if (!b.isEven()) b.subTo(m, b)
15262 while (v.isEven()) {
15265 if (!c.isEven() || !d.isEven()) {
15270 } else if (!d.isEven()) d.subTo(m, d)
15273 if (u.compareTo(v)
>=
0) {
15275 if (ac) a.subTo(c, a)
15279 if (ac) c.subTo(a, c)
15283 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
15284 while (d.compareTo(m)
>=
0) d.subTo(m, d)
15285 while (d.signum() <
0) d.addTo(m, d)
15290 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
15291 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
15292 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
15293 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
15294 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
15295 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
15296 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
15297 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
15298 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
15299 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
15300 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
15303 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
15305 // (public) test primality with certainty
>=
1-
.5^t
15306 function bnIsProbablePrime(t) {
15307 var i, x = this.abs()
15308 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
15309 for (i =
0; i < lowprimes.length; ++i)
15310 if (x[
0] == lowprimes[i]) return true
15313 if (x.isEven()) return false
15315 while (i < lowprimes.length) {
15316 var m = lowprimes[i],
15318 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
15320 while (i < j) if (m % lowprimes[i++] ==
0) return false
15322 return x.millerRabin(t)
15325 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
15326 function bnpMillerRabin(t) {
15327 var n1 = this.subtract(BigInteger.ONE)
15328 var k = n1.getLowestSetBit()
15329 if (k <=
0) return false
15330 var r = n1.shiftRight(k)
15332 if (t
> lowprimes.length) t = lowprimes.length
15333 var a = new BigInteger(null)
15335 for (var i =
0; i < t; ++i) {
15337 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
15338 if (bases.indexOf(j) == -
1) break
15342 var y = a.modPow(r, this)
15343 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
15345 while (j++ < k && y.compareTo(n1) !=
0) {
15346 y = y.modPowInt(
2, this)
15347 if (y.compareTo(BigInteger.ONE) ==
0) return false
15349 if (y.compareTo(n1) !=
0) return false
15356 proto.chunkSize = bnpChunkSize
15357 proto.toRadix = bnpToRadix
15358 proto.fromRadix = bnpFromRadix
15359 proto.fromNumber = bnpFromNumber
15360 proto.bitwiseTo = bnpBitwiseTo
15361 proto.changeBit = bnpChangeBit
15362 proto.addTo = bnpAddTo
15363 proto.dMultiply = bnpDMultiply
15364 proto.dAddOffset = bnpDAddOffset
15365 proto.multiplyLowerTo = bnpMultiplyLowerTo
15366 proto.multiplyUpperTo = bnpMultiplyUpperTo
15367 proto.modInt = bnpModInt
15368 proto.millerRabin = bnpMillerRabin
15371 proto.clone = bnClone
15372 proto.intValue = bnIntValue
15373 proto.byteValue = bnByteValue
15374 proto.shortValue = bnShortValue
15375 proto.signum = bnSigNum
15376 proto.toByteArray = bnToByteArray
15377 proto.equals = bnEquals
15383 proto.andNot = bnAndNot
15385 proto.shiftLeft = bnShiftLeft
15386 proto.shiftRight = bnShiftRight
15387 proto.getLowestSetBit = bnGetLowestSetBit
15388 proto.bitCount = bnBitCount
15389 proto.testBit = bnTestBit
15390 proto.setBit = bnSetBit
15391 proto.clearBit = bnClearBit
15392 proto.flipBit = bnFlipBit
15394 proto.subtract = bnSubtract
15395 proto.multiply = bnMultiply
15396 proto.divide = bnDivide
15397 proto.remainder = bnRemainder
15398 proto.divideAndRemainder = bnDivideAndRemainder
15399 proto.modPow = bnModPow
15400 proto.modInverse = bnModInverse
15403 proto.isProbablePrime = bnIsProbablePrime
15405 // JSBN-specific extension
15406 proto.square = bnSquare
15409 BigInteger.ZERO = nbv(
0)
15410 BigInteger.ONE = nbv(
1)
15411 BigInteger.valueOf = nbv
15413 module.exports = BigInteger
15415 },{"../package.json":
38}],
36:[function(require,module,exports){
15416 (function (Buffer){
15417 // FIXME: Kind of a weird way to throw exceptions, consider removing
15418 var assert = require('assert')
15419 var BigInteger = require('./bigi')
15422 * Turns a byte array into a big integer.
15424 * This function will interpret a byte array as a big integer in big
15427 BigInteger.fromByteArrayUnsigned = function(byteArray) {
15428 // BigInteger expects a DER integer conformant byte array
15429 if (byteArray[
0] &
0x80) {
15430 return new BigInteger([
0].concat(byteArray))
15433 return new BigInteger(byteArray)
15437 * Returns a byte array representation of the big integer.
15439 * This returns the absolute of the contained value in big endian
15440 * form. A value of zero results in an empty array.
15442 BigInteger.prototype.toByteArrayUnsigned = function() {
15443 var byteArray = this.toByteArray()
15444 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
15447 BigInteger.fromDERInteger = function(byteArray) {
15448 return new BigInteger(byteArray)
15452 * Converts BigInteger to a DER integer representation.
15454 * The format for this value uses the most significant bit as a sign
15455 * bit. If the most significant bit is already set and the integer is
15456 * positive, a
0x00 is prepended.
15471 *
62300 =
> 0x00f35c
15472 * -
62300 =
> 0xff0ca4
15474 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
15476 BigInteger.fromBuffer = function(buffer) {
15477 // BigInteger expects a DER integer conformant byte array
15478 if (buffer[
0] &
0x80) {
15479 var byteArray = Array.prototype.slice.call(buffer)
15481 return new BigInteger([
0].concat(byteArray))
15484 return new BigInteger(buffer)
15487 BigInteger.fromHex = function(hex) {
15488 if (hex === '') return BigInteger.ZERO
15490 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
15491 assert.equal(hex.length %
2,
0, 'Incomplete hex')
15492 return new BigInteger(hex,
16)
15495 BigInteger.prototype.toBuffer = function(size) {
15496 var byteArray = this.toByteArrayUnsigned()
15499 var padding = size - byteArray.length
15500 while (zeros.length < padding) zeros.push(
0)
15502 return new Buffer(zeros.concat(byteArray))
15505 BigInteger.prototype.toHex = function(size) {
15506 return this.toBuffer(size).toString('hex')
15509 }).call(this,require(
"buffer").Buffer)
15510 },{
"./bigi":
35,
"assert":
1,
"buffer":
4}],
37:[function(require,module,exports){
15511 var BigInteger = require('./bigi')
15514 require('./convert')
15516 module.exports = BigInteger
15517 },{
"./bigi":
35,
"./convert":
36}],
38:[function(require,module,exports){
15522 "/home/ian/git/bitcoin/bitcoinjs-lib-browser"
15525 "_from":
"bigi@latest",
15526 "_id":
"bigi@1.4.2",
15528 "_installable": true,
15529 "_location":
"/bigi",
15530 "_nodeVersion":
"6.1.0",
15531 "_npmOperationalInternal": {
15532 "host":
"packages-12-west.internal.npmjs.com",
15533 "tmp":
"tmp/bigi-1.4.2.tgz_1469584192413_0.6801238611806184"
15536 "email":
"jprichardson@gmail.com",
15537 "name":
"jprichardson"
15539 "_npmVersion":
"3.8.6",
15540 "_phantomChildren": {},
15554 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
15555 "_shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15556 "_shrinkwrap": null,
15558 "_where":
"/home/ian/git/bitcoin/bitcoinjs-lib-browser",
15560 "url":
"https://github.com/cryptocoinjs/bigi/issues"
15562 "dependencies": {},
15563 "description":
"Big integers.",
15564 "devDependencies": {
15565 "coveralls":
"^2.11.2",
15566 "istanbul":
"^0.3.5",
15567 "jshint":
"^2.5.1",
15569 "mochify":
"^2.1.0"
15573 "shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15574 "tarball":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz"
15576 "gitHead":
"c25308081c896ff84702303722bf5ecd8b3f78e3",
15577 "homepage":
"https://github.com/cryptocoinjs/bigi#readme",
15595 "main":
"./lib/index.js",
15598 "email":
"boydb@midnightdesign.ws",
15599 "name":
"midnightlightning"
15602 "email":
"sidazhang89@gmail.com",
15603 "name":
"sidazhang"
15606 "email":
"npm@shesek.info",
15610 "email":
"jprichardson@gmail.com",
15611 "name":
"jprichardson"
15615 "optionalDependencies": {},
15616 "readme":
"ERROR: No README data found!",
15619 "url":
"git+https://github.com/cryptocoinjs/bigi.git"
15622 "browser-test":
"mochify --wd -R spec",
15623 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
15624 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
15625 "jshint":
"jshint --config jshint.json lib/*.js ; true",
15626 "test":
"_mocha -- test/*.js",
15634 "safari/6.0..latest",
15635 "iphone/6.0..latest",
15636 "android-browser/4.2..latest"
15638 "files":
"test/*.js",
15644 },{}],
39:[function(require,module,exports){
15645 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
15646 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15647 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
15649 var Buffer = require('safe-buffer').Buffer
15651 function check (buffer) {
15652 if (buffer.length <
8) return false
15653 if (buffer.length
> 72) return false
15654 if (buffer[
0] !==
0x30) return false
15655 if (buffer[
1] !== buffer.length -
2) return false
15656 if (buffer[
2] !==
0x02) return false
15658 var lenR = buffer[
3]
15659 if (lenR ===
0) return false
15660 if (
5 + lenR
>= buffer.length) return false
15661 if (buffer[
4 + lenR] !==
0x02) return false
15663 var lenS = buffer[
5 + lenR]
15664 if (lenS ===
0) return false
15665 if ((
6 + lenR + lenS) !== buffer.length) return false
15667 if (buffer[
4] &
0x80) return false
15668 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
15670 if (buffer[lenR +
6] &
0x80) return false
15671 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
15675 function decode (buffer) {
15676 if (buffer.length <
8) throw new Error('DER sequence length is too short')
15677 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
15678 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
15679 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
15680 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
15682 var lenR = buffer[
3]
15683 if (lenR ===
0) throw new Error('R length is zero')
15684 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
15685 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
15687 var lenS = buffer[
5 + lenR]
15688 if (lenS ===
0) throw new Error('S length is zero')
15689 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
15691 if (buffer[
4] &
0x80) throw new Error('R value is negative')
15692 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
15694 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
15695 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
15697 // non-BIP66 - extract R, S values
15699 r: buffer.slice(
4,
4 + lenR),
15700 s: buffer.slice(
6 + lenR)
15705 * Expects r and s to be positive DER integers.
15707 * The DER format uses the most significant bit as a sign bit (&
0x80).
15708 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
15723 *
62300 =
> 0x00f35c
15724 * -
62300 =
> 0xff0ca4
15726 function encode (r, s) {
15727 var lenR = r.length
15728 var lenS = s.length
15729 if (lenR ===
0) throw new Error('R length is zero')
15730 if (lenS ===
0) throw new Error('S length is zero')
15731 if (lenR
> 33) throw new Error('R length is too long')
15732 if (lenS
> 33) throw new Error('S length is too long')
15733 if (r[
0] &
0x80) throw new Error('R value is negative')
15734 if (s[
0] &
0x80) throw new Error('S value is negative')
15735 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
15736 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
15738 var signature = Buffer.allocUnsafe(
6 + lenR + lenS)
15740 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15741 signature[
0] =
0x30
15742 signature[
1] = signature.length -
2
15743 signature[
2] =
0x02
15744 signature[
3] = r.length
15745 r.copy(signature,
4)
15746 signature[
4 + lenR] =
0x02
15747 signature[
5 + lenR] = s.length
15748 s.copy(signature,
6 + lenR)
15759 },{
"safe-buffer":
98}],
40:[function(require,module,exports){
15763 "OP_PUSHDATA1":
76,
15764 "OP_PUSHDATA2":
77,
15765 "OP_PUSHDATA4":
78,
15791 "OP_VERNOTIF":
102,
15797 "OP_TOALTSTACK":
107,
15798 "OP_FROMALTSTACK":
108,
15828 "OP_EQUALVERIFY":
136,
15829 "OP_RESERVED1":
137,
15830 "OP_RESERVED2":
138,
15839 "OP_0NOTEQUAL":
146,
15850 "OP_NUMEQUAL":
156,
15851 "OP_NUMEQUALVERIFY":
157,
15852 "OP_NUMNOTEQUAL":
158,
15853 "OP_LESSTHAN":
159,
15854 "OP_GREATERTHAN":
160,
15855 "OP_LESSTHANOREQUAL":
161,
15856 "OP_GREATERTHANOREQUAL":
162,
15862 "OP_RIPEMD160":
166,
15867 "OP_CODESEPARATOR":
171,
15868 "OP_CHECKSIG":
172,
15869 "OP_CHECKSIGVERIFY":
173,
15870 "OP_CHECKMULTISIG":
174,
15871 "OP_CHECKMULTISIGVERIFY":
175,
15875 "OP_CHECKLOCKTIMEVERIFY":
177,
15886 "OP_PUBKEYHASH":
253,
15888 "OP_INVALIDOPCODE":
255
15891 },{}],
41:[function(require,module,exports){
15892 var OPS = require('./index.json')
15895 for (var op in OPS) {
15900 module.exports = map
15902 },{
"./index.json":
40}],
42:[function(require,module,exports){
15903 var Buffer = require('safe-buffer').Buffer
15904 var bs58check = require('bs58check')
15905 var bscript = require('./script')
15906 var networks = require('./networks')
15907 var typeforce = require('typeforce')
15908 var types = require('./types')
15910 function fromBase58Check (address) {
15911 var payload = bs58check.decode(address)
15912 if (payload.length <
21) throw new TypeError(address + ' is too short')
15913 if (payload.length
> 21) throw new TypeError(address + ' is too long')
15915 var version = payload.readUInt8(
0)
15916 var hash = payload.slice(
1)
15918 return { hash: hash, version: version }
15921 function toBase58Check (hash, version) {
15922 typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
15924 var payload = Buffer.allocUnsafe(
21)
15925 payload.writeUInt8(version,
0)
15926 hash.copy(payload,
1)
15928 return bs58check.encode(payload)
15931 function fromOutputScript (outputScript, network) {
15932 network = network || networks.bitcoin
15934 if (bscript.pubKeyHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
3,
23), network.pubKeyHash)
15935 if (bscript.scriptHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
2,
22), network.scriptHash)
15937 throw new Error(bscript.toASM(outputScript) + ' has no matching Address')
15940 function toOutputScript (address, network) {
15941 network = network || networks.bitcoin
15943 var decode = fromBase58Check(address)
15944 if (decode.version === network.pubKeyHash) return bscript.pubKeyHash.output.encode(decode.hash)
15945 if (decode.version === network.scriptHash) return bscript.scriptHash.output.encode(decode.hash)
15947 throw new Error(address + ' has no matching Script')
15951 fromBase58Check: fromBase58Check,
15952 fromOutputScript: fromOutputScript,
15953 toBase58Check: toBase58Check,
15954 toOutputScript: toOutputScript
15957 },{
"./networks":
51,
"./script":
52,
"./types":
78,
"bs58check":
80,
"safe-buffer":
98,
"typeforce":
109}],
43:[function(require,module,exports){
15958 var Buffer = require('safe-buffer').Buffer
15959 var bcrypto = require('./crypto')
15960 var fastMerkleRoot = require('merkle-lib/fastRoot')
15961 var typeforce = require('typeforce')
15962 var types = require('./types')
15963 var varuint = require('varuint-bitcoin')
15965 var Transaction = require('./transaction')
15967 function Block () {
15969 this.prevHash = null
15970 this.merkleRoot = null
15976 Block.fromBuffer = function (buffer) {
15977 if (buffer.length <
80) throw new Error('Buffer too small (<
80 bytes)')
15980 function readSlice (n) {
15982 return buffer.slice(offset - n, offset)
15985 function readUInt32 () {
15986 var i = buffer.readUInt32LE(offset)
15991 function readInt32 () {
15992 var i = buffer.readInt32LE(offset)
15997 var block = new Block()
15998 block.version = readInt32()
15999 block.prevHash = readSlice(
32)
16000 block.merkleRoot = readSlice(
32)
16001 block.timestamp = readUInt32()
16002 block.bits = readUInt32()
16003 block.nonce = readUInt32()
16005 if (buffer.length ===
80) return block
16007 function readVarInt () {
16008 var vi = varuint.decode(buffer, offset)
16009 offset += varuint.decode.bytes
16013 function readTransaction () {
16014 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
16015 offset += tx.byteLength()
16019 var nTransactions = readVarInt()
16020 block.transactions = []
16022 for (var i =
0; i < nTransactions; ++i) {
16023 var tx = readTransaction()
16024 block.transactions.push(tx)
16030 Block.prototype.byteLength = function (headersOnly) {
16031 if (headersOnly || !this.transactions) return
80
16033 return
80 + varuint.encodingLength(this.transactions.length) + this.transactions.reduce(function (a, x) {
16034 return a + x.byteLength()
16038 Block.fromHex = function (hex) {
16039 return Block.fromBuffer(Buffer.from(hex, 'hex'))
16042 Block.prototype.getHash = function () {
16043 return bcrypto.hash256(this.toBuffer(true))
16046 Block.prototype.getId = function () {
16047 return this.getHash().reverse().toString('hex')
16050 Block.prototype.getUTCDate = function () {
16051 var date = new Date(
0) // epoch
16052 date.setUTCSeconds(this.timestamp)
16057 // TODO: buffer, offset compatibility
16058 Block.prototype.toBuffer = function (headersOnly) {
16059 var buffer = Buffer.allocUnsafe(this.byteLength(headersOnly))
16062 function writeSlice (slice) {
16063 slice.copy(buffer, offset)
16064 offset += slice.length
16067 function writeInt32 (i) {
16068 buffer.writeInt32LE(i, offset)
16071 function writeUInt32 (i) {
16072 buffer.writeUInt32LE(i, offset)
16076 writeInt32(this.version)
16077 writeSlice(this.prevHash)
16078 writeSlice(this.merkleRoot)
16079 writeUInt32(this.timestamp)
16080 writeUInt32(this.bits)
16081 writeUInt32(this.nonce)
16083 if (headersOnly || !this.transactions) return buffer
16085 varuint.encode(this.transactions.length, buffer, offset)
16086 offset += varuint.encode.bytes
16088 this.transactions.forEach(function (tx) {
16089 var txSize = tx.byteLength() // TODO: extract from toBuffer?
16090 tx.toBuffer(buffer, offset)
16097 Block.prototype.toHex = function (headersOnly) {
16098 return this.toBuffer(headersOnly).toString('hex')
16101 Block.calculateTarget = function (bits) {
16102 var exponent = ((bits &
0xff000000)
>> 24) -
3
16103 var mantissa = bits &
0x007fffff
16104 var target = Buffer.alloc(
32,
0)
16105 target.writeUInt32BE(mantissa,
28 - exponent)
16109 Block.calculateMerkleRoot = function (transactions) {
16110 typeforce([{ getHash: types.Function }], transactions)
16111 if (transactions.length ===
0) throw TypeError('Cannot compute merkle root for zero transactions')
16113 var hashes = transactions.map(function (transaction) {
16114 return transaction.getHash()
16117 return fastMerkleRoot(hashes, bcrypto.hash256)
16120 Block.prototype.checkMerkleRoot = function () {
16121 if (!this.transactions) return false
16123 var actualMerkleRoot = Block.calculateMerkleRoot(this.transactions)
16124 return this.merkleRoot.compare(actualMerkleRoot) ===
0
16127 Block.prototype.checkProofOfWork = function () {
16128 var hash = this.getHash().reverse()
16129 var target = Block.calculateTarget(this.bits)
16131 return hash.compare(target) <=
0
16134 module.exports = Block
16136 },{
"./crypto":
45,
"./transaction":
76,
"./types":
78,
"merkle-lib/fastRoot":
94,
"safe-buffer":
98,
"typeforce":
109,
"varuint-bitcoin":
111}],
44:[function(require,module,exports){
16137 var pushdata = require('pushdata-bitcoin')
16138 var varuint = require('varuint-bitcoin')
16140 // https://github.com/feross/buffer/blob/master/index.js#L1127
16141 function verifuint (value, max) {
16142 if (typeof value !== 'number') throw new Error('cannot write a non-number as a number')
16143 if (value <
0) throw new Error('specified a negative value for writing an unsigned value')
16144 if (value
> max) throw new Error('RangeError: value out of range')
16145 if (Math.floor(value) !== value) throw new Error('value has a fractional component')
16148 function readUInt64LE (buffer, offset) {
16149 var a = buffer.readUInt32LE(offset)
16150 var b = buffer.readUInt32LE(offset +
4)
16153 verifuint(b + a,
0x001fffffffffffff)
16158 function writeUInt64LE (buffer, value, offset) {
16159 verifuint(value,
0x001fffffffffffff)
16161 buffer.writeInt32LE(value & -
1, offset)
16162 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16166 // TODO: remove in
4.0.0?
16167 function readVarInt (buffer, offset) {
16168 var result = varuint.decode(buffer, offset)
16172 size: varuint.decode.bytes
16176 // TODO: remove in
4.0.0?
16177 function writeVarInt (buffer, number, offset) {
16178 varuint.encode(number, buffer, offset)
16179 return varuint.encode.bytes
16183 pushDataSize: pushdata.encodingLength,
16184 readPushDataInt: pushdata.decode,
16185 readUInt64LE: readUInt64LE,
16186 readVarInt: readVarInt,
16187 varIntBuffer: varuint.encode,
16188 varIntSize: varuint.encodingLength,
16189 writePushDataInt: pushdata.encode,
16190 writeUInt64LE: writeUInt64LE,
16191 writeVarInt: writeVarInt
16194 },{"pushdata-bitcoin":
95,"varuint-bitcoin":
111}],
45:[function(require,module,exports){
16195 var createHash = require('create-hash')
16197 function ripemd160 (buffer) {
16198 return createHash('rmd160').update(buffer).digest()
16201 function sha1 (buffer) {
16202 return createHash('sha1').update(buffer).digest()
16205 function sha256 (buffer) {
16206 return createHash('sha256').update(buffer).digest()
16209 function hash160 (buffer) {
16210 return ripemd160(sha256(buffer))
16213 function hash256 (buffer) {
16214 return sha256(sha256(buffer))
16220 ripemd160: ripemd160,
16225 },{"create-hash":
82}],
46:[function(require,module,exports){
16226 var Buffer = require('safe-buffer').Buffer
16227 var createHmac = require('create-hmac')
16228 var typeforce = require('typeforce')
16229 var types = require('./types')
16231 var BigInteger = require('bigi')
16232 var ECSignature = require('./ecsignature')
16234 var ZERO = Buffer.alloc(
1,
0)
16235 var ONE = Buffer.alloc(
1,
1)
16237 var ecurve = require('ecurve')
16238 var secp256k1 = ecurve.getCurveByName('secp256k1')
16240 // https://tools.ietf.org/html/rfc6979#section-
3.2
16241 function deterministicGenerateK (hash, x, checkSig) {
16242 typeforce(types.tuple(
16244 types.Buffer256bit,
16248 // Step A, ignored as hash already provided
16251 var k = Buffer.alloc(
32,
0)
16252 var v = Buffer.alloc(
32,
1)
16255 k = createHmac('sha256', k)
16263 v = createHmac('sha256', k).update(v).digest()
16266 k = createHmac('sha256', k)
16274 v = createHmac('sha256', k).update(v).digest()
16276 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
16278 v = createHmac('sha256', k).update(v).digest()
16280 var T = BigInteger.fromBuffer(v)
16282 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
16283 while (T.signum() <=
0 || T.compareTo(secp256k1.n)
>=
0 || !checkSig(T)) {
16284 k = createHmac('sha256', k)
16289 v = createHmac('sha256', k).update(v).digest()
16291 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
16293 v = createHmac('sha256', k).update(v).digest()
16294 T = BigInteger.fromBuffer(v)
16300 var N_OVER_TWO = secp256k1.n.shiftRight(
1)
16302 function sign (hash, d) {
16303 typeforce(types.tuple(types.Hash256bit, types.BigInt), arguments)
16305 var x = d.toBuffer(
32)
16306 var e = BigInteger.fromBuffer(hash)
16307 var n = secp256k1.n
16308 var G = secp256k1.G
16311 deterministicGenerateK(hash, x, function (k) {
16312 var Q = G.multiply(k)
16314 if (secp256k1.isInfinity(Q)) return false
16316 r = Q.affineX.mod(n)
16317 if (r.signum() ===
0) return false
16319 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
16320 if (s.signum() ===
0) return false
16325 // enforce low S values, see bip62: 'low s values in signatures'
16326 if (s.compareTo(N_OVER_TWO)
> 0) {
16330 return new ECSignature(r, s)
16333 function verify (hash, signature, Q) {
16334 typeforce(types.tuple(
16340 var n = secp256k1.n
16341 var G = secp256k1.G
16343 var r = signature.r
16344 var s = signature.s
16346 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
16347 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
16348 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
16350 //
1.4.2 H = Hash(M), already done by the user
16352 var e = BigInteger.fromBuffer(hash)
16355 var sInv = s.modInverse(n)
16357 //
1.4.4 Compute u1 = es^−
1 mod n
16358 // u2 = rs^−
1 mod n
16359 var u1 = e.multiply(sInv).mod(n)
16360 var u2 = r.multiply(sInv).mod(n)
16362 //
1.4.5 Compute R = (xR, yR)
16364 var R = G.multiplyTwo(u1, Q, u2)
16366 //
1.4.5 (cont.) Enforce R is not at infinity
16367 if (secp256k1.isInfinity(R)) return false
16369 //
1.4.6 Convert the field element R.x to an integer
16372 //
1.4.7 Set v = xR mod n
16375 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
16380 deterministicGenerateK: deterministicGenerateK,
16388 },{"./ecsignature":
48,"./types":
78,"bigi":
37,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
47:[function(require,module,exports){
16389 var baddress = require('./address')
16390 var bcrypto = require('./crypto')
16391 var ecdsa = require('./ecdsa')
16392 var randomBytes = require('randombytes')
16393 var typeforce = require('typeforce')
16394 var types = require('./types')
16395 var wif = require('wif')
16397 var NETWORKS = require('./networks')
16398 var BigInteger = require('bigi')
16400 var ecurve = require('ecurve')
16401 var secp256k1 = ecdsa.__curve
16403 function ECPair (d, Q, options) {
16406 compressed: types.maybe(types.Boolean),
16407 network: types.maybe(types.Network)
16411 options = options || {}
16414 if (d.signum() <=
0) throw new Error('Private key must be greater than
0')
16415 if (d.compareTo(secp256k1.n)
>=
0) throw new Error('Private key must be less than the curve order')
16416 if (Q) throw new TypeError('Unexpected publicKey parameter')
16420 typeforce(types.ECPoint, Q)
16425 this.compressed = options.compressed === undefined ? true : options.compressed
16426 this.network = options.network || NETWORKS.bitcoin
16429 Object.defineProperty(ECPair.prototype, 'Q', {
16431 if (!this.__Q && this.d) {
16432 this.__Q = secp256k1.G.multiply(this.d)
16439 ECPair.fromPublicKeyBuffer = function (buffer, network) {
16440 var Q = ecurve.Point.decodeFrom(secp256k1, buffer)
16442 return new ECPair(null, Q, {
16443 compressed: Q.compressed,
16448 ECPair.fromWIF = function (string, network) {
16449 var decoded = wif.decode(string)
16450 var version = decoded.version
16452 // list of networks?
16453 if (types.Array(network)) {
16454 network = network.filter(function (x) {
16455 return version === x.wif
16458 if (!network) throw new Error('Unknown network version')
16460 // otherwise, assume a network object (or default to bitcoin)
16462 network = network || NETWORKS.bitcoin
16464 if (version !== network.wif) throw new Error('Invalid network version')
16467 var d = BigInteger.fromBuffer(decoded.privateKey)
16469 return new ECPair(d, null, {
16470 compressed: decoded.compressed,
16475 ECPair.makeRandom = function (options) {
16476 options = options || {}
16478 var rng = options.rng || randomBytes
16482 var buffer = rng(
32)
16483 typeforce(types.Buffer256bit, buffer)
16485 d = BigInteger.fromBuffer(buffer)
16486 } while (d.signum() <=
0 || d.compareTo(secp256k1.n)
>=
0)
16488 return new ECPair(d, null, options)
16491 ECPair.prototype.getAddress = function () {
16492 return baddress.toBase58Check(bcrypto.hash160(this.getPublicKeyBuffer()), this.getNetwork().pubKeyHash)
16495 ECPair.prototype.getNetwork = function () {
16496 return this.network
16499 ECPair.prototype.getPublicKeyBuffer = function () {
16500 return this.Q.getEncoded(this.compressed)
16503 ECPair.prototype.sign = function (hash) {
16504 if (!this.d) throw new Error('Missing private key')
16506 return ecdsa.sign(hash, this.d)
16509 ECPair.prototype.toWIF = function () {
16510 if (!this.d) throw new Error('Missing private key')
16512 return wif.encode(this.network.wif, this.d.toBuffer(
32), this.compressed)
16515 ECPair.prototype.verify = function (hash, signature) {
16516 return ecdsa.verify(hash, signature, this.Q)
16519 module.exports = ECPair
16521 },{"./address":
42,"./crypto":
45,"./ecdsa":
46,"./networks":
51,"./types":
78,"bigi":
37,"ecurve":
89,"randombytes":
96,"typeforce":
109,"wif":
112}],
48:[function(require,module,exports){
16522 (function (Buffer){
16523 var bip66 = require('bip66')
16524 var typeforce = require('typeforce')
16525 var types = require('./types')
16527 var BigInteger = require('bigi')
16529 function ECSignature (r, s) {
16530 typeforce(types.tuple(types.BigInt, types.BigInt), arguments)
16536 ECSignature.parseCompact = function (buffer) {
16537 if (buffer.length !==
65) throw new Error('Invalid signature length')
16539 var flagByte = buffer.readUInt8(
0) -
27
16540 if (flagByte !== (flagByte &
7)) throw new Error('Invalid signature parameter')
16542 var compressed = !!(flagByte &
4)
16543 var recoveryParam = flagByte &
3
16545 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
16546 var s = BigInteger.fromBuffer(buffer.slice(
33))
16549 compressed: compressed,
16551 signature: new ECSignature(r, s)
16555 ECSignature.fromDER = function (buffer) {
16556 var decode = bip66.decode(buffer)
16557 var r = BigInteger.fromDERInteger(decode.r)
16558 var s = BigInteger.fromDERInteger(decode.s)
16560 return new ECSignature(r, s)
16563 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
16564 ECSignature.parseScriptSignature = function (buffer) {
16565 var hashType = buffer.readUInt8(buffer.length -
1)
16566 var hashTypeMod = hashType & ~
0x80
16568 if (hashTypeMod <=
0x00 || hashTypeMod
>=
0x04) throw new Error('Invalid hashType ' + hashType)
16571 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
16576 ECSignature.prototype.toCompact = function (i, compressed) {
16583 var buffer = Buffer.alloc(
65)
16584 buffer.writeUInt8(i,
0)
16585 this.r.toBuffer(
32).copy(buffer,
1)
16586 this.s.toBuffer(
32).copy(buffer,
33)
16591 ECSignature.prototype.toDER = function () {
16592 var r = Buffer.from(this.r.toDERInteger())
16593 var s = Buffer.from(this.s.toDERInteger())
16595 return bip66.encode(r, s)
16598 ECSignature.prototype.toScriptSignature = function (hashType) {
16599 var hashTypeMod = hashType & ~
0x80
16600 if (hashTypeMod <=
0 || hashTypeMod
>=
4) throw new Error('Invalid hashType ' + hashType)
16602 var hashTypeBuffer = Buffer.alloc(
1)
16603 hashTypeBuffer.writeUInt8(hashType,
0)
16605 return Buffer.concat([this.toDER(), hashTypeBuffer])
16608 module.exports = ECSignature
16610 }).call(this,require("buffer").Buffer)
16611 },{"./types":
78,"bigi":
37,"bip66":
39,"buffer":
4,"typeforce":
109}],
49:[function(require,module,exports){
16612 var Buffer = require('safe-buffer').Buffer
16613 var base58check = require('bs58check')
16614 var bcrypto = require('./crypto')
16615 var createHmac = require('create-hmac')
16616 var typeforce = require('typeforce')
16617 var types = require('./types')
16618 var NETWORKS = require('./networks')
16620 var BigInteger = require('bigi')
16621 var ECPair = require('./ecpair')
16623 var ecurve = require('ecurve')
16624 var curve = ecurve.getCurveByName('secp256k1')
16626 function HDNode (keyPair, chainCode) {
16627 typeforce(types.tuple('ECPair', types.Buffer256bit), arguments)
16629 if (!keyPair.compressed) throw new TypeError('BIP32 only allows compressed keyPairs')
16631 this.keyPair = keyPair
16632 this.chainCode = chainCode
16635 this.parentFingerprint =
0x00000000
16638 HDNode.HIGHEST_BIT =
0x80000000
16640 HDNode.MASTER_SECRET = Buffer.from('Bitcoin seed', 'utf8')
16642 HDNode.fromSeedBuffer = function (seed, network) {
16643 typeforce(types.tuple(types.Buffer, types.maybe(types.Network)), arguments)
16645 if (seed.length <
16) throw new TypeError('Seed should be at least
128 bits')
16646 if (seed.length
> 64) throw new TypeError('Seed should be at most
512 bits')
16648 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
16649 var IL = I.slice(
0,
32)
16650 var IR = I.slice(
32)
16652 // In case IL is
0 or
>= n, the master key is invalid
16653 // This is handled by the ECPair constructor
16654 var pIL = BigInteger.fromBuffer(IL)
16655 var keyPair = new ECPair(pIL, null, {
16659 return new HDNode(keyPair, IR)
16662 HDNode.fromSeedHex = function (hex, network) {
16663 return HDNode.fromSeedBuffer(Buffer.from(hex, 'hex'), network)
16666 HDNode.fromBase58 = function (string, networks) {
16667 var buffer = base58check.decode(string)
16668 if (buffer.length !==
78) throw new Error('Invalid buffer length')
16670 //
4 bytes: version bytes
16671 var version = buffer.readUInt32BE(
0)
16674 // list of networks?
16675 if (Array.isArray(networks)) {
16676 network = networks.filter(function (x) {
16677 return version === x.bip32.private ||
16678 version === x.bip32.public
16681 if (!network) throw new Error('Unknown network version')
16683 // otherwise, assume a network object (or default to bitcoin)
16685 network = networks || NETWORKS.bitcoin
16688 if (version !== network.bip32.private &&
16689 version !== network.bip32.public) throw new Error('Invalid network version')
16691 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
16692 var depth = buffer[
4]
16694 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16695 var parentFingerprint = buffer.readUInt32BE(
5)
16697 if (parentFingerprint !==
0x00000000) throw new Error('Invalid parent fingerprint')
16700 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16701 // This is encoded in MSB order. (
0x00000000 if master key)
16702 var index = buffer.readUInt32BE(
9)
16703 if (depth ===
0 && index !==
0) throw new Error('Invalid index')
16705 //
32 bytes: the chain code
16706 var chainCode = buffer.slice(
13,
45)
16709 //
33 bytes: private key data (
0x00 + k)
16710 if (version === network.bip32.private) {
16711 if (buffer.readUInt8(
45) !==
0x00) throw new Error('Invalid private key')
16713 var d = BigInteger.fromBuffer(buffer.slice(
46,
78))
16714 keyPair = new ECPair(d, null, { network: network })
16716 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
16718 var Q = ecurve.Point.decodeFrom(curve, buffer.slice(
45,
78))
16719 // Q.compressed is assumed, if somehow this assumption is broken, `new HDNode` will throw
16721 // Verify that the X coordinate in the public point corresponds to a point on the curve.
16722 // If not, the extended public key is invalid.
16725 keyPair = new ECPair(null, Q, { network: network })
16728 var hd = new HDNode(keyPair, chainCode)
16731 hd.parentFingerprint = parentFingerprint
16736 HDNode.prototype.getAddress = function () {
16737 return this.keyPair.getAddress()
16740 HDNode.prototype.getIdentifier = function () {
16741 return bcrypto.hash160(this.keyPair.getPublicKeyBuffer())
16744 HDNode.prototype.getFingerprint = function () {
16745 return this.getIdentifier().slice(
0,
4)
16748 HDNode.prototype.getNetwork = function () {
16749 return this.keyPair.getNetwork()
16752 HDNode.prototype.getPublicKeyBuffer = function () {
16753 return this.keyPair.getPublicKeyBuffer()
16756 HDNode.prototype.neutered = function () {
16757 var neuteredKeyPair = new ECPair(null, this.keyPair.Q, {
16758 network: this.keyPair.network
16761 var neutered = new HDNode(neuteredKeyPair, this.chainCode)
16762 neutered.depth = this.depth
16763 neutered.index = this.index
16764 neutered.parentFingerprint = this.parentFingerprint
16769 HDNode.prototype.sign = function (hash) {
16770 return this.keyPair.sign(hash)
16773 HDNode.prototype.verify = function (hash, signature) {
16774 return this.keyPair.verify(hash, signature)
16777 HDNode.prototype.toBase58 = function (__isPrivate) {
16778 if (__isPrivate !== undefined) throw new TypeError('Unsupported argument in
2.0.0')
16781 var network = this.keyPair.network
16782 var version = (!this.isNeutered()) ? network.bip32.private : network.bip32.public
16783 var buffer = Buffer.allocUnsafe(
78)
16785 //
4 bytes: version bytes
16786 buffer.writeUInt32BE(version,
0)
16788 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
16789 buffer.writeUInt8(this.depth,
4)
16791 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16792 buffer.writeUInt32BE(this.parentFingerprint,
5)
16794 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16795 // This is encoded in big endian. (
0x00000000 if master key)
16796 buffer.writeUInt32BE(this.index,
9)
16798 //
32 bytes: the chain code
16799 this.chainCode.copy(buffer,
13)
16801 //
33 bytes: the public key or private key data
16802 if (!this.isNeutered()) {
16803 //
0x00 + k for private keys
16804 buffer.writeUInt8(
0,
45)
16805 this.keyPair.d.toBuffer(
32).copy(buffer,
46)
16807 //
33 bytes: the public key
16809 // X9.62 encoding for public keys
16810 this.keyPair.getPublicKeyBuffer().copy(buffer,
45)
16813 return base58check.encode(buffer)
16816 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
16817 HDNode.prototype.derive = function (index) {
16818 typeforce(types.UInt32, index)
16820 var isHardened = index
>= HDNode.HIGHEST_BIT
16821 var data = Buffer.allocUnsafe(
37)
16825 if (this.isNeutered()) throw new TypeError('Could not derive hardened child key')
16827 // data =
0x00 || ser256(kpar) || ser32(index)
16829 this.keyPair.d.toBuffer(
32).copy(data,
1)
16830 data.writeUInt32BE(index,
33)
16834 // data = serP(point(kpar)) || ser32(index)
16835 // = serP(Kpar) || ser32(index)
16836 this.keyPair.getPublicKeyBuffer().copy(data,
0)
16837 data.writeUInt32BE(index,
33)
16840 var I = createHmac('sha512', this.chainCode).update(data).digest()
16841 var IL = I.slice(
0,
32)
16842 var IR = I.slice(
32)
16844 var pIL = BigInteger.fromBuffer(IL)
16846 // In case parse256(IL)
>= n, proceed with the next value for i
16847 if (pIL.compareTo(curve.n)
>=
0) {
16848 return this.derive(index +
1)
16851 // Private parent key -
> private child key
16853 if (!this.isNeutered()) {
16854 // ki = parse256(IL) + kpar (mod n)
16855 var ki = pIL.add(this.keyPair.d).mod(curve.n)
16857 // In case ki ==
0, proceed with the next value for i
16858 if (ki.signum() ===
0) {
16859 return this.derive(index +
1)
16862 derivedKeyPair = new ECPair(ki, null, {
16863 network: this.keyPair.network
16866 // Public parent key -
> public child key
16868 // Ki = point(parse256(IL)) + Kpar
16870 var Ki = curve.G.multiply(pIL).add(this.keyPair.Q)
16872 // In case Ki is the point at infinity, proceed with the next value for i
16873 if (curve.isInfinity(Ki)) {
16874 return this.derive(index +
1)
16877 derivedKeyPair = new ECPair(null, Ki, {
16878 network: this.keyPair.network
16882 var hd = new HDNode(derivedKeyPair, IR)
16883 hd.depth = this.depth +
1
16885 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
16890 HDNode.prototype.deriveHardened = function (index) {
16891 typeforce(types.UInt31, index)
16893 // Only derives hardened private keys by default
16894 return this.derive(index + HDNode.HIGHEST_BIT)
16897 // Private === not neutered
16898 // Public === neutered
16899 HDNode.prototype.isNeutered = function () {
16900 return !(this.keyPair.d)
16903 HDNode.prototype.derivePath = function (path) {
16904 typeforce(types.BIP32Path, path)
16906 var splitPath = path.split('/')
16907 if (splitPath[
0] === 'm') {
16908 if (this.parentFingerprint) {
16909 throw new Error('Not a master node')
16912 splitPath = splitPath.slice(
1)
16915 return splitPath.reduce(function (prevHd, indexStr) {
16917 if (indexStr.slice(-
1) === "'") {
16918 index = parseInt(indexStr.slice(
0, -
1),
10)
16919 return prevHd.deriveHardened(index)
16921 index = parseInt(indexStr,
10)
16922 return prevHd.derive(index)
16927 module.exports = HDNode
16929 },{"./crypto":
45,"./ecpair":
47,"./networks":
51,"./types":
78,"bigi":
37,"bs58check":
80,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
50:[function(require,module,exports){
16931 Block: require('./block'),
16932 ECPair: require('./ecpair'),
16933 ECSignature: require('./ecsignature'),
16934 HDNode: require('./hdnode'),
16935 Transaction: require('./transaction'),
16936 TransactionBuilder: require('./transaction_builder'),
16938 address: require('./address'),
16939 bufferutils: require('./bufferutils'), // TODO: remove in
4.0.0
16940 crypto: require('./crypto'),
16941 networks: require('./networks'),
16942 opcodes: require('bitcoin-ops'),
16943 script: require('./script')
16946 },{"./address":
42,"./block":
43,"./bufferutils":
44,"./crypto":
45,"./ecpair":
47,"./ecsignature":
48,"./hdnode":
49,"./networks":
51,"./script":
52,"./transaction":
76,"./transaction_builder":
77,"bitcoin-ops":
40}],
51:[function(require,module,exports){
16947 // https://en.bitcoin.it/wiki/List_of_address_prefixes
16948 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
16952 messagePrefix: '\x18Bitcoin Signed Message:\n',
16954 public:
0x0488b21e,
16955 private:
0x0488ade4
16962 messagePrefix: '\x18Bitcoin Signed Message:\n',
16964 public:
0x043587cf,
16965 private:
0x04358394
16972 messagePrefix: '\x19Litecoin Signed Message:\n',
16974 public:
0x0488b21e,
16975 private:
0x0488ade4,
16982 messagePrefix: '\x19Litecoin Signed Message:\n',
16984 public:
0x019da462,
16985 private:
0x019d9cfe
16993 },{}],
52:[function(require,module,exports){
16994 var Buffer = require('safe-buffer').Buffer
16995 var bip66 = require('bip66')
16996 var pushdata = require('pushdata-bitcoin')
16997 var typeforce = require('typeforce')
16998 var types = require('./types')
16999 var scriptNumber = require('./script_number')
17001 var OPS = require('bitcoin-ops')
17002 var REVERSE_OPS = require('bitcoin-ops/map')
17003 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17005 function isOPInt (value) {
17006 return types.Number(value) &&
17007 ((value === OPS.OP_0) ||
17008 (value
>= OPS.OP_1 && value <= OPS.OP_16) ||
17009 (value === OPS.OP_1NEGATE))
17012 function isPushOnlyChunk (value) {
17013 return types.Buffer(value) || isOPInt(value)
17016 function isPushOnly (value) {
17017 return types.Array(value) && value.every(isPushOnlyChunk)
17020 function compile (chunks) {
17022 if (Buffer.isBuffer(chunks)) return chunks
17024 typeforce(types.Array, chunks)
17026 var bufferSize = chunks.reduce(function (accum, chunk) {
17028 if (Buffer.isBuffer(chunk)) {
17029 // adhere to BIP62.3, minimal push policy
17030 if (chunk.length ===
1 && (chunk[
0] ===
0x81 || (chunk[
0]
>=
1 && chunk[
0] <=
16))) {
17034 return accum + pushdata.encodingLength(chunk.length) + chunk.length
17041 var buffer = Buffer.allocUnsafe(bufferSize)
17044 chunks.forEach(function (chunk) {
17046 if (Buffer.isBuffer(chunk)) {
17047 // adhere to BIP62.3, minimal push policy
17048 if (chunk.length ===
1 && chunk[
0]
>=
1 && chunk[
0] <=
16) {
17049 var opcode = OP_INT_BASE + chunk[
0]
17050 buffer.writeUInt8(opcode, offset)
17055 if (chunk.length ===
1 && chunk[
0] ===
0x81) {
17056 buffer.writeUInt8(OPS.OP_1NEGATE, offset)
17061 offset += pushdata.encode(buffer, chunk.length, offset)
17063 chunk.copy(buffer, offset)
17064 offset += chunk.length
17068 buffer.writeUInt8(chunk, offset)
17073 if (offset !== buffer.length) throw new Error('Could not decode chunks')
17077 function decompile (buffer) {
17079 if (types.Array(buffer)) return buffer
17081 typeforce(types.Buffer, buffer)
17086 while (i < buffer.length) {
17087 var opcode = buffer[i]
17090 if ((opcode
> OPS.OP_0) && (opcode <= OPS.OP_PUSHDATA4)) {
17091 var d = pushdata.decode(buffer, i)
17093 // did reading a pushDataInt fail? empty script
17094 if (d === null) return []
17097 // attempt to read too much data? empty script
17098 if (i + d.number
> buffer.length) return []
17100 var data = buffer.slice(i, i + d.number)
17107 chunks.push(opcode)
17116 function toASM (chunks) {
17117 if (Buffer.isBuffer(chunks)) {
17118 chunks = decompile(chunks)
17121 return chunks.map(function (chunk) {
17123 if (Buffer.isBuffer(chunk)) return chunk.toString('hex')
17126 return REVERSE_OPS[chunk]
17130 function fromASM (asm) {
17131 typeforce(types.String, asm)
17133 return compile(asm.split(' ').map(function (chunkStr) {
17135 if (OPS[chunkStr] !== undefined) return OPS[chunkStr]
17136 typeforce(types.Hex, chunkStr)
17139 return Buffer.from(chunkStr, 'hex')
17143 function toStack (chunks) {
17144 chunks = decompile(chunks)
17145 typeforce(isPushOnly, chunks)
17147 return chunks.map(function (op) {
17148 if (Buffer.isBuffer(op)) return op
17149 if (op === OPS.OP_0) return Buffer.allocUnsafe(
0)
17151 return scriptNumber.encode(op - OP_INT_BASE)
17155 function isCanonicalPubKey (buffer) {
17156 if (!Buffer.isBuffer(buffer)) return false
17157 if (buffer.length <
33) return false
17159 switch (buffer[
0]) {
17162 return buffer.length ===
33
17164 return buffer.length ===
65
17170 function isDefinedHashType (hashType) {
17171 var hashTypeMod = hashType & ~
0x80
17173 // return hashTypeMod
> SIGHASH_ALL && hashTypeMod < SIGHASH_SINGLE
17174 return hashTypeMod
> 0x00 && hashTypeMod <
0x04
17177 function isCanonicalSignature (buffer) {
17178 if (!Buffer.isBuffer(buffer)) return false
17179 if (!isDefinedHashType(buffer[buffer.length -
1])) return false
17181 return bip66.check(buffer.slice(
0, -
1))
17186 decompile: decompile,
17191 number: require('./script_number'),
17193 isCanonicalPubKey: isCanonicalPubKey,
17194 isCanonicalSignature: isCanonicalSignature,
17195 isPushOnly: isPushOnly,
17196 isDefinedHashType: isDefinedHashType
17199 var templates = require('./templates')
17200 for (var key in templates) {
17201 module.exports[key] = templates[key]
17204 },{
"./script_number":
53,
"./templates":
54,
"./types":
78,
"bip66":
39,
"bitcoin-ops":
40,
"bitcoin-ops/map":
41,
"pushdata-bitcoin":
95,
"safe-buffer":
98,
"typeforce":
109}],
53:[function(require,module,exports){
17205 var Buffer = require('safe-buffer').Buffer
17207 function decode (buffer, maxLength, minimal) {
17208 maxLength = maxLength ||
4
17209 minimal = minimal === undefined ? true : minimal
17211 var length = buffer.length
17212 if (length ===
0) return
0
17213 if (length
> maxLength) throw new TypeError('Script number overflow')
17215 if ((buffer[length -
1] &
0x7f) ===
0) {
17216 if (length <=
1 || (buffer[length -
2] &
0x80) ===
0) throw new Error('Non-minimally encoded script number')
17221 if (length ===
5) {
17222 var a = buffer.readUInt32LE(
0)
17223 var b = buffer.readUInt8(
4)
17225 if (b &
0x80) return -(((b & ~
0x80) *
0x100000000) + a)
17226 return (b *
0x100000000) + a
17231 //
32-bit /
24-bit /
16-bit /
8-bit
17232 for (var i =
0; i < length; ++i) {
17233 result |= buffer[i] << (
8 * i)
17236 if (buffer[length -
1] &
0x80) return -(result & ~(
0x80 << (
8 * (length -
1))))
17240 function scriptNumSize (i) {
17241 return i
> 0x7fffffff ?
5
17249 function encode (number) {
17250 var value = Math.abs(number)
17251 var size = scriptNumSize(value)
17252 var buffer = Buffer.allocUnsafe(size)
17253 var negative = number <
0
17255 for (var i =
0; i < size; ++i) {
17256 buffer.writeUInt8(value &
0xff, i)
17260 if (buffer[size -
1] &
0x80) {
17261 buffer.writeUInt8(negative ?
0x80 :
0x00, size -
1)
17262 } else if (negative) {
17263 buffer[size -
1] |=
0x80
17274 },{"safe-buffer":
98}],
54:[function(require,module,exports){
17275 var decompile = require('../script').decompile
17276 var multisig = require('./multisig')
17277 var nullData = require('./nulldata')
17278 var pubKey = require('./pubkey')
17279 var pubKeyHash = require('./pubkeyhash')
17280 var scriptHash = require('./scripthash')
17281 var witnessPubKeyHash = require('./witnesspubkeyhash')
17282 var witnessScriptHash = require('./witnessscripthash')
17283 var witnessCommitment = require('./witnesscommitment')
17286 MULTISIG: 'multisig',
17287 NONSTANDARD: 'nonstandard',
17288 NULLDATA: 'nulldata',
17290 P2PKH: 'pubkeyhash',
17291 P2SH: 'scripthash',
17292 P2WPKH: 'witnesspubkeyhash',
17293 P2WSH: 'witnessscripthash',
17294 WITNESS_COMMITMENT: 'witnesscommitment'
17297 function classifyOutput (script) {
17298 if (witnessPubKeyHash.output.check(script)) return types.P2WPKH
17299 if (witnessScriptHash.output.check(script)) return types.P2WSH
17300 if (pubKeyHash.output.check(script)) return types.P2PKH
17301 if (scriptHash.output.check(script)) return types.P2SH
17303 // XXX: optimization, below functions .decompile before use
17304 var chunks = decompile(script)
17305 if (multisig.output.check(chunks)) return types.MULTISIG
17306 if (pubKey.output.check(chunks)) return types.P2PK
17307 if (witnessCommitment.output.check(chunks)) return types.WITNESS_COMMITMENT
17308 if (nullData.output.check(chunks)) return types.NULLDATA
17310 return types.NONSTANDARD
17313 function classifyInput (script, allowIncomplete) {
17314 // XXX: optimization, below functions .decompile before use
17315 var chunks = decompile(script)
17317 if (pubKeyHash.input.check(chunks)) return types.P2PKH
17318 if (scriptHash.input.check(chunks, allowIncomplete)) return types.P2SH
17319 if (multisig.input.check(chunks, allowIncomplete)) return types.MULTISIG
17320 if (pubKey.input.check(chunks)) return types.P2PK
17322 return types.NONSTANDARD
17325 function classifyWitness (script, allowIncomplete) {
17326 // XXX: optimization, below functions .decompile before use
17327 var chunks = decompile(script)
17329 if (witnessPubKeyHash.input.check(chunks)) return types.P2WPKH
17330 if (witnessScriptHash.input.check(chunks, allowIncomplete)) return types.P2WSH
17332 return types.NONSTANDARD
17336 classifyInput: classifyInput,
17337 classifyOutput: classifyOutput,
17338 classifyWitness: classifyWitness,
17339 multisig: multisig,
17340 nullData: nullData,
17342 pubKeyHash: pubKeyHash,
17343 scriptHash: scriptHash,
17344 witnessPubKeyHash: witnessPubKeyHash,
17345 witnessScriptHash: witnessScriptHash,
17346 witnessCommitment: witnessCommitment,
17350 },{"../script":
52,"./multisig":
55,"./nulldata":
58,"./pubkey":
59,"./pubkeyhash":
62,"./scripthash":
65,"./witnesscommitment":
68,"./witnesspubkeyhash":
70,"./witnessscripthash":
73}],
55:[function(require,module,exports){
17352 input: require('./input'),
17353 output: require('./output')
17356 },{"./input":
56,"./output":
57}],
56:[function(require,module,exports){
17357 // OP_0 [signatures ...]
17359 var Buffer = require('safe-buffer').Buffer
17360 var bscript = require('../../script')
17361 var typeforce = require('typeforce')
17362 var OPS = require('bitcoin-ops')
17364 function partialSignature (value) {
17365 return value === OPS.OP_0 || bscript.isCanonicalSignature(value)
17368 function check (script, allowIncomplete) {
17369 var chunks = bscript.decompile(script)
17370 if (chunks.length <
2) return false
17371 if (chunks[
0] !== OPS.OP_0) return false
17373 if (allowIncomplete) {
17374 return chunks.slice(
1).every(partialSignature)
17377 return chunks.slice(
1).every(bscript.isCanonicalSignature)
17379 check.toJSON = function () { return 'multisig input' }
17381 var EMPTY_BUFFER = Buffer.allocUnsafe(
0)
17383 function encodeStack (signatures, scriptPubKey) {
17384 typeforce([partialSignature], signatures)
17386 if (scriptPubKey) {
17387 var scriptData = bscript.multisig.output.decode(scriptPubKey)
17389 if (signatures.length < scriptData.m) {
17390 throw new TypeError('Not enough signatures provided')
17393 if (signatures.length
> scriptData.pubKeys.length) {
17394 throw new TypeError('Too many signatures provided')
17398 return [].concat(EMPTY_BUFFER, signatures)
17401 function encode (signatures, scriptPubKey) {
17402 return bscript.compile(encodeStack(signatures, scriptPubKey))
17405 function decodeStack (stack, allowIncomplete) {
17406 typeforce(check, stack, allowIncomplete)
17407 return stack.slice(
1)
17410 function decode (buffer, allowIncomplete) {
17411 var stack = bscript.decompile(buffer)
17412 return decodeStack(stack, allowIncomplete)
17418 decodeStack: decodeStack,
17420 encodeStack: encodeStack
17423 },{"../../script":
52,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
57:[function(require,module,exports){
17424 // m [pubKeys ...] n OP_CHECKMULTISIG
17426 var bscript = require('../../script')
17427 var types = require('../../types')
17428 var typeforce = require('typeforce')
17429 var OPS = require('bitcoin-ops')
17430 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17432 function check (script, allowIncomplete) {
17433 var chunks = bscript.decompile(script)
17435 if (chunks.length <
4) return false
17436 if (chunks[chunks.length -
1] !== OPS.OP_CHECKMULTISIG) return false
17437 if (!types.Number(chunks[
0])) return false
17438 if (!types.Number(chunks[chunks.length -
2])) return false
17439 var m = chunks[
0] - OP_INT_BASE
17440 var n = chunks[chunks.length -
2] - OP_INT_BASE
17442 if (m <=
0) return false
17443 if (n
> 16) return false
17444 if (m
> n) return false
17445 if (n !== chunks.length -
3) return false
17446 if (allowIncomplete) return true
17448 var keys = chunks.slice(
1, -
2)
17449 return keys.every(bscript.isCanonicalPubKey)
17451 check.toJSON = function () { return 'multi-sig output' }
17453 function encode (m, pubKeys) {
17456 pubKeys: [bscript.isCanonicalPubKey]
17462 var n = pubKeys.length
17463 if (n < m) throw new TypeError('Not enough pubKeys provided')
17465 return bscript.compile([].concat(
17469 OPS.OP_CHECKMULTISIG
17473 function decode (buffer, allowIncomplete) {
17474 var chunks = bscript.decompile(buffer)
17475 typeforce(check, chunks, allowIncomplete)
17478 m: chunks[
0] - OP_INT_BASE,
17479 pubKeys: chunks.slice(
1, -
2)
17489 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
58:[function(require,module,exports){
17490 // OP_RETURN {data}
17492 var bscript = require('../script')
17493 var types = require('../types')
17494 var typeforce = require('typeforce')
17495 var OPS = require('bitcoin-ops')
17497 function check (script) {
17498 var buffer = bscript.compile(script)
17500 return buffer.length
> 1 &&
17501 buffer[
0] === OPS.OP_RETURN
17503 check.toJSON = function () { return 'null data output' }
17505 function encode (data) {
17506 typeforce(types.Buffer, data)
17508 return bscript.compile([OPS.OP_RETURN, data])
17511 function decode (buffer) {
17512 typeforce(check, buffer)
17514 return buffer.slice(
2)
17525 },{
"../script":
52,
"../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
59:[function(require,module,exports){
17526 arguments[
4][
55][
0].apply(exports,arguments)
17527 },{
"./input":
60,
"./output":
61,
"dup":
55}],
60:[function(require,module,exports){
17530 var bscript = require('../../script')
17531 var types = require('../../types')
17532 var typeforce = require('typeforce')
17534 function check (script) {
17535 var chunks = bscript.decompile(script)
17537 return chunks.length ===
1 &&
17538 bscript.isCanonicalSignature(chunks[
0])
17540 check.toJSON = function () { return 'pubKey input' }
17542 function encodeStack (signature) {
17543 typeforce(types.Buffer, signature)
17547 function encode (signature) {
17548 return bscript.compile(encodeStack(signature))
17551 function decodeStack (stack) {
17552 typeforce(check, stack)
17556 function decode (buffer) {
17557 var stack = bscript.decompile(buffer)
17558 return decodeStack(stack)
17564 decodeStack: decodeStack,
17566 encodeStack: encodeStack
17569 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
61:[function(require,module,exports){
17570 // {pubKey} OP_CHECKSIG
17572 var bscript = require('../../script')
17573 var typeforce = require('typeforce')
17574 var OPS = require('bitcoin-ops')
17576 function check (script) {
17577 var chunks = bscript.decompile(script)
17579 return chunks.length ===
2 &&
17580 bscript.isCanonicalPubKey(chunks[
0]) &&
17581 chunks[
1] === OPS.OP_CHECKSIG
17583 check.toJSON = function () { return 'pubKey output' }
17585 function encode (pubKey) {
17586 typeforce(bscript.isCanonicalPubKey, pubKey)
17588 return bscript.compile([pubKey, OPS.OP_CHECKSIG])
17591 function decode (buffer) {
17592 var chunks = bscript.decompile(buffer)
17593 typeforce(check, chunks)
17604 },{
"../../script":
52,
"bitcoin-ops":
40,
"typeforce":
109}],
62:[function(require,module,exports){
17605 arguments[
4][
55][
0].apply(exports,arguments)
17606 },{
"./input":
63,
"./output":
64,
"dup":
55}],
63:[function(require,module,exports){
17607 // {signature} {pubKey}
17609 var bscript = require('../../script')
17610 var types = require('../../types')
17611 var typeforce = require('typeforce')
17613 function check (script) {
17614 var chunks = bscript.decompile(script)
17616 return chunks.length ===
2 &&
17617 bscript.isCanonicalSignature(chunks[
0]) &&
17618 bscript.isCanonicalPubKey(chunks[
1])
17620 check.toJSON = function () { return 'pubKeyHash input' }
17622 function encodeStack (signature, pubKey) {
17624 signature: types.Buffer, pubKey: types.Buffer
17626 signature: signature, pubKey: pubKey
17629 return [signature, pubKey]
17632 function encode (signature, pubKey) {
17633 return bscript.compile(encodeStack(signature, pubKey))
17636 function decodeStack (stack) {
17637 typeforce(check, stack)
17640 signature: stack[
0],
17645 function decode (buffer) {
17646 var stack = bscript.decompile(buffer)
17647 return decodeStack(stack)
17653 decodeStack: decodeStack,
17655 encodeStack: encodeStack
17658 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
64:[function(require,module,exports){
17659 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
17661 var bscript = require('../../script')
17662 var types = require('../../types')
17663 var typeforce = require('typeforce')
17664 var OPS = require('bitcoin-ops')
17666 function check (script) {
17667 var buffer = bscript.compile(script)
17669 return buffer.length ===
25 &&
17670 buffer[
0] === OPS.OP_DUP &&
17671 buffer[
1] === OPS.OP_HASH160 &&
17672 buffer[
2] ===
0x14 &&
17673 buffer[
23] === OPS.OP_EQUALVERIFY &&
17674 buffer[
24] === OPS.OP_CHECKSIG
17676 check.toJSON = function () { return 'pubKeyHash output' }
17678 function encode (pubKeyHash) {
17679 typeforce(types.Hash160bit, pubKeyHash)
17681 return bscript.compile([
17685 OPS.OP_EQUALVERIFY,
17690 function decode (buffer) {
17691 typeforce(check, buffer)
17693 return buffer.slice(
3,
23)
17702 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
65:[function(require,module,exports){
17703 arguments[
4][
55][
0].apply(exports,arguments)
17704 },{
"./input":
66,
"./output":
67,
"dup":
55}],
66:[function(require,module,exports){
17705 //
<scriptSig> {serialized scriptPubKey script}
17707 var Buffer = require('safe-buffer').Buffer
17708 var bscript = require('../../script')
17709 var typeforce = require('typeforce')
17711 function check (script, allowIncomplete) {
17712 var chunks = bscript.decompile(script)
17713 if (chunks.length <
1) return false
17715 var lastChunk = chunks[chunks.length -
1]
17716 if (!Buffer.isBuffer(lastChunk)) return false
17718 var scriptSigChunks = bscript.decompile(bscript.compile(chunks.slice(
0, -
1)))
17719 var redeemScriptChunks = bscript.decompile(lastChunk)
17721 // is redeemScript a valid script?
17722 if (redeemScriptChunks.length ===
0) return false
17724 // is redeemScriptSig push only?
17725 if (!bscript.isPushOnly(scriptSigChunks)) return false
17727 var inputType = bscript.classifyInput(scriptSigChunks, allowIncomplete)
17728 var outputType = bscript.classifyOutput(redeemScriptChunks)
17729 if (chunks.length ===
1) {
17730 return outputType === bscript.types.P2WSH || outputType === bscript.types.P2WPKH
17732 return inputType === outputType
17734 check.toJSON = function () { return 'scriptHash input' }
17736 function encodeStack (redeemScriptStack, redeemScript) {
17737 var serializedScriptPubKey = bscript.compile(redeemScript)
17739 return [].concat(redeemScriptStack, serializedScriptPubKey)
17742 function encode (redeemScriptSig, redeemScript) {
17743 var redeemScriptStack = bscript.decompile(redeemScriptSig)
17745 return bscript.compile(encodeStack(redeemScriptStack, redeemScript))
17748 function decodeStack (stack) {
17749 typeforce(check, stack)
17752 redeemScriptStack: stack.slice(
0, -
1),
17753 redeemScript: stack[stack.length -
1]
17757 function decode (buffer) {
17758 var stack = bscript.decompile(buffer)
17759 var result = decodeStack(stack)
17760 result.redeemScriptSig = bscript.compile(result.redeemScriptStack)
17761 delete result.redeemScriptStack
17768 decodeStack: decodeStack,
17770 encodeStack: encodeStack
17773 },{"../../script":
52,"safe-buffer":
98,"typeforce":
109}],
67:[function(require,module,exports){
17774 // OP_HASH160 {scriptHash} OP_EQUAL
17776 var bscript = require('../../script')
17777 var types = require('../../types')
17778 var typeforce = require('typeforce')
17779 var OPS = require('bitcoin-ops')
17781 function check (script) {
17782 var buffer = bscript.compile(script)
17784 return buffer.length ===
23 &&
17785 buffer[
0] === OPS.OP_HASH160 &&
17786 buffer[
1] ===
0x14 &&
17787 buffer[
22] === OPS.OP_EQUAL
17789 check.toJSON = function () { return 'scriptHash output' }
17791 function encode (scriptHash) {
17792 typeforce(types.Hash160bit, scriptHash)
17794 return bscript.compile([OPS.OP_HASH160, scriptHash, OPS.OP_EQUAL])
17797 function decode (buffer) {
17798 typeforce(check, buffer)
17800 return buffer.slice(
2,
22)
17809 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
68:[function(require,module,exports){
17811 output: require('./output')
17814 },{"./output":
69}],
69:[function(require,module,exports){
17815 // OP_RETURN {aa21a9ed} {commitment}
17817 var Buffer = require('safe-buffer').Buffer
17818 var bscript = require('../../script')
17819 var types = require('../../types')
17820 var typeforce = require('typeforce')
17821 var OPS = require('bitcoin-ops')
17823 var HEADER = Buffer.from('aa21a9ed', 'hex')
17825 function check (script) {
17826 var buffer = bscript.compile(script)
17828 return buffer.length
> 37 &&
17829 buffer[
0] === OPS.OP_RETURN &&
17830 buffer[
1] ===
0x24 &&
17831 buffer.slice(
2,
6).equals(HEADER)
17834 check.toJSON = function () { return 'Witness commitment output' }
17836 function encode (commitment) {
17837 typeforce(types.Hash256bit, commitment)
17839 var buffer = Buffer.allocUnsafe(
36)
17840 HEADER.copy(buffer,
0)
17841 commitment.copy(buffer,
4)
17843 return bscript.compile([OPS.OP_RETURN, buffer])
17846 function decode (buffer) {
17847 typeforce(check, buffer)
17849 return bscript.decompile(buffer)[
1].slice(
4,
36)
17858 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"safe-buffer":
98,
"typeforce":
109}],
70:[function(require,module,exports){
17859 arguments[
4][
55][
0].apply(exports,arguments)
17860 },{
"./input":
71,
"./output":
72,
"dup":
55}],
71:[function(require,module,exports){
17861 // {signature} {pubKey}
17863 var pkh = require('../pubkeyhash/input')
17867 decodeStack: pkh.decodeStack,
17868 encodeStack: pkh.encodeStack
17871 },{
"../pubkeyhash/input":
63}],
72:[function(require,module,exports){
17872 // OP_0 {pubKeyHash}
17874 var bscript = require('../../script')
17875 var types = require('../../types')
17876 var typeforce = require('typeforce')
17877 var OPS = require('bitcoin-ops')
17879 function check (script) {
17880 var buffer = bscript.compile(script)
17882 return buffer.length ===
22 &&
17883 buffer[
0] === OPS.OP_0 &&
17886 check.toJSON = function () { return 'Witness pubKeyHash output' }
17888 function encode (pubKeyHash) {
17889 typeforce(types.Hash160bit, pubKeyHash)
17891 return bscript.compile([OPS.OP_0, pubKeyHash])
17894 function decode (buffer) {
17895 typeforce(check, buffer)
17897 return buffer.slice(
2)
17906 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
73:[function(require,module,exports){
17907 arguments[
4][
55][
0].apply(exports,arguments)
17908 },{
"./input":
74,
"./output":
75,
"dup":
55}],
74:[function(require,module,exports){
17909 // {signature} {pubKey}
17911 var p2sh = require('../scripthash/input')
17915 decodeStack: p2sh.decodeStack,
17916 encodeStack: p2sh.encodeStack
17919 },{
"../scripthash/input":
66}],
75:[function(require,module,exports){
17920 // OP_0 {scriptHash}
17922 var bscript = require('../../script')
17923 var types = require('../../types')
17924 var typeforce = require('typeforce')
17925 var OPS = require('bitcoin-ops')
17927 function check (script) {
17928 var buffer = bscript.compile(script)
17930 return buffer.length ===
34 &&
17931 buffer[
0] === OPS.OP_0 &&
17934 check.toJSON = function () { return 'Witness scriptHash output' }
17936 function encode (scriptHash) {
17937 typeforce(types.Hash256bit, scriptHash)
17939 return bscript.compile([OPS.OP_0, scriptHash])
17942 function decode (buffer) {
17943 typeforce(check, buffer)
17945 return buffer.slice(
2)
17954 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
76:[function(require,module,exports){
17955 var Buffer = require('safe-buffer').Buffer
17956 var bcrypto = require('./crypto')
17957 var bscript = require('./script')
17958 var bufferutils = require('./bufferutils')
17959 var opcodes = require('bitcoin-ops')
17960 var typeforce = require('typeforce')
17961 var types = require('./types')
17962 var varuint = require('varuint-bitcoin')
17964 function varSliceSize (someScript) {
17965 var length = someScript.length
17967 return varuint.encodingLength(length) + length
17970 function vectorSize (someVector) {
17971 var length = someVector.length
17973 return varuint.encodingLength(length) + someVector.reduce(function (sum, witness) {
17974 return sum + varSliceSize(witness)
17978 function Transaction () {
17985 Transaction.DEFAULT_SEQUENCE =
0xffffffff
17986 Transaction.SIGHASH_ALL =
0x01
17987 Transaction.SIGHASH_NONE =
0x02
17988 Transaction.SIGHASH_SINGLE =
0x03
17989 Transaction.SIGHASH_ANYONECANPAY =
0x80
17990 Transaction.ADVANCED_TRANSACTION_MARKER =
0x00
17991 Transaction.ADVANCED_TRANSACTION_FLAG =
0x01
17993 var EMPTY_SCRIPT = Buffer.allocUnsafe(
0)
17994 var EMPTY_WITNESS = []
17995 var ZERO = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000000', 'hex')
17996 var ONE = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000001', 'hex')
17997 var VALUE_UINT64_MAX = Buffer.from('ffffffffffffffff', 'hex')
17998 var BLANK_OUTPUT = {
17999 script: EMPTY_SCRIPT,
18000 valueBuffer: VALUE_UINT64_MAX
18003 Transaction.fromBuffer = function (buffer, __noStrict) {
18005 function readSlice (n) {
18007 return buffer.slice(offset - n, offset)
18010 function readUInt32 () {
18011 var i = buffer.readUInt32LE(offset)
18016 function readInt32 () {
18017 var i = buffer.readInt32LE(offset)
18022 function readUInt64 () {
18023 var i = bufferutils.readUInt64LE(buffer, offset)
18028 function readVarInt () {
18029 var vi = varuint.decode(buffer, offset)
18030 offset += varuint.decode.bytes
18034 function readVarSlice () {
18035 return readSlice(readVarInt())
18038 function readVector () {
18039 var count = readVarInt()
18041 for (var i =
0; i < count; i++) vector.push(readVarSlice())
18045 var tx = new Transaction()
18046 tx.version = readInt32()
18048 var marker = buffer.readUInt8(offset)
18049 var flag = buffer.readUInt8(offset +
1)
18051 var hasWitnesses = false
18052 if (marker === Transaction.ADVANCED_TRANSACTION_MARKER &&
18053 flag === Transaction.ADVANCED_TRANSACTION_FLAG) {
18055 hasWitnesses = true
18058 var vinLen = readVarInt()
18059 for (var i =
0; i < vinLen; ++i) {
18061 hash: readSlice(
32),
18062 index: readUInt32(),
18063 script: readVarSlice(),
18064 sequence: readUInt32(),
18065 witness: EMPTY_WITNESS
18069 var voutLen = readVarInt()
18070 for (i =
0; i < voutLen; ++i) {
18072 value: readUInt64(),
18073 script: readVarSlice()
18077 if (hasWitnesses) {
18078 for (i =
0; i < vinLen; ++i) {
18079 tx.ins[i].witness = readVector()
18082 // was this pointless?
18083 if (!tx.hasWitnesses()) throw new Error('Transaction has superfluous witness data')
18086 tx.locktime = readUInt32()
18088 if (__noStrict) return tx
18089 if (offset !== buffer.length) throw new Error('Transaction has unexpected data')
18094 Transaction.fromHex = function (hex) {
18095 return Transaction.fromBuffer(Buffer.from(hex, 'hex'))
18098 Transaction.isCoinbaseHash = function (buffer) {
18099 typeforce(types.Hash256bit, buffer)
18100 for (var i =
0; i <
32; ++i) {
18101 if (buffer[i] !==
0) return false
18106 Transaction.prototype.isCoinbase = function () {
18107 return this.ins.length ===
1 && Transaction.isCoinbaseHash(this.ins[
0].hash)
18110 Transaction.prototype.addInput = function (hash, index, sequence, scriptSig) {
18111 typeforce(types.tuple(
18114 types.maybe(types.UInt32),
18115 types.maybe(types.Buffer)
18118 if (types.Null(sequence)) {
18119 sequence = Transaction.DEFAULT_SEQUENCE
18122 // Add the input and return the input's index
18123 return (this.ins.push({
18126 script: scriptSig || EMPTY_SCRIPT,
18127 sequence: sequence,
18128 witness: EMPTY_WITNESS
18132 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18133 typeforce(types.tuple(types.Buffer, types.Satoshi), arguments)
18135 // Add the output and return the output's index
18136 return (this.outs.push({
18137 script: scriptPubKey,
18142 Transaction.prototype.hasWitnesses = function () {
18143 return this.ins.some(function (x) {
18144 return x.witness.length !==
0
18148 Transaction.prototype.weight = function () {
18149 var base = this.__byteLength(false)
18150 var total = this.__byteLength(true)
18151 return base *
3 + total
18154 Transaction.prototype.virtualSize = function () {
18155 return Math.ceil(this.weight() /
4)
18158 Transaction.prototype.byteLength = function () {
18159 return this.__byteLength(true)
18162 Transaction.prototype.__byteLength = function (__allowWitness) {
18163 var hasWitnesses = __allowWitness && this.hasWitnesses()
18166 (hasWitnesses ?
10 :
8) +
18167 varuint.encodingLength(this.ins.length) +
18168 varuint.encodingLength(this.outs.length) +
18169 this.ins.reduce(function (sum, input) { return sum +
40 + varSliceSize(input.script) },
0) +
18170 this.outs.reduce(function (sum, output) { return sum +
8 + varSliceSize(output.script) },
0) +
18171 (hasWitnesses ? this.ins.reduce(function (sum, input) { return sum + vectorSize(input.witness) },
0) :
0)
18175 Transaction.prototype.clone = function () {
18176 var newTx = new Transaction()
18177 newTx.version = this.version
18178 newTx.locktime = this.locktime
18180 newTx.ins = this.ins.map(function (txIn) {
18184 script: txIn.script,
18185 sequence: txIn.sequence,
18186 witness: txIn.witness
18190 newTx.outs = this.outs.map(function (txOut) {
18192 script: txOut.script,
18201 * Hash transaction for signing a specific input.
18203 * Bitcoin uses a different hash for each signed transaction input.
18204 * This method copies the transaction, makes the necessary changes based on the
18205 * hashType, and then hashes the result.
18206 * This hash can then be used to sign the provided transaction input.
18208 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18209 typeforce(types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number), arguments)
18211 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L29
18212 if (inIndex
>= this.ins.length) return ONE
18214 // ignore OP_CODESEPARATOR
18215 var ourScript = bscript.compile(bscript.decompile(prevOutScript).filter(function (x) {
18216 return x !== opcodes.OP_CODESEPARATOR
18219 var txTmp = this.clone()
18221 // SIGHASH_NONE: ignore all outputs? (wildcard payee)
18222 if ((hashType &
0x1f) === Transaction.SIGHASH_NONE) {
18225 // ignore sequence numbers (except at inIndex)
18226 txTmp.ins.forEach(function (input, i) {
18227 if (i === inIndex) return
18232 // SIGHASH_SINGLE: ignore all outputs, except at the same index?
18233 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE) {
18234 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L60
18235 if (inIndex
>= this.outs.length) return ONE
18237 // truncate outputs after
18238 txTmp.outs.length = inIndex +
1
18240 // "blank" outputs before
18241 for (var i =
0; i < inIndex; i++) {
18242 txTmp.outs[i] = BLANK_OUTPUT
18245 // ignore sequence numbers (except at inIndex)
18246 txTmp.ins.forEach(function (input, y) {
18247 if (y === inIndex) return
18253 // SIGHASH_ANYONECANPAY: ignore inputs entirely?
18254 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18255 txTmp.ins = [txTmp.ins[inIndex]]
18256 txTmp.ins[
0].script = ourScript
18258 // SIGHASH_ALL: only ignore input scripts
18260 // "blank" others input scripts
18261 txTmp.ins.forEach(function (input) { input.script = EMPTY_SCRIPT })
18262 txTmp.ins[inIndex].script = ourScript
18265 // serialize and hash
18266 var buffer = Buffer.allocUnsafe(txTmp.__byteLength(false) +
4)
18267 buffer.writeInt32LE(hashType, buffer.length -
4)
18268 txTmp.__toBuffer(buffer,
0, false)
18270 return bcrypto.hash256(buffer)
18273 Transaction.prototype.hashForWitnessV0 = function (inIndex, prevOutScript, value, hashType) {
18274 typeforce(types.tuple(types.UInt32, types.Buffer, types.Satoshi, types.UInt32), arguments)
18276 var tbuffer, toffset
18277 function writeSlice (slice) { toffset += slice.copy(tbuffer, toffset) }
18278 function writeUInt32 (i) { toffset = tbuffer.writeUInt32LE(i, toffset) }
18279 function writeUInt64 (i) { toffset = bufferutils.writeUInt64LE(tbuffer, i, toffset) }
18280 function writeVarInt (i) {
18281 varuint.encode(i, tbuffer, toffset)
18282 toffset += varuint.encode.bytes
18284 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18286 var hashOutputs = ZERO
18287 var hashPrevouts = ZERO
18288 var hashSequence = ZERO
18290 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY)) {
18291 tbuffer = Buffer.allocUnsafe(
36 * this.ins.length)
18294 this.ins.forEach(function (txIn) {
18295 writeSlice(txIn.hash)
18296 writeUInt32(txIn.index)
18299 hashPrevouts = bcrypto.hash256(tbuffer)
18302 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY) &&
18303 (hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18304 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18305 tbuffer = Buffer.allocUnsafe(
4 * this.ins.length)
18308 this.ins.forEach(function (txIn) {
18309 writeUInt32(txIn.sequence)
18312 hashSequence = bcrypto.hash256(tbuffer)
18315 if ((hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18316 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18317 var txOutsSize = this.outs.reduce(function (sum, output) {
18318 return sum +
8 + varSliceSize(output.script)
18321 tbuffer = Buffer.allocUnsafe(txOutsSize)
18324 this.outs.forEach(function (out) {
18325 writeUInt64(out.value)
18326 writeVarSlice(out.script)
18329 hashOutputs = bcrypto.hash256(tbuffer)
18330 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE && inIndex < this.outs.length) {
18331 var output = this.outs[inIndex]
18333 tbuffer = Buffer.allocUnsafe(
8 + varSliceSize(output.script))
18335 writeUInt64(output.value)
18336 writeVarSlice(output.script)
18338 hashOutputs = bcrypto.hash256(tbuffer)
18341 tbuffer = Buffer.allocUnsafe(
156 + varSliceSize(prevOutScript))
18344 var input = this.ins[inIndex]
18345 writeUInt32(this.version)
18346 writeSlice(hashPrevouts)
18347 writeSlice(hashSequence)
18348 writeSlice(input.hash)
18349 writeUInt32(input.index)
18350 writeVarSlice(prevOutScript)
18352 writeUInt32(input.sequence)
18353 writeSlice(hashOutputs)
18354 writeUInt32(this.locktime)
18355 writeUInt32(hashType)
18356 return bcrypto.hash256(tbuffer)
18359 Transaction.prototype.getHash = function () {
18360 return bcrypto.hash256(this.__toBuffer(undefined, undefined, false))
18363 Transaction.prototype.getId = function () {
18364 // transaction hash's are displayed in reverse order
18365 return this.getHash().reverse().toString('hex')
18368 Transaction.prototype.toBuffer = function (buffer, initialOffset) {
18369 return this.__toBuffer(buffer, initialOffset, true)
18372 Transaction.prototype.__toBuffer = function (buffer, initialOffset, __allowWitness) {
18373 if (!buffer) buffer = Buffer.allocUnsafe(this.__byteLength(__allowWitness))
18375 var offset = initialOffset ||
0
18376 function writeSlice (slice) { offset += slice.copy(buffer, offset) }
18377 function writeUInt8 (i) { offset = buffer.writeUInt8(i, offset) }
18378 function writeUInt32 (i) { offset = buffer.writeUInt32LE(i, offset) }
18379 function writeInt32 (i) { offset = buffer.writeInt32LE(i, offset) }
18380 function writeUInt64 (i) { offset = bufferutils.writeUInt64LE(buffer, i, offset) }
18381 function writeVarInt (i) {
18382 varuint.encode(i, buffer, offset)
18383 offset += varuint.encode.bytes
18385 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18386 function writeVector (vector) { writeVarInt(vector.length); vector.forEach(writeVarSlice) }
18388 writeInt32(this.version)
18390 var hasWitnesses = __allowWitness && this.hasWitnesses()
18392 if (hasWitnesses) {
18393 writeUInt8(Transaction.ADVANCED_TRANSACTION_MARKER)
18394 writeUInt8(Transaction.ADVANCED_TRANSACTION_FLAG)
18397 writeVarInt(this.ins.length)
18399 this.ins.forEach(function (txIn) {
18400 writeSlice(txIn.hash)
18401 writeUInt32(txIn.index)
18402 writeVarSlice(txIn.script)
18403 writeUInt32(txIn.sequence)
18406 writeVarInt(this.outs.length)
18407 this.outs.forEach(function (txOut) {
18408 if (!txOut.valueBuffer) {
18409 writeUInt64(txOut.value)
18411 writeSlice(txOut.valueBuffer)
18414 writeVarSlice(txOut.script)
18417 if (hasWitnesses) {
18418 this.ins.forEach(function (input) {
18419 writeVector(input.witness)
18423 writeUInt32(this.locktime)
18425 // avoid slicing unless necessary
18426 if (initialOffset !== undefined) return buffer.slice(initialOffset, offset)
18430 Transaction.prototype.toHex = function () {
18431 return this.toBuffer().toString('hex')
18434 Transaction.prototype.setInputScript = function (index, scriptSig) {
18435 typeforce(types.tuple(types.Number, types.Buffer), arguments)
18437 this.ins[index].script = scriptSig
18440 Transaction.prototype.setWitness = function (index, witness) {
18441 typeforce(types.tuple(types.Number, [types.Buffer]), arguments)
18443 this.ins[index].witness = witness
18446 module.exports = Transaction
18448 },{"./bufferutils":
44,"./crypto":
45,"./script":
52,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109,"varuint-bitcoin":
111}],
77:[function(require,module,exports){
18449 var Buffer = require('safe-buffer').Buffer
18450 var baddress = require('./address')
18451 var bcrypto = require('./crypto')
18452 var bscript = require('./script')
18453 var networks = require('./networks')
18454 var ops = require('bitcoin-ops')
18455 var typeforce = require('typeforce')
18456 var types = require('./types')
18457 var scriptTypes = bscript.types
18458 var SIGNABLE = [bscript.types.P2PKH, bscript.types.P2PK, bscript.types.MULTISIG]
18459 var P2SH = SIGNABLE.concat([bscript.types.P2WPKH, bscript.types.P2WSH])
18461 var ECPair = require('./ecpair')
18462 var ECSignature = require('./ecsignature')
18463 var Transaction = require('./transaction')
18465 function extractChunks (type, chunks, script) {
18467 var signatures = []
18469 case scriptTypes.P2PKH:
18470 // if (redeemScript) throw new Error('Nonstandard... P2SH(P2PKH)')
18471 pubKeys = chunks.slice(
1)
18472 signatures = chunks.slice(
0,
1)
18475 case scriptTypes.P2PK:
18476 pubKeys[
0] = script ? bscript.pubKey.output.decode(script) : undefined
18477 signatures = chunks.slice(
0,
1)
18480 case scriptTypes.MULTISIG:
18482 var multisig = bscript.multisig.output.decode(script)
18483 pubKeys = multisig.pubKeys
18486 signatures = chunks.slice(
1).map(function (chunk) {
18487 return chunk.length ===
0 ? undefined : chunk
18494 signatures: signatures
18497 function expandInput (scriptSig, witnessStack) {
18498 if (scriptSig.length ===
0 && witnessStack.length ===
0) return {}
18506 var witnessScriptType
18507 var redeemScriptType
18508 var witness = false
18514 var scriptSigChunks = bscript.decompile(scriptSig)
18515 var sigType = bscript.classifyInput(scriptSigChunks, true)
18516 if (sigType === scriptTypes.P2SH) {
18518 redeemScript = scriptSigChunks[scriptSigChunks.length -
1]
18519 redeemScriptType = bscript.classifyOutput(redeemScript)
18520 prevOutScript = bscript.scriptHash.output.encode(bcrypto.hash160(redeemScript))
18521 prevOutType = scriptTypes.P2SH
18522 script = redeemScript
18525 var classifyWitness = bscript.classifyWitness(witnessStack)
18526 if (classifyWitness === scriptTypes.P2WSH) {
18527 witnessScript = witnessStack[witnessStack.length -
1]
18528 witnessScriptType = bscript.classifyOutput(witnessScript)
18530 if (scriptSig.length ===
0) {
18531 prevOutScript = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18532 prevOutType = scriptTypes.P2WSH
18533 if (typeof redeemScript !== 'undefined') {
18534 throw new Error('Redeem script given when unnecessary')
18538 if (!redeemScript) {
18539 throw new Error('No redeemScript provided for P2WSH, but scriptSig non-empty')
18541 witnessProgram = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18542 if (!redeemScript.equals(witnessProgram)) {
18543 throw new Error('Redeem script didn\'t match witnessScript')
18547 if (SIGNABLE.indexOf(bscript.classifyOutput(witnessScript)) === -
1) {
18548 throw new Error('unsupported witness script')
18550 script = witnessScript
18551 scriptType = witnessScriptType
18552 chunks = witnessStack.slice(
0, -
1)
18553 } else if (classifyWitness === scriptTypes.P2WPKH) {
18554 var key = witnessStack[witnessStack.length -
1]
18555 var keyHash = bcrypto.hash160(key)
18556 if (scriptSig.length ===
0) {
18557 prevOutScript = bscript.witnessPubKeyHash.output.encode(keyHash)
18558 prevOutType = scriptTypes.P2WPKH
18559 if (typeof redeemScript !== 'undefined') {
18560 throw new Error('Redeem script given when unnecessary')
18563 if (!redeemScript) {
18564 throw new Error('No redeemScript provided for P2WPKH, but scriptSig wasn\'t empty')
18566 witnessProgram = bscript.witnessPubKeyHash.output.encode(keyHash)
18567 if (!redeemScript.equals(witnessProgram)) {
18568 throw new Error('Redeem script did not have the right witness program')
18572 scriptType = scriptTypes.P2PKH
18573 chunks = witnessStack
18574 } else if (redeemScript) {
18575 if (P2SH.indexOf(redeemScriptType) === -
1) {
18576 throw new Error('Bad redeemscript!')
18579 script = redeemScript
18580 scriptType = redeemScriptType
18581 chunks = scriptSigChunks.slice(
0, -
1)
18583 prevOutType = scriptType = bscript.classifyInput(scriptSig)
18584 chunks = scriptSigChunks
18587 var expanded = extractChunks(scriptType, chunks, script)
18590 pubKeys: expanded.pubKeys,
18591 signatures: expanded.signatures,
18592 prevOutScript: prevOutScript,
18593 prevOutType: prevOutType,
18594 signType: scriptType,
18595 signScript: script,
18596 witness: Boolean(witness)
18600 result.redeemScript = redeemScript
18601 result.redeemScriptType = redeemScriptType
18605 result.witnessScript = witnessScript
18606 result.witnessScriptType = witnessScriptType
18612 // could be done in expandInput, but requires the original Transaction for hashForSignature
18613 function fixMultisigOrder (input, transaction, vin) {
18614 if (input.redeemScriptType !== scriptTypes.MULTISIG || !input.redeemScript) return
18615 if (input.pubKeys.length === input.signatures.length) return
18617 var unmatched = input.signatures.concat()
18619 input.signatures = input.pubKeys.map(function (pubKey) {
18620 var keyPair = ECPair.fromPublicKeyBuffer(pubKey)
18623 // check for a signature
18624 unmatched.some(function (signature, i) {
18625 // skip if undefined || OP_0
18626 if (!signature) return false
18628 // TODO: avoid O(n) hashForSignature
18629 var parsed = ECSignature.parseScriptSignature(signature)
18630 var hash = transaction.hashForSignature(vin, input.redeemScript, parsed.hashType)
18632 // skip if signature does not match pubKey
18633 if (!keyPair.verify(hash, parsed.signature)) return false
18635 // remove matched signature from unmatched
18636 unmatched[i] = undefined
18646 function expandOutput (script, scriptType, ourPubKey) {
18647 typeforce(types.Buffer, script)
18649 var scriptChunks = bscript.decompile(script)
18651 scriptType = bscript.classifyOutput(script)
18656 switch (scriptType) {
18657 // does our hash160(pubKey) match the output scripts?
18658 case scriptTypes.P2PKH:
18659 if (!ourPubKey) break
18661 var pkh1 = scriptChunks[
2]
18662 var pkh2 = bcrypto.hash160(ourPubKey)
18663 if (pkh1.equals(pkh2)) pubKeys = [ourPubKey]
18666 // does our hash160(pubKey) match the output scripts?
18667 case scriptTypes.P2WPKH:
18668 if (!ourPubKey) break
18670 var wpkh1 = scriptChunks[
1]
18671 var wpkh2 = bcrypto.hash160(ourPubKey)
18672 if (wpkh1.equals(wpkh2)) pubKeys = [ourPubKey]
18675 case scriptTypes.P2PK:
18676 pubKeys = scriptChunks.slice(
0,
1)
18679 case scriptTypes.MULTISIG:
18680 pubKeys = scriptChunks.slice(
1, -
2)
18683 default: return { scriptType: scriptType }
18688 scriptType: scriptType,
18689 signatures: pubKeys.map(function () { return undefined })
18693 function checkP2shInput (input, redeemScriptHash) {
18694 if (input.prevOutType) {
18695 if (input.prevOutType !== scriptTypes.P2SH) throw new Error('PrevOutScript must be P2SH')
18697 var prevOutScriptScriptHash = bscript.decompile(input.prevOutScript)[
1]
18698 if (!prevOutScriptScriptHash.equals(redeemScriptHash)) throw new Error('Inconsistent hash160(RedeemScript)')
18702 function checkP2WSHInput (input, witnessScriptHash) {
18703 if (input.prevOutType) {
18704 if (input.prevOutType !== scriptTypes.P2WSH) throw new Error('PrevOutScript must be P2WSH')
18706 var scriptHash = bscript.decompile(input.prevOutScript)[
1]
18707 if (!scriptHash.equals(witnessScriptHash)) throw new Error('Inconsistent sha25(WitnessScript)')
18711 function prepareInput (input, kpPubKey, redeemScript, witnessValue, witnessScript) {
18718 var redeemScriptHash
18720 var witness = false
18723 var witnessScriptHash
18728 if (redeemScript && witnessScript) {
18729 redeemScriptHash = bcrypto.hash160(redeemScript)
18730 witnessScriptHash = bcrypto.sha256(witnessScript)
18731 checkP2shInput(input, redeemScriptHash)
18733 if (!redeemScript.equals(bscript.witnessScriptHash.output.encode(witnessScriptHash))) throw new Error('Witness script inconsistent with redeem script')
18735 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18736 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18737 prevOutType = bscript.types.P2SH
18738 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18739 p2sh = witness = p2wsh = true
18740 p2shType = bscript.types.P2WSH
18741 signType = witnessType = expanded.scriptType
18742 signScript = witnessScript
18743 } else if (redeemScript) {
18744 redeemScriptHash = bcrypto.hash160(redeemScript)
18745 checkP2shInput(input, redeemScriptHash)
18747 expanded = expandOutput(redeemScript, undefined, kpPubKey)
18748 if (!expanded.pubKeys) throw new Error('RedeemScript not supported "' + bscript.toASM(redeemScript) + '"')
18750 prevOutType = bscript.types.P2SH
18751 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18753 signType = p2shType = expanded.scriptType
18754 signScript = redeemScript
18755 witness = signType === bscript.types.P2WPKH
18756 } else if (witnessScript) {
18757 witnessScriptHash = bcrypto.sha256(witnessScript)
18758 checkP2WSHInput(input, witnessScriptHash)
18760 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18761 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18763 prevOutType = bscript.types.P2WSH
18764 prevOutScript = bscript.witnessScriptHash.output.encode(witnessScriptHash)
18765 witness = p2wsh = true
18766 signType = witnessType = expanded.scriptType
18767 signScript = witnessScript
18768 } else if (input.prevOutType) {
18769 // embedded scripts are not possible without a redeemScript
18770 if (input.prevOutType === scriptTypes.P2SH ||
18771 input.prevOutType === scriptTypes.P2WSH) {
18772 throw new Error('PrevOutScript is ' + input.prevOutType + ', requires redeemScript')
18775 prevOutType = input.prevOutType
18776 prevOutScript = input.prevOutScript
18777 expanded = expandOutput(input.prevOutScript, input.prevOutType, kpPubKey)
18778 if (!expanded.pubKeys) return
18780 witness = (input.prevOutType === scriptTypes.P2WPKH)
18781 signType = prevOutType
18782 signScript = prevOutScript
18784 prevOutScript = bscript.pubKeyHash.output.encode(bcrypto.hash160(kpPubKey))
18785 expanded = expandOutput(prevOutScript, scriptTypes.P2PKH, kpPubKey)
18786 prevOutType = scriptTypes.P2PKH
18788 signType = prevOutType
18789 signScript = prevOutScript
18792 if (witness && !types.Satoshi(witnessValue)) {
18793 throw new Error('Input was witness but not given witness value')
18796 if (signType === scriptTypes.P2WPKH) {
18797 signScript = bscript.pubKeyHash.output.encode(bscript.witnessPubKeyHash.output.decode(signScript))
18801 input.redeemScript = redeemScript
18802 input.redeemScriptType = p2shType
18806 input.witnessScript = witnessScript
18807 input.witnessScriptType = witnessType
18810 input.pubKeys = expanded.pubKeys
18811 input.signatures = expanded.signatures
18812 input.signScript = signScript
18813 input.signType = signType
18814 input.prevOutScript = prevOutScript
18815 input.prevOutType = prevOutType
18816 input.witness = witness
18819 function buildStack (type, signatures, pubKeys, allowIncomplete) {
18820 if (type === scriptTypes.P2PKH) {
18821 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0]) && pubKeys.length ===
1) return bscript.pubKeyHash.input.encodeStack(signatures[
0], pubKeys[
0])
18822 } else if (type === scriptTypes.P2PK) {
18823 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0])) return bscript.pubKey.input.encodeStack(signatures[
0])
18824 } else if (type === scriptTypes.MULTISIG) {
18825 if (signatures.length
> 0) {
18826 signatures = signatures.map(function (signature) {
18827 return signature || ops.OP_0
18829 if (!allowIncomplete) {
18830 // remove blank signatures
18831 signatures = signatures.filter(function (x) { return x !== ops.OP_0 })
18834 return bscript.multisig.input.encodeStack(signatures /* see if it's necessary first */)
18837 throw new Error('Not yet supported')
18840 if (!allowIncomplete) throw new Error('Not enough signatures provided')
18845 function buildInput (input, allowIncomplete) {
18846 var scriptType = input.prevOutType
18849 if (SIGNABLE.indexOf(scriptType) !== -
1) {
18850 sig = buildStack(scriptType, input.signatures, input.pubKeys, allowIncomplete)
18854 if (scriptType === bscript.types.P2SH) {
18855 // We can remove this error later when we have a guarantee prepareInput
18856 // rejects unsignable scripts - it MUST be signable at this point.
18857 if (P2SH.indexOf(input.redeemScriptType) === -
1) {
18858 throw new Error('Impossible to sign this type')
18861 if (SIGNABLE.indexOf(input.redeemScriptType) !== -
1) {
18862 sig = buildStack(input.redeemScriptType, input.signatures, input.pubKeys, allowIncomplete)
18864 // If it wasn't SIGNABLE, it's witness, defer to that
18865 scriptType = input.redeemScriptType
18868 if (scriptType === bscript.types.P2WPKH) {
18869 // P2WPKH is a special case of P2PKH
18870 witness = buildStack(bscript.types.P2PKH, input.signatures, input.pubKeys, allowIncomplete)
18871 } else if (scriptType === bscript.types.P2WSH) {
18872 // We can remove this check later
18873 if (SIGNABLE.indexOf(input.witnessScriptType) !== -
1) {
18874 witness = buildStack(input.witnessScriptType, input.signatures, input.pubKeys, allowIncomplete)
18875 witness.push(input.witnessScript)
18877 // We can remove this error later when we have a guarantee prepareInput
18878 // rejects unsignble scripts - it MUST be signable at this point.
18882 scriptType = input.witnessScriptType
18885 // append redeemScript if necessary
18887 sig.push(input.redeemScript)
18892 script: bscript.compile(sig),
18897 function TransactionBuilder (network, maximumFeeRate) {
18898 this.prevTxMap = {}
18899 this.network = network || networks.bitcoin
18901 // WARNING: This is __NOT__ to be relied on, its just another potential safety mechanism (safety in-depth)
18902 this.maximumFeeRate = maximumFeeRate ||
1000
18905 this.tx = new Transaction()
18908 TransactionBuilder.prototype.setLockTime = function (locktime) {
18909 typeforce(types.UInt32, locktime)
18911 // if any signatures exist, throw
18912 if (this.inputs.some(function (input) {
18913 if (!input.signatures) return false
18915 return input.signatures.some(function (s) { return s })
18917 throw new Error('No, this would invalidate signatures')
18920 this.tx.locktime = locktime
18923 TransactionBuilder.prototype.setVersion = function (version) {
18924 typeforce(types.UInt32, version)
18926 // XXX: this might eventually become more complex depending on what the versions represent
18927 this.tx.version = version
18930 TransactionBuilder.fromTransaction = function (transaction, network) {
18931 var txb = new TransactionBuilder(network)
18933 // Copy transaction fields
18934 txb.setVersion(transaction.version)
18935 txb.setLockTime(transaction.locktime)
18937 // Copy outputs (done first to avoid signature invalidation)
18938 transaction.outs.forEach(function (txOut) {
18939 txb.addOutput(txOut.script, txOut.value)
18943 transaction.ins.forEach(function (txIn) {
18944 txb.__addInputUnsafe(txIn.hash, txIn.index, {
18945 sequence: txIn.sequence,
18946 script: txIn.script,
18947 witness: txIn.witness
18951 // fix some things not possible through the public API
18952 txb.inputs.forEach(function (input, i) {
18953 fixMultisigOrder(input, transaction, i)
18959 TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) {
18960 if (!this.__canModifyInputs()) {
18961 throw new Error('No, this would invalidate signatures')
18966 // is it a hex string?
18967 if (typeof txHash === 'string') {
18968 // transaction hashs's are displayed in reverse order, un-reverse it
18969 txHash = Buffer.from(txHash, 'hex').reverse()
18971 // is it a Transaction object?
18972 } else if (txHash instanceof Transaction) {
18973 var txOut = txHash.outs[vout]
18974 prevOutScript = txOut.script
18975 value = txOut.value
18977 txHash = txHash.getHash()
18980 return this.__addInputUnsafe(txHash, vout, {
18981 sequence: sequence,
18982 prevOutScript: prevOutScript,
18987 TransactionBuilder.prototype.__addInputUnsafe = function (txHash, vout, options) {
18988 if (Transaction.isCoinbaseHash(txHash)) {
18989 throw new Error('coinbase inputs not supported')
18992 var prevTxOut = txHash.toString('hex') + ':' + vout
18993 if (this.prevTxMap[prevTxOut] !== undefined) throw new Error('Duplicate TxOut: ' + prevTxOut)
18997 // derive what we can from the scriptSig
18998 if (options.script !== undefined) {
18999 input = expandInput(options.script, options.witness || [])
19002 // if an input value was given, retain it
19003 if (options.value !== undefined) {
19004 input.value = options.value
19007 // derive what we can from the previous transactions output script
19008 if (!input.prevOutScript && options.prevOutScript) {
19011 if (!input.pubKeys && !input.signatures) {
19012 var expanded = expandOutput(options.prevOutScript)
19014 if (expanded.pubKeys) {
19015 input.pubKeys = expanded.pubKeys
19016 input.signatures = expanded.signatures
19019 prevOutType = expanded.scriptType
19022 input.prevOutScript = options.prevOutScript
19023 input.prevOutType = prevOutType || bscript.classifyOutput(options.prevOutScript)
19026 var vin = this.tx.addInput(txHash, vout, options.sequence, options.scriptSig)
19027 this.inputs[vin] = input
19028 this.prevTxMap[prevTxOut] = vin
19033 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19034 if (!this.__canModifyOutputs()) {
19035 throw new Error('No, this would invalidate signatures')
19038 // Attempt to get a script if it's a base58 address string
19039 if (typeof scriptPubKey === 'string') {
19040 scriptPubKey = baddress.toOutputScript(scriptPubKey, this.network)
19043 return this.tx.addOutput(scriptPubKey, value)
19046 TransactionBuilder.prototype.build = function () {
19047 return this.__build(false)
19049 TransactionBuilder.prototype.buildIncomplete = function () {
19050 return this.__build(true)
19053 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19054 if (!allowIncomplete) {
19055 if (!this.tx.ins.length) throw new Error('Transaction has no inputs')
19056 if (!this.tx.outs.length) throw new Error('Transaction has no outputs')
19059 var tx = this.tx.clone()
19060 // Create script signatures from inputs
19061 this.inputs.forEach(function (input, i) {
19062 var scriptType = input.witnessScriptType || input.redeemScriptType || input.prevOutType
19063 if (!scriptType && !allowIncomplete) throw new Error('Transaction is not complete')
19064 var result = buildInput(input, allowIncomplete)
19066 // skip if no result
19067 if (!allowIncomplete) {
19068 if (SIGNABLE.indexOf(result.type) === -
1 && result.type !== bscript.types.P2WPKH) {
19069 throw new Error(result.type + ' not supported')
19073 tx.setInputScript(i, result.script)
19074 tx.setWitness(i, result.witness)
19077 if (!allowIncomplete) {
19078 // do not rely on this, its merely a last resort
19079 if (this.__overMaximumFees(tx.byteLength())) {
19080 throw new Error('Transaction has absurd fees')
19087 function canSign (input) {
19088 return input.prevOutScript !== undefined &&
19089 input.signScript !== undefined &&
19090 input.pubKeys !== undefined &&
19091 input.signatures !== undefined &&
19092 input.signatures.length === input.pubKeys.length &&
19093 input.pubKeys.length
> 0 &&
19094 input.witness !== undefined
19097 TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, witnessValue, witnessScript) {
19098 if (keyPair.network !== this.network) throw new Error('Inconsistent network')
19099 if (!this.inputs[vin]) throw new Error('No input at index: ' + vin)
19100 hashType = hashType || Transaction.SIGHASH_ALL
19102 var input = this.inputs[vin]
19104 // if redeemScript was previously provided, enforce consistency
19105 if (input.redeemScript !== undefined &&
19107 !input.redeemScript.equals(redeemScript)) {
19108 throw new Error('Inconsistent redeemScript')
19111 var kpPubKey = keyPair.getPublicKeyBuffer()
19112 if (!canSign(input)) {
19113 prepareInput(input, kpPubKey, redeemScript, witnessValue, witnessScript)
19114 if (!canSign(input)) throw Error(input.prevOutType + ' not supported')
19119 if (input.witness) {
19120 signatureHash = this.tx.hashForWitnessV0(vin, input.signScript, witnessValue, hashType)
19122 signatureHash = this.tx.hashForSignature(vin, input.signScript, hashType)
19124 // enforce in order signing of public keys
19125 var signed = input.pubKeys.some(function (pubKey, i) {
19126 if (!kpPubKey.equals(pubKey)) return false
19127 if (input.signatures[i]) throw new Error('Signature already exists')
19129 input.signatures[i] = keyPair.sign(signatureHash).toScriptSignature(hashType)
19133 if (!signed) throw new Error('Key pair cannot sign for this input')
19136 function signatureHashType (buffer) {
19137 return buffer.readUInt8(buffer.length -
1)
19140 TransactionBuilder.prototype.__canModifyInputs = function () {
19141 return this.inputs.every(function (input) {
19143 if (input.signatures === undefined) return true
19145 return input.signatures.every(function (signature) {
19146 if (!signature) return true
19147 var hashType = signatureHashType(signature)
19149 // if SIGHASH_ANYONECANPAY is set, signatures would not
19150 // be invalidated by more inputs
19151 return hashType & Transaction.SIGHASH_ANYONECANPAY
19156 TransactionBuilder.prototype.__canModifyOutputs = function () {
19157 var nInputs = this.tx.ins.length
19158 var nOutputs = this.tx.outs.length
19160 return this.inputs.every(function (input) {
19161 if (input.signatures === undefined) return true
19163 return input.signatures.every(function (signature) {
19164 if (!signature) return true
19165 var hashType = signatureHashType(signature)
19167 var hashTypeMod = hashType &
0x1f
19168 if (hashTypeMod === Transaction.SIGHASH_NONE) return true
19169 if (hashTypeMod === Transaction.SIGHASH_SINGLE) {
19170 // if SIGHASH_SINGLE is set, and nInputs
> nOutputs
19171 // some signatures would be invalidated by the addition
19173 return nInputs <= nOutputs
19179 TransactionBuilder.prototype.__overMaximumFees = function (bytes) {
19180 // not all inputs will have .value defined
19181 var incoming = this.inputs.reduce(function (a, x) { return a + (x.value
>>> 0) },
0)
19183 // but all outputs do, and if we have any input value
19184 // we can immediately determine if the outputs are too small
19185 var outgoing = this.tx.outs.reduce(function (a, x) { return a + x.value },
0)
19186 var fee = incoming - outgoing
19187 var feeRate = fee / bytes
19189 return feeRate
> this.maximumFeeRate
19192 module.exports = TransactionBuilder
19194 },{"./address":
42,"./crypto":
45,"./ecpair":
47,"./ecsignature":
48,"./networks":
51,"./script":
52,"./transaction":
76,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
78:[function(require,module,exports){
19195 var typeforce = require('typeforce')
19197 var UINT31_MAX = Math.pow(
2,
31) -
1
19198 function UInt31 (value) {
19199 return typeforce.UInt32(value) && value <= UINT31_MAX
19202 function BIP32Path (value) {
19203 return typeforce.String(value) && value.match(/^(m\/)?(\d+'?\/)*\d+'?$/)
19205 BIP32Path.toJSON = function () { return 'BIP32 derivation path' }
19207 var SATOSHI_MAX =
21 *
1e14
19208 function Satoshi (value) {
19209 return typeforce.UInt53(value) && value <= SATOSHI_MAX
19212 // external dependent types
19213 var BigInt = typeforce.quacksLike('BigInteger')
19214 var ECPoint = typeforce.quacksLike('Point')
19216 // exposed, external API
19217 var ECSignature = typeforce.compile({ r: BigInt, s: BigInt })
19218 var Network = typeforce.compile({
19219 messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),
19221 public: typeforce.UInt32,
19222 private: typeforce.UInt32
19224 pubKeyHash: typeforce.UInt8,
19225 scriptHash: typeforce.UInt8,
19226 wif: typeforce.UInt8
19229 // extend typeforce types with ours
19232 BIP32Path: BIP32Path,
19233 Buffer256bit: typeforce.BufferN(
32),
19235 ECSignature: ECSignature,
19236 Hash160bit: typeforce.BufferN(
20),
19237 Hash256bit: typeforce.BufferN(
32),
19243 for (var typeName in typeforce) {
19244 types[typeName] = typeforce[typeName]
19247 module.exports = types
19249 },{"typeforce":
109}],
79:[function(require,module,exports){
19250 var basex = require('base-x')
19251 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
19253 module.exports = basex(ALPHABET)
19255 },{"base-x":
34}],
80:[function(require,module,exports){
19256 (function (Buffer){
19259 var base58 = require('bs58')
19260 var createHash = require('create-hash')
19262 // SHA256(SHA256(buffer))
19263 function sha256x2 (buffer) {
19264 var tmp = createHash('sha256').update(buffer).digest()
19265 return createHash('sha256').update(tmp).digest()
19268 // Encode a buffer as a base58-check encoded string
19269 function encode (payload) {
19270 var checksum = sha256x2(payload)
19272 return base58.encode(Buffer.concat([
19275 ], payload.length +
4))
19278 function decodeRaw (buffer) {
19279 var payload = buffer.slice(
0, -
4)
19280 var checksum = buffer.slice(-
4)
19281 var newChecksum = sha256x2(payload)
19283 if (checksum[
0] ^ newChecksum[
0] |
19284 checksum[
1] ^ newChecksum[
1] |
19285 checksum[
2] ^ newChecksum[
2] |
19286 checksum[
3] ^ newChecksum[
3]) return
19291 // Decode a base58-check encoded string to a buffer, no result if checksum is wrong
19292 function decodeUnsafe (string) {
19293 var buffer = base58.decodeUnsafe(string)
19294 if (!buffer) return
19296 return decodeRaw(buffer)
19299 function decode (string) {
19300 var buffer = base58.decode(string)
19301 var payload = decodeRaw(buffer)
19302 if (!payload) throw new Error('Invalid checksum')
19309 decodeUnsafe: decodeUnsafe
19312 }).call(this,require("buffer").Buffer)
19313 },{"bs58":
79,"buffer":
4,"create-hash":
82}],
81:[function(require,module,exports){
19314 var Buffer = require('safe-buffer').Buffer
19315 var Transform = require('stream').Transform
19316 var StringDecoder = require('string_decoder').StringDecoder
19317 var inherits = require('inherits')
19319 function CipherBase (hashMode) {
19320 Transform.call(this)
19321 this.hashMode = typeof hashMode === 'string'
19322 if (this.hashMode) {
19323 this[hashMode] = this._finalOrDigest
19325 this.final = this._finalOrDigest
19328 this.__final = this._final
19331 this._decoder = null
19332 this._encoding = null
19334 inherits(CipherBase, Transform)
19336 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
19337 if (typeof data === 'string') {
19338 data = Buffer.from(data, inputEnc)
19341 var outData = this._update(data)
19342 if (this.hashMode) return this
19345 outData = this._toString(outData, outputEnc)
19351 CipherBase.prototype.setAutoPadding = function () {}
19352 CipherBase.prototype.getAuthTag = function () {
19353 throw new Error('trying to get auth tag in unsupported state')
19356 CipherBase.prototype.setAuthTag = function () {
19357 throw new Error('trying to set auth tag in unsupported state')
19360 CipherBase.prototype.setAAD = function () {
19361 throw new Error('trying to set aad in unsupported state')
19364 CipherBase.prototype._transform = function (data, _, next) {
19367 if (this.hashMode) {
19370 this.push(this._update(data))
19378 CipherBase.prototype._flush = function (done) {
19381 this.push(this.__final())
19388 CipherBase.prototype._finalOrDigest = function (outputEnc) {
19389 var outData = this.__final() || Buffer.alloc(
0)
19391 outData = this._toString(outData, outputEnc, true)
19396 CipherBase.prototype._toString = function (value, enc, fin) {
19397 if (!this._decoder) {
19398 this._decoder = new StringDecoder(enc)
19399 this._encoding = enc
19402 if (this._encoding !== enc) throw new Error('can\'t switch encodings')
19404 var out = this._decoder.write(value)
19406 out += this._decoder.end()
19412 module.exports = CipherBase
19414 },{"inherits":
93,"safe-buffer":
98,"stream":
27,"string_decoder":
28}],
82:[function(require,module,exports){
19415 (function (Buffer){
19417 var inherits = require('inherits')
19418 var md5 = require('./md5')
19419 var RIPEMD160 = require('ripemd160')
19420 var sha = require('sha.js')
19422 var Base = require('cipher-base')
19424 function HashNoConstructor (hash) {
19425 Base.call(this, 'digest')
19431 inherits(HashNoConstructor, Base)
19433 HashNoConstructor.prototype._update = function (data) {
19434 this.buffers.push(data)
19437 HashNoConstructor.prototype._final = function () {
19438 var buf = Buffer.concat(this.buffers)
19439 var r = this._hash(buf)
19440 this.buffers = null
19445 function Hash (hash) {
19446 Base.call(this, 'digest')
19451 inherits(Hash, Base)
19453 Hash.prototype._update = function (data) {
19454 this._hash.update(data)
19457 Hash.prototype._final = function () {
19458 return this._hash.digest()
19461 module.exports = function createHash (alg) {
19462 alg = alg.toLowerCase()
19463 if (alg === 'md5') return new HashNoConstructor(md5)
19464 if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160())
19466 return new Hash(sha(alg))
19469 }).call(this,require("buffer").Buffer)
19470 },{"./md5":
84,"buffer":
4,"cipher-base":
81,"inherits":
93,"ripemd160":
97,"sha.js":
100}],
83:[function(require,module,exports){
19471 (function (Buffer){
19474 var zeroBuffer = new Buffer(intSize)
19480 function toArray (buf) {
19481 if ((buf.length % intSize) !==
0) {
19482 var len = buf.length + (intSize - (buf.length % intSize))
19483 buf = Buffer.concat([buf, zeroBuffer], len)
19486 var arr = new Array(buf.length
>>> 2)
19487 for (var i =
0, j =
0; i < buf.length; i += intSize, j++) {
19488 arr[j] = buf.readInt32LE(i)
19494 module.exports = function hash (buf, fn) {
19495 var arr = fn(toArray(buf), buf.length * charSize)
19496 buf = new Buffer(hashSize)
19497 for (var i =
0; i < arr.length; i++) {
19498 buf.writeInt32LE(arr[i], i <<
2, true)
19503 }).call(this,require(
"buffer").Buffer)
19504 },{
"buffer":
4}],
84:[function(require,module,exports){
19507 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
19508 * Digest Algorithm, as defined in RFC
1321.
19509 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
19510 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
19511 * Distributed under the BSD License
19512 * See http://pajhome.org.uk/crypt/md5 for more info.
19515 var makeHash = require('./make-hash')
19518 * Calculate the MD5 of an array of little-endian words, and a bit length
19520 function core_md5 (x, len) {
19521 /* append padding */
19522 x[len
>> 5] |=
0x80 << ((len) %
32)
19523 x[(((len +
64)
>>> 9) <<
4) +
14] = len
19527 var c = -
1732584194
19530 for (var i =
0; i < x.length; i +=
16) {
19536 a = md5_ff(a, b, c, d, x[i +
0],
7, -
680876936)
19537 d = md5_ff(d, a, b, c, x[i +
1],
12, -
389564586)
19538 c = md5_ff(c, d, a, b, x[i +
2],
17,
606105819)
19539 b = md5_ff(b, c, d, a, x[i +
3],
22, -
1044525330)
19540 a = md5_ff(a, b, c, d, x[i +
4],
7, -
176418897)
19541 d = md5_ff(d, a, b, c, x[i +
5],
12,
1200080426)
19542 c = md5_ff(c, d, a, b, x[i +
6],
17, -
1473231341)
19543 b = md5_ff(b, c, d, a, x[i +
7],
22, -
45705983)
19544 a = md5_ff(a, b, c, d, x[i +
8],
7,
1770035416)
19545 d = md5_ff(d, a, b, c, x[i +
9],
12, -
1958414417)
19546 c = md5_ff(c, d, a, b, x[i +
10],
17, -
42063)
19547 b = md5_ff(b, c, d, a, x[i +
11],
22, -
1990404162)
19548 a = md5_ff(a, b, c, d, x[i +
12],
7,
1804603682)
19549 d = md5_ff(d, a, b, c, x[i +
13],
12, -
40341101)
19550 c = md5_ff(c, d, a, b, x[i +
14],
17, -
1502002290)
19551 b = md5_ff(b, c, d, a, x[i +
15],
22,
1236535329)
19553 a = md5_gg(a, b, c, d, x[i +
1],
5, -
165796510)
19554 d = md5_gg(d, a, b, c, x[i +
6],
9, -
1069501632)
19555 c = md5_gg(c, d, a, b, x[i +
11],
14,
643717713)
19556 b = md5_gg(b, c, d, a, x[i +
0],
20, -
373897302)
19557 a = md5_gg(a, b, c, d, x[i +
5],
5, -
701558691)
19558 d = md5_gg(d, a, b, c, x[i +
10],
9,
38016083)
19559 c = md5_gg(c, d, a, b, x[i +
15],
14, -
660478335)
19560 b = md5_gg(b, c, d, a, x[i +
4],
20, -
405537848)
19561 a = md5_gg(a, b, c, d, x[i +
9],
5,
568446438)
19562 d = md5_gg(d, a, b, c, x[i +
14],
9, -
1019803690)
19563 c = md5_gg(c, d, a, b, x[i +
3],
14, -
187363961)
19564 b = md5_gg(b, c, d, a, x[i +
8],
20,
1163531501)
19565 a = md5_gg(a, b, c, d, x[i +
13],
5, -
1444681467)
19566 d = md5_gg(d, a, b, c, x[i +
2],
9, -
51403784)
19567 c = md5_gg(c, d, a, b, x[i +
7],
14,
1735328473)
19568 b = md5_gg(b, c, d, a, x[i +
12],
20, -
1926607734)
19570 a = md5_hh(a, b, c, d, x[i +
5],
4, -
378558)
19571 d = md5_hh(d, a, b, c, x[i +
8],
11, -
2022574463)
19572 c = md5_hh(c, d, a, b, x[i +
11],
16,
1839030562)
19573 b = md5_hh(b, c, d, a, x[i +
14],
23, -
35309556)
19574 a = md5_hh(a, b, c, d, x[i +
1],
4, -
1530992060)
19575 d = md5_hh(d, a, b, c, x[i +
4],
11,
1272893353)
19576 c = md5_hh(c, d, a, b, x[i +
7],
16, -
155497632)
19577 b = md5_hh(b, c, d, a, x[i +
10],
23, -
1094730640)
19578 a = md5_hh(a, b, c, d, x[i +
13],
4,
681279174)
19579 d = md5_hh(d, a, b, c, x[i +
0],
11, -
358537222)
19580 c = md5_hh(c, d, a, b, x[i +
3],
16, -
722521979)
19581 b = md5_hh(b, c, d, a, x[i +
6],
23,
76029189)
19582 a = md5_hh(a, b, c, d, x[i +
9],
4, -
640364487)
19583 d = md5_hh(d, a, b, c, x[i +
12],
11, -
421815835)
19584 c = md5_hh(c, d, a, b, x[i +
15],
16,
530742520)
19585 b = md5_hh(b, c, d, a, x[i +
2],
23, -
995338651)
19587 a = md5_ii(a, b, c, d, x[i +
0],
6, -
198630844)
19588 d = md5_ii(d, a, b, c, x[i +
7],
10,
1126891415)
19589 c = md5_ii(c, d, a, b, x[i +
14],
15, -
1416354905)
19590 b = md5_ii(b, c, d, a, x[i +
5],
21, -
57434055)
19591 a = md5_ii(a, b, c, d, x[i +
12],
6,
1700485571)
19592 d = md5_ii(d, a, b, c, x[i +
3],
10, -
1894986606)
19593 c = md5_ii(c, d, a, b, x[i +
10],
15, -
1051523)
19594 b = md5_ii(b, c, d, a, x[i +
1],
21, -
2054922799)
19595 a = md5_ii(a, b, c, d, x[i +
8],
6,
1873313359)
19596 d = md5_ii(d, a, b, c, x[i +
15],
10, -
30611744)
19597 c = md5_ii(c, d, a, b, x[i +
6],
15, -
1560198380)
19598 b = md5_ii(b, c, d, a, x[i +
13],
21,
1309151649)
19599 a = md5_ii(a, b, c, d, x[i +
4],
6, -
145523070)
19600 d = md5_ii(d, a, b, c, x[i +
11],
10, -
1120210379)
19601 c = md5_ii(c, d, a, b, x[i +
2],
15,
718787259)
19602 b = md5_ii(b, c, d, a, x[i +
9],
21, -
343485551)
19604 a = safe_add(a, olda)
19605 b = safe_add(b, oldb)
19606 c = safe_add(c, oldc)
19607 d = safe_add(d, oldd)
19610 return [a, b, c, d]
19614 * These functions implement the four basic operations the algorithm uses.
19616 function md5_cmn (q, a, b, x, s, t) {
19617 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
19620 function md5_ff (a, b, c, d, x, s, t) {
19621 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
19624 function md5_gg (a, b, c, d, x, s, t) {
19625 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
19628 function md5_hh (a, b, c, d, x, s, t) {
19629 return md5_cmn(b ^ c ^ d, a, b, x, s, t)
19632 function md5_ii (a, b, c, d, x, s, t) {
19633 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
19637 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
19638 * to work around bugs in some JS interpreters.
19640 function safe_add (x, y) {
19641 var lsw = (x &
0xFFFF) + (y &
0xFFFF)
19642 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16)
19643 return (msw <<
16) | (lsw &
0xFFFF)
19647 * Bitwise rotate a
32-bit number to the left.
19649 function bit_rol (num, cnt) {
19650 return (num << cnt) | (num
>>> (
32 - cnt))
19653 module.exports = function md5 (buf) {
19654 return makeHash(buf, core_md5)
19657 },{"./make-hash":
83}],
85:[function(require,module,exports){
19659 var inherits = require('inherits')
19660 var Legacy = require('./legacy')
19661 var Base = require('cipher-base')
19662 var Buffer = require('safe-buffer').Buffer
19663 var md5 = require('create-hash/md5')
19664 var RIPEMD160 = require('ripemd160')
19666 var sha = require('sha.js')
19668 var ZEROS = Buffer.alloc(
128)
19670 function Hmac (alg, key) {
19671 Base.call(this, 'digest')
19672 if (typeof key === 'string') {
19673 key = Buffer.from(key)
19676 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
19680 if (key.length
> blocksize) {
19681 var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19682 key = hash.update(key).digest()
19683 } else if (key.length < blocksize) {
19684 key = Buffer.concat([key, ZEROS], blocksize)
19687 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19688 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19690 for (var i =
0; i < blocksize; i++) {
19691 ipad[i] = key[i] ^
0x36
19692 opad[i] = key[i] ^
0x5C
19694 this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19695 this._hash.update(ipad)
19698 inherits(Hmac, Base)
19700 Hmac.prototype._update = function (data) {
19701 this._hash.update(data)
19704 Hmac.prototype._final = function () {
19705 var h = this._hash.digest()
19706 var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
19707 return hash.update(this._opad).update(h).digest()
19710 module.exports = function createHmac (alg, key) {
19711 alg = alg.toLowerCase()
19712 if (alg === 'rmd160' || alg === 'ripemd160') {
19713 return new Hmac('rmd160', key)
19715 if (alg === 'md5') {
19716 return new Legacy(md5, key)
19718 return new Hmac(alg, key)
19721 },{"./legacy":
86,"cipher-base":
81,"create-hash/md5":
84,"inherits":
93,"ripemd160":
97,"safe-buffer":
98,"sha.js":
100}],
86:[function(require,module,exports){
19723 var inherits = require('inherits')
19724 var Buffer = require('safe-buffer').Buffer
19726 var Base = require('cipher-base')
19728 var ZEROS = Buffer.alloc(
128)
19731 function Hmac (alg, key) {
19732 Base.call(this, 'digest')
19733 if (typeof key === 'string') {
19734 key = Buffer.from(key)
19740 if (key.length
> blocksize) {
19742 } else if (key.length < blocksize) {
19743 key = Buffer.concat([key, ZEROS], blocksize)
19746 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19747 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19749 for (var i =
0; i < blocksize; i++) {
19750 ipad[i] = key[i] ^
0x36
19751 opad[i] = key[i] ^
0x5C
19754 this._hash = [ipad]
19757 inherits(Hmac, Base)
19759 Hmac.prototype._update = function (data) {
19760 this._hash.push(data)
19763 Hmac.prototype._final = function () {
19764 var h = this._alg(Buffer.concat(this._hash))
19765 return this._alg(Buffer.concat([this._opad, h]))
19767 module.exports = Hmac
19769 },{"cipher-base":
81,"inherits":
93,"safe-buffer":
98}],
87:[function(require,module,exports){
19770 var assert = require('assert')
19771 var BigInteger = require('bigi')
19773 var Point = require('./point')
19775 function Curve (p, a, b, Gx, Gy, n, h) {
19779 this.G = Point.fromAffine(this, Gx, Gy)
19783 this.infinity = new Point(this, null, null, BigInteger.ZERO)
19786 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
19788 // determine size of p in bytes
19789 this.pLength = Math.floor((this.p.bitLength() +
7) /
8)
19792 Curve.prototype.pointFromX = function (isOdd, x) {
19793 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
19794 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
19797 if (beta.isEven() ^ !isOdd) {
19798 y = this.p.subtract(y) // -y % p
19801 return Point.fromAffine(this, x, y)
19804 Curve.prototype.isInfinity = function (Q) {
19805 if (Q === this.infinity) return true
19807 return Q.z.signum() ===
0 && Q.y.signum() !==
0
19810 Curve.prototype.isOnCurve = function (Q) {
19811 if (this.isInfinity(Q)) return true
19819 // Check that xQ and yQ are integers in the interval [
0, p -
1]
19820 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
19821 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
19823 // and check that y^
2 = x^
3 + ax + b (mod p)
19824 var lhs = y.square().mod(p)
19825 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
19826 return lhs.equals(rhs)
19830 * Validate an elliptic curve point.
19832 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
19834 Curve.prototype.validate = function (Q) {
19836 assert(!this.isInfinity(Q), 'Point is at infinity')
19837 assert(this.isOnCurve(Q), 'Point is not on the curve')
19839 // Check nQ = O (where Q is a scalar multiple of G)
19840 var nQ = Q.multiply(this.n)
19841 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
19846 module.exports = Curve
19848 },{"./point":
91,"assert":
1,"bigi":
37}],
88:[function(require,module,exports){
19851 "p": "fffffffdffffffffffffffffffffffff",
19852 "a": "fffffffdfffffffffffffffffffffffc",
19853 "b": "e87579c11079f43dd824993c2cee5ed3",
19854 "n": "fffffffe0000000075a30d1b9038a115",
19856 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
19857 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
19860 "p": "fffffffffffffffffffffffffffffffeffffac73",
19863 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
19865 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
19866 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
19869 "p": "ffffffffffffffffffffffffffffffff7fffffff",
19870 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
19871 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
19872 "n": "
0100000000000000000001f4c8f927aed3ca752257",
19874 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
19875 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
19878 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
19881 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
19883 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
19884 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
19887 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
19888 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
19889 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
19890 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
19892 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
19893 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
19896 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
19899 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
19901 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
19902 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
19905 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
19906 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
19907 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
19908 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
19910 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
19911 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
19915 },{}],
89:[function(require,module,exports){
19916 var Point = require('./point')
19917 var Curve = require('./curve')
19919 var getCurveByName = require('./names')
19924 getCurveByName: getCurveByName
19927 },{"./curve":
87,"./names":
90,"./point":
91}],
90:[function(require,module,exports){
19928 var BigInteger = require('bigi')
19930 var curves = require('./curves.json')
19931 var Curve = require('./curve')
19933 function getCurveByName (name) {
19934 var curve = curves[name]
19935 if (!curve) return null
19937 var p = new BigInteger(curve.p,
16)
19938 var a = new BigInteger(curve.a,
16)
19939 var b = new BigInteger(curve.b,
16)
19940 var n = new BigInteger(curve.n,
16)
19941 var h = new BigInteger(curve.h,
16)
19942 var Gx = new BigInteger(curve.Gx,
16)
19943 var Gy = new BigInteger(curve.Gy,
16)
19945 return new Curve(p, a, b, Gx, Gy, n, h)
19948 module.exports = getCurveByName
19950 },{"./curve":
87,"./curves.json":
88,"bigi":
37}],
91:[function(require,module,exports){
19951 (function (Buffer){
19952 var assert = require('assert')
19953 var BigInteger = require('bigi')
19955 var THREE = BigInteger.valueOf(
3)
19957 function Point (curve, x, y, z) {
19958 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
19966 this.compressed = true
19969 Object.defineProperty(Point.prototype, 'zInv', {
19971 if (this._zInv === null) {
19972 this._zInv = this.z.modInverse(this.curve.p)
19979 Object.defineProperty(Point.prototype, 'affineX', {
19981 return this.x.multiply(this.zInv).mod(this.curve.p)
19985 Object.defineProperty(Point.prototype, 'affineY', {
19987 return this.y.multiply(this.zInv).mod(this.curve.p)
19991 Point.fromAffine = function (curve, x, y) {
19992 return new Point(curve, x, y, BigInteger.ONE)
19995 Point.prototype.equals = function (other) {
19996 if (other === this) return true
19997 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
19998 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
20000 // u = Y2 * Z1 - Y1 * Z2
20001 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
20003 if (u.signum() !==
0) return false
20005 // v = X2 * Z1 - X1 * Z2
20006 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
20008 return v.signum() ===
0
20011 Point.prototype.negate = function () {
20012 var y = this.curve.p.subtract(this.y)
20014 return new Point(this.curve, this.x, y, this.z)
20017 Point.prototype.add = function (b) {
20018 if (this.curve.isInfinity(this)) return b
20019 if (this.curve.isInfinity(b)) return this
20026 // u = Y2 * Z1 - Y1 * Z2
20027 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
20028 // v = X2 * Z1 - X1 * Z2
20029 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
20031 if (v.signum() ===
0) {
20032 if (u.signum() ===
0) {
20033 return this.twice() // this == b, so double
20036 return this.curve.infinity // this = -b, so infinity
20039 var v2 = v.square()
20040 var v3 = v2.multiply(v)
20041 var x1v2 = x1.multiply(v2)
20042 var zu2 = u.square().multiply(this.z)
20044 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
20045 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
20046 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
20047 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)
20048 // z3 = v^
3 * z1 * z2
20049 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
20051 return new Point(this.curve, x3, y3, z3)
20054 Point.prototype.twice = function () {
20055 if (this.curve.isInfinity(this)) return this
20056 if (this.y.signum() ===
0) return this.curve.infinity
20061 var y1z1 = y1.multiply(this.z).mod(this.curve.p)
20062 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
20063 var a = this.curve.a
20065 // w =
3 * x1^
2 + a * z1^
2
20066 var w = x1.square().multiply(THREE)
20068 if (a.signum() !==
0) {
20069 w = w.add(this.z.square().multiply(a))
20072 w = w.mod(this.curve.p)
20073 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
20074 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
20075 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
20076 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
20077 // z3 =
8 * (y1 * z1)^
3
20078 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
20080 return new Point(this.curve, x3, y3, z3)
20083 // Simple NAF (Non-Adjacent Form) multiplication algorithm
20084 // TODO: modularize the multiplication algorithm
20085 Point.prototype.multiply = function (k) {
20086 if (this.curve.isInfinity(this)) return this
20087 if (k.signum() ===
0) return this.curve.infinity
20090 var h = e.multiply(THREE)
20092 var neg = this.negate()
20095 for (var i = h.bitLength() -
2; i
> 0; --i) {
20096 var hBit = h.testBit(i)
20097 var eBit = e.testBit(i)
20101 if (hBit !== eBit) {
20102 R = R.add(hBit ? this : neg)
20109 // Compute this*j + x*k (simultaneous multiplication)
20110 Point.prototype.multiplyTwo = function (j, x, k) {
20111 var i = Math.max(j.bitLength(), k.bitLength()) -
1
20112 var R = this.curve.infinity
20113 var both = this.add(x)
20116 var jBit = j.testBit(i)
20117 var kBit = k.testBit(i)
20136 Point.prototype.getEncoded = function (compressed) {
20137 if (compressed == null) compressed = this.compressed
20138 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
20140 var x = this.affineX
20141 var y = this.affineY
20142 var byteLength = this.curve.pLength
20147 buffer = new Buffer(
1 + byteLength)
20148 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
20152 buffer = new Buffer(
1 + byteLength + byteLength)
20153 buffer.writeUInt8(
0x04,
0)
20155 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
20158 x.toBuffer(byteLength).copy(buffer,
1)
20163 Point.decodeFrom = function (curve, buffer) {
20164 var type = buffer.readUInt8(
0)
20165 var compressed = (type !==
4)
20167 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
20168 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
20172 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
20173 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
20175 var isOdd = (type ===
0x03)
20176 Q = curve.pointFromX(isOdd, x)
20178 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
20180 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
20181 Q = Point.fromAffine(curve, x, y)
20184 Q.compressed = compressed
20188 Point.prototype.toString = function () {
20189 if (this.curve.isInfinity(this)) return '(INFINITY)'
20191 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
20194 module.exports = Point
20196 }).call(this,require("buffer").Buffer)
20197 },{"assert":
1,"bigi":
37,"buffer":
4}],
92:[function(require,module,exports){
20198 (function (Buffer){
20200 var Transform = require('stream').Transform
20201 var inherits = require('inherits')
20203 function HashBase (blockSize) {
20204 Transform.call(this)
20206 this._block = new Buffer(blockSize)
20207 this._blockSize = blockSize
20208 this._blockOffset =
0
20209 this._length = [
0,
0,
0,
0]
20211 this._finalized = false
20214 inherits(HashBase, Transform)
20216 HashBase.prototype._transform = function (chunk, encoding, callback) {
20219 if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding)
20228 HashBase.prototype._flush = function (callback) {
20231 this.push(this._digest())
20239 HashBase.prototype.update = function (data, encoding) {
20240 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
20241 if (this._finalized) throw new Error('Digest already called')
20242 if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary')
20245 var block = this._block
20247 while (this._blockOffset + data.length - offset
>= this._blockSize) {
20248 for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
20250 this._blockOffset =
0
20252 while (offset < data.length) block[this._blockOffset++] = data[offset++]
20255 for (var j =
0, carry = data.length *
8; carry
> 0; ++j) {
20256 this._length[j] += carry
20257 carry = (this._length[j] /
0x0100000000) |
0
20258 if (carry
> 0) this._length[j] -=
0x0100000000 * carry
20264 HashBase.prototype._update = function (data) {
20265 throw new Error('_update is not implemented')
20268 HashBase.prototype.digest = function (encoding) {
20269 if (this._finalized) throw new Error('Digest already called')
20270 this._finalized = true
20272 var digest = this._digest()
20273 if (encoding !== undefined) digest = digest.toString(encoding)
20277 HashBase.prototype._digest = function () {
20278 throw new Error('_digest is not implemented')
20281 module.exports = HashBase
20283 }).call(this,require(
"buffer").Buffer)
20284 },{
"buffer":
4,
"inherits":
93,
"stream":
27}],
93:[function(require,module,exports){
20285 arguments[
4][
8][
0].apply(exports,arguments)
20286 },{
"dup":
8}],
94:[function(require,module,exports){
20287 (function (Buffer){
20288 // constant-space merkle root calculation algorithm
20289 module.exports = function fastRoot (values, digestFn) {
20290 if (!Array.isArray(values)) throw TypeError('Expected values Array')
20291 if (typeof digestFn !== 'function') throw TypeError('Expected digest Function')
20293 var length = values.length
20294 var results = values.concat()
20296 while (length
> 1) {
20299 for (var i =
0; i < length; i +=
2, ++j) {
20300 var left = results[i]
20301 var right = i +
1 === length ? left : results[i +
1]
20302 var data = Buffer.concat([left, right])
20304 results[j] = digestFn(data)
20313 }).call(this,require(
"buffer").Buffer)
20314 },{
"buffer":
4}],
95:[function(require,module,exports){
20315 var OPS = require('bitcoin-ops')
20317 function encodingLength (i) {
20318 return i < OPS.OP_PUSHDATA1 ?
1
20324 function encode (buffer, number, offset) {
20325 var size = encodingLength(number)
20329 buffer.writeUInt8(number, offset)
20332 } else if (size ===
2) {
20333 buffer.writeUInt8(OPS.OP_PUSHDATA1, offset)
20334 buffer.writeUInt8(number, offset +
1)
20337 } else if (size ===
3) {
20338 buffer.writeUInt8(OPS.OP_PUSHDATA2, offset)
20339 buffer.writeUInt16LE(number, offset +
1)
20343 buffer.writeUInt8(OPS.OP_PUSHDATA4, offset)
20344 buffer.writeUInt32LE(number, offset +
1)
20350 function decode (buffer, offset) {
20351 var opcode = buffer.readUInt8(offset)
20355 if (opcode < OPS.OP_PUSHDATA1) {
20360 } else if (opcode === OPS.OP_PUSHDATA1) {
20361 if (offset +
2 > buffer.length) return null
20362 number = buffer.readUInt8(offset +
1)
20366 } else if (opcode === OPS.OP_PUSHDATA2) {
20367 if (offset +
3 > buffer.length) return null
20368 number = buffer.readUInt16LE(offset +
1)
20373 if (offset +
5 > buffer.length) return null
20374 if (opcode !== OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode')
20376 number = buffer.readUInt32LE(offset +
1)
20388 encodingLength: encodingLength,
20393 },{"bitcoin-ops":
40}],
96:[function(require,module,exports){
20394 (function (process,global){
20397 function oldBrowser () {
20398 throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer
11')
20401 var Buffer = require('safe-buffer').Buffer
20402 var crypto = global.crypto || global.msCrypto
20404 if (crypto && crypto.getRandomValues) {
20405 module.exports = randomBytes
20407 module.exports = oldBrowser
20410 function randomBytes (size, cb) {
20411 // phantomjs needs to throw
20412 if (size
> 65536) throw new Error('requested too many random bytes')
20413 // in case browserify isn't using the Uint8Array version
20414 var rawBytes = new global.Uint8Array(size)
20416 // This will not work in older browsers.
20417 // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
20418 if (size
> 0) { // getRandomValues fails on IE if size ==
0
20419 crypto.getRandomValues(rawBytes)
20422 // XXX: phantomjs doesn't like a buffer being passed here
20423 var bytes = Buffer.from(rawBytes.buffer)
20425 if (typeof cb === 'function') {
20426 return process.nextTick(function () {
20434 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
20435 },{
"_process":
12,
"safe-buffer":
98}],
97:[function(require,module,exports){
20436 (function (Buffer){
20438 var inherits = require('inherits')
20439 var HashBase = require('hash-base')
20441 function RIPEMD160 () {
20442 HashBase.call(this,
64)
20445 this._a =
0x67452301
20446 this._b =
0xefcdab89
20447 this._c =
0x98badcfe
20448 this._d =
0x10325476
20449 this._e =
0xc3d2e1f0
20452 inherits(RIPEMD160, HashBase)
20454 RIPEMD160.prototype._update = function () {
20455 var m = new Array(
16)
20456 for (var i =
0; i <
16; ++i) m[i] = this._block.readInt32LE(i *
4)
20464 // Mj =
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
20466 // Sj =
11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8
20467 al = fn1(al, bl, cl, dl, el, m[
0],
0x00000000,
11); cl = rotl(cl,
10)
20468 el = fn1(el, al, bl, cl, dl, m[
1],
0x00000000,
14); bl = rotl(bl,
10)
20469 dl = fn1(dl, el, al, bl, cl, m[
2],
0x00000000,
15); al = rotl(al,
10)
20470 cl = fn1(cl, dl, el, al, bl, m[
3],
0x00000000,
12); el = rotl(el,
10)
20471 bl = fn1(bl, cl, dl, el, al, m[
4],
0x00000000,
5); dl = rotl(dl,
10)
20472 al = fn1(al, bl, cl, dl, el, m[
5],
0x00000000,
8); cl = rotl(cl,
10)
20473 el = fn1(el, al, bl, cl, dl, m[
6],
0x00000000,
7); bl = rotl(bl,
10)
20474 dl = fn1(dl, el, al, bl, cl, m[
7],
0x00000000,
9); al = rotl(al,
10)
20475 cl = fn1(cl, dl, el, al, bl, m[
8],
0x00000000,
11); el = rotl(el,
10)
20476 bl = fn1(bl, cl, dl, el, al, m[
9],
0x00000000,
13); dl = rotl(dl,
10)
20477 al = fn1(al, bl, cl, dl, el, m[
10],
0x00000000,
14); cl = rotl(cl,
10)
20478 el = fn1(el, al, bl, cl, dl, m[
11],
0x00000000,
15); bl = rotl(bl,
10)
20479 dl = fn1(dl, el, al, bl, cl, m[
12],
0x00000000,
6); al = rotl(al,
10)
20480 cl = fn1(cl, dl, el, al, bl, m[
13],
0x00000000,
7); el = rotl(el,
10)
20481 bl = fn1(bl, cl, dl, el, al, m[
14],
0x00000000,
9); dl = rotl(dl,
10)
20482 al = fn1(al, bl, cl, dl, el, m[
15],
0x00000000,
8); cl = rotl(cl,
10)
20484 // Mj =
7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8
20486 // Sj =
7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12
20487 el = fn2(el, al, bl, cl, dl, m[
7],
0x5a827999,
7); bl = rotl(bl,
10)
20488 dl = fn2(dl, el, al, bl, cl, m[
4],
0x5a827999,
6); al = rotl(al,
10)
20489 cl = fn2(cl, dl, el, al, bl, m[
13],
0x5a827999,
8); el = rotl(el,
10)
20490 bl = fn2(bl, cl, dl, el, al, m[
1],
0x5a827999,
13); dl = rotl(dl,
10)
20491 al = fn2(al, bl, cl, dl, el, m[
10],
0x5a827999,
11); cl = rotl(cl,
10)
20492 el = fn2(el, al, bl, cl, dl, m[
6],
0x5a827999,
9); bl = rotl(bl,
10)
20493 dl = fn2(dl, el, al, bl, cl, m[
15],
0x5a827999,
7); al = rotl(al,
10)
20494 cl = fn2(cl, dl, el, al, bl, m[
3],
0x5a827999,
15); el = rotl(el,
10)
20495 bl = fn2(bl, cl, dl, el, al, m[
12],
0x5a827999,
7); dl = rotl(dl,
10)
20496 al = fn2(al, bl, cl, dl, el, m[
0],
0x5a827999,
12); cl = rotl(cl,
10)
20497 el = fn2(el, al, bl, cl, dl, m[
9],
0x5a827999,
15); bl = rotl(bl,
10)
20498 dl = fn2(dl, el, al, bl, cl, m[
5],
0x5a827999,
9); al = rotl(al,
10)
20499 cl = fn2(cl, dl, el, al, bl, m[
2],
0x5a827999,
11); el = rotl(el,
10)
20500 bl = fn2(bl, cl, dl, el, al, m[
14],
0x5a827999,
7); dl = rotl(dl,
10)
20501 al = fn2(al, bl, cl, dl, el, m[
11],
0x5a827999,
13); cl = rotl(cl,
10)
20502 el = fn2(el, al, bl, cl, dl, m[
8],
0x5a827999,
12); bl = rotl(bl,
10)
20504 // Mj =
3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12
20506 // Sj =
11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5
20507 dl = fn3(dl, el, al, bl, cl, m[
3],
0x6ed9eba1,
11); al = rotl(al,
10)
20508 cl = fn3(cl, dl, el, al, bl, m[
10],
0x6ed9eba1,
13); el = rotl(el,
10)
20509 bl = fn3(bl, cl, dl, el, al, m[
14],
0x6ed9eba1,
6); dl = rotl(dl,
10)
20510 al = fn3(al, bl, cl, dl, el, m[
4],
0x6ed9eba1,
7); cl = rotl(cl,
10)
20511 el = fn3(el, al, bl, cl, dl, m[
9],
0x6ed9eba1,
14); bl = rotl(bl,
10)
20512 dl = fn3(dl, el, al, bl, cl, m[
15],
0x6ed9eba1,
9); al = rotl(al,
10)
20513 cl = fn3(cl, dl, el, al, bl, m[
8],
0x6ed9eba1,
13); el = rotl(el,
10)
20514 bl = fn3(bl, cl, dl, el, al, m[
1],
0x6ed9eba1,
15); dl = rotl(dl,
10)
20515 al = fn3(al, bl, cl, dl, el, m[
2],
0x6ed9eba1,
14); cl = rotl(cl,
10)
20516 el = fn3(el, al, bl, cl, dl, m[
7],
0x6ed9eba1,
8); bl = rotl(bl,
10)
20517 dl = fn3(dl, el, al, bl, cl, m[
0],
0x6ed9eba1,
13); al = rotl(al,
10)
20518 cl = fn3(cl, dl, el, al, bl, m[
6],
0x6ed9eba1,
6); el = rotl(el,
10)
20519 bl = fn3(bl, cl, dl, el, al, m[
13],
0x6ed9eba1,
5); dl = rotl(dl,
10)
20520 al = fn3(al, bl, cl, dl, el, m[
11],
0x6ed9eba1,
12); cl = rotl(cl,
10)
20521 el = fn3(el, al, bl, cl, dl, m[
5],
0x6ed9eba1,
7); bl = rotl(bl,
10)
20522 dl = fn3(dl, el, al, bl, cl, m[
12],
0x6ed9eba1,
5); al = rotl(al,
10)
20524 // Mj =
1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2
20526 // Sj =
11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12
20527 cl = fn4(cl, dl, el, al, bl, m[
1],
0x8f1bbcdc,
11); el = rotl(el,
10)
20528 bl = fn4(bl, cl, dl, el, al, m[
9],
0x8f1bbcdc,
12); dl = rotl(dl,
10)
20529 al = fn4(al, bl, cl, dl, el, m[
11],
0x8f1bbcdc,
14); cl = rotl(cl,
10)
20530 el = fn4(el, al, bl, cl, dl, m[
10],
0x8f1bbcdc,
15); bl = rotl(bl,
10)
20531 dl = fn4(dl, el, al, bl, cl, m[
0],
0x8f1bbcdc,
14); al = rotl(al,
10)
20532 cl = fn4(cl, dl, el, al, bl, m[
8],
0x8f1bbcdc,
15); el = rotl(el,
10)
20533 bl = fn4(bl, cl, dl, el, al, m[
12],
0x8f1bbcdc,
9); dl = rotl(dl,
10)
20534 al = fn4(al, bl, cl, dl, el, m[
4],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20535 el = fn4(el, al, bl, cl, dl, m[
13],
0x8f1bbcdc,
9); bl = rotl(bl,
10)
20536 dl = fn4(dl, el, al, bl, cl, m[
3],
0x8f1bbcdc,
14); al = rotl(al,
10)
20537 cl = fn4(cl, dl, el, al, bl, m[
7],
0x8f1bbcdc,
5); el = rotl(el,
10)
20538 bl = fn4(bl, cl, dl, el, al, m[
15],
0x8f1bbcdc,
6); dl = rotl(dl,
10)
20539 al = fn4(al, bl, cl, dl, el, m[
14],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20540 el = fn4(el, al, bl, cl, dl, m[
5],
0x8f1bbcdc,
6); bl = rotl(bl,
10)
20541 dl = fn4(dl, el, al, bl, cl, m[
6],
0x8f1bbcdc,
5); al = rotl(al,
10)
20542 cl = fn4(cl, dl, el, al, bl, m[
2],
0x8f1bbcdc,
12); el = rotl(el,
10)
20544 // Mj =
4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
20546 // Sj =
9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
20547 bl = fn5(bl, cl, dl, el, al, m[
4],
0xa953fd4e,
9); dl = rotl(dl,
10)
20548 al = fn5(al, bl, cl, dl, el, m[
0],
0xa953fd4e,
15); cl = rotl(cl,
10)
20549 el = fn5(el, al, bl, cl, dl, m[
5],
0xa953fd4e,
5); bl = rotl(bl,
10)
20550 dl = fn5(dl, el, al, bl, cl, m[
9],
0xa953fd4e,
11); al = rotl(al,
10)
20551 cl = fn5(cl, dl, el, al, bl, m[
7],
0xa953fd4e,
6); el = rotl(el,
10)
20552 bl = fn5(bl, cl, dl, el, al, m[
12],
0xa953fd4e,
8); dl = rotl(dl,
10)
20553 al = fn5(al, bl, cl, dl, el, m[
2],
0xa953fd4e,
13); cl = rotl(cl,
10)
20554 el = fn5(el, al, bl, cl, dl, m[
10],
0xa953fd4e,
12); bl = rotl(bl,
10)
20555 dl = fn5(dl, el, al, bl, cl, m[
14],
0xa953fd4e,
5); al = rotl(al,
10)
20556 cl = fn5(cl, dl, el, al, bl, m[
1],
0xa953fd4e,
12); el = rotl(el,
10)
20557 bl = fn5(bl, cl, dl, el, al, m[
3],
0xa953fd4e,
13); dl = rotl(dl,
10)
20558 al = fn5(al, bl, cl, dl, el, m[
8],
0xa953fd4e,
14); cl = rotl(cl,
10)
20559 el = fn5(el, al, bl, cl, dl, m[
11],
0xa953fd4e,
11); bl = rotl(bl,
10)
20560 dl = fn5(dl, el, al, bl, cl, m[
6],
0xa953fd4e,
8); al = rotl(al,
10)
20561 cl = fn5(cl, dl, el, al, bl, m[
15],
0xa953fd4e,
5); el = rotl(el,
10)
20562 bl = fn5(bl, cl, dl, el, al, m[
13],
0xa953fd4e,
6); dl = rotl(dl,
10)
20570 // M'j =
5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12
20572 // S'j =
8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6
20573 ar = fn5(ar, br, cr, dr, er, m[
5],
0x50a28be6,
8); cr = rotl(cr,
10)
20574 er = fn5(er, ar, br, cr, dr, m[
14],
0x50a28be6,
9); br = rotl(br,
10)
20575 dr = fn5(dr, er, ar, br, cr, m[
7],
0x50a28be6,
9); ar = rotl(ar,
10)
20576 cr = fn5(cr, dr, er, ar, br, m[
0],
0x50a28be6,
11); er = rotl(er,
10)
20577 br = fn5(br, cr, dr, er, ar, m[
9],
0x50a28be6,
13); dr = rotl(dr,
10)
20578 ar = fn5(ar, br, cr, dr, er, m[
2],
0x50a28be6,
15); cr = rotl(cr,
10)
20579 er = fn5(er, ar, br, cr, dr, m[
11],
0x50a28be6,
15); br = rotl(br,
10)
20580 dr = fn5(dr, er, ar, br, cr, m[
4],
0x50a28be6,
5); ar = rotl(ar,
10)
20581 cr = fn5(cr, dr, er, ar, br, m[
13],
0x50a28be6,
7); er = rotl(er,
10)
20582 br = fn5(br, cr, dr, er, ar, m[
6],
0x50a28be6,
7); dr = rotl(dr,
10)
20583 ar = fn5(ar, br, cr, dr, er, m[
15],
0x50a28be6,
8); cr = rotl(cr,
10)
20584 er = fn5(er, ar, br, cr, dr, m[
8],
0x50a28be6,
11); br = rotl(br,
10)
20585 dr = fn5(dr, er, ar, br, cr, m[
1],
0x50a28be6,
14); ar = rotl(ar,
10)
20586 cr = fn5(cr, dr, er, ar, br, m[
10],
0x50a28be6,
14); er = rotl(er,
10)
20587 br = fn5(br, cr, dr, er, ar, m[
3],
0x50a28be6,
12); dr = rotl(dr,
10)
20588 ar = fn5(ar, br, cr, dr, er, m[
12],
0x50a28be6,
6); cr = rotl(cr,
10)
20590 // M'j =
6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2
20592 // S'j =
9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11
20593 er = fn4(er, ar, br, cr, dr, m[
6],
0x5c4dd124,
9); br = rotl(br,
10)
20594 dr = fn4(dr, er, ar, br, cr, m[
11],
0x5c4dd124,
13); ar = rotl(ar,
10)
20595 cr = fn4(cr, dr, er, ar, br, m[
3],
0x5c4dd124,
15); er = rotl(er,
10)
20596 br = fn4(br, cr, dr, er, ar, m[
7],
0x5c4dd124,
7); dr = rotl(dr,
10)
20597 ar = fn4(ar, br, cr, dr, er, m[
0],
0x5c4dd124,
12); cr = rotl(cr,
10)
20598 er = fn4(er, ar, br, cr, dr, m[
13],
0x5c4dd124,
8); br = rotl(br,
10)
20599 dr = fn4(dr, er, ar, br, cr, m[
5],
0x5c4dd124,
9); ar = rotl(ar,
10)
20600 cr = fn4(cr, dr, er, ar, br, m[
10],
0x5c4dd124,
11); er = rotl(er,
10)
20601 br = fn4(br, cr, dr, er, ar, m[
14],
0x5c4dd124,
7); dr = rotl(dr,
10)
20602 ar = fn4(ar, br, cr, dr, er, m[
15],
0x5c4dd124,
7); cr = rotl(cr,
10)
20603 er = fn4(er, ar, br, cr, dr, m[
8],
0x5c4dd124,
12); br = rotl(br,
10)
20604 dr = fn4(dr, er, ar, br, cr, m[
12],
0x5c4dd124,
7); ar = rotl(ar,
10)
20605 cr = fn4(cr, dr, er, ar, br, m[
4],
0x5c4dd124,
6); er = rotl(er,
10)
20606 br = fn4(br, cr, dr, er, ar, m[
9],
0x5c4dd124,
15); dr = rotl(dr,
10)
20607 ar = fn4(ar, br, cr, dr, er, m[
1],
0x5c4dd124,
13); cr = rotl(cr,
10)
20608 er = fn4(er, ar, br, cr, dr, m[
2],
0x5c4dd124,
11); br = rotl(br,
10)
20610 // M'j =
15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13
20612 // S'j =
9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5
20613 dr = fn3(dr, er, ar, br, cr, m[
15],
0x6d703ef3,
9); ar = rotl(ar,
10)
20614 cr = fn3(cr, dr, er, ar, br, m[
5],
0x6d703ef3,
7); er = rotl(er,
10)
20615 br = fn3(br, cr, dr, er, ar, m[
1],
0x6d703ef3,
15); dr = rotl(dr,
10)
20616 ar = fn3(ar, br, cr, dr, er, m[
3],
0x6d703ef3,
11); cr = rotl(cr,
10)
20617 er = fn3(er, ar, br, cr, dr, m[
7],
0x6d703ef3,
8); br = rotl(br,
10)
20618 dr = fn3(dr, er, ar, br, cr, m[
14],
0x6d703ef3,
6); ar = rotl(ar,
10)
20619 cr = fn3(cr, dr, er, ar, br, m[
6],
0x6d703ef3,
6); er = rotl(er,
10)
20620 br = fn3(br, cr, dr, er, ar, m[
9],
0x6d703ef3,
14); dr = rotl(dr,
10)
20621 ar = fn3(ar, br, cr, dr, er, m[
11],
0x6d703ef3,
12); cr = rotl(cr,
10)
20622 er = fn3(er, ar, br, cr, dr, m[
8],
0x6d703ef3,
13); br = rotl(br,
10)
20623 dr = fn3(dr, er, ar, br, cr, m[
12],
0x6d703ef3,
5); ar = rotl(ar,
10)
20624 cr = fn3(cr, dr, er, ar, br, m[
2],
0x6d703ef3,
14); er = rotl(er,
10)
20625 br = fn3(br, cr, dr, er, ar, m[
10],
0x6d703ef3,
13); dr = rotl(dr,
10)
20626 ar = fn3(ar, br, cr, dr, er, m[
0],
0x6d703ef3,
13); cr = rotl(cr,
10)
20627 er = fn3(er, ar, br, cr, dr, m[
4],
0x6d703ef3,
7); br = rotl(br,
10)
20628 dr = fn3(dr, er, ar, br, cr, m[
13],
0x6d703ef3,
5); ar = rotl(ar,
10)
20630 // M'j =
8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14
20632 // S'j =
15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8
20633 cr = fn2(cr, dr, er, ar, br, m[
8],
0x7a6d76e9,
15); er = rotl(er,
10)
20634 br = fn2(br, cr, dr, er, ar, m[
6],
0x7a6d76e9,
5); dr = rotl(dr,
10)
20635 ar = fn2(ar, br, cr, dr, er, m[
4],
0x7a6d76e9,
8); cr = rotl(cr,
10)
20636 er = fn2(er, ar, br, cr, dr, m[
1],
0x7a6d76e9,
11); br = rotl(br,
10)
20637 dr = fn2(dr, er, ar, br, cr, m[
3],
0x7a6d76e9,
14); ar = rotl(ar,
10)
20638 cr = fn2(cr, dr, er, ar, br, m[
11],
0x7a6d76e9,
14); er = rotl(er,
10)
20639 br = fn2(br, cr, dr, er, ar, m[
15],
0x7a6d76e9,
6); dr = rotl(dr,
10)
20640 ar = fn2(ar, br, cr, dr, er, m[
0],
0x7a6d76e9,
14); cr = rotl(cr,
10)
20641 er = fn2(er, ar, br, cr, dr, m[
5],
0x7a6d76e9,
6); br = rotl(br,
10)
20642 dr = fn2(dr, er, ar, br, cr, m[
12],
0x7a6d76e9,
9); ar = rotl(ar,
10)
20643 cr = fn2(cr, dr, er, ar, br, m[
2],
0x7a6d76e9,
12); er = rotl(er,
10)
20644 br = fn2(br, cr, dr, er, ar, m[
13],
0x7a6d76e9,
9); dr = rotl(dr,
10)
20645 ar = fn2(ar, br, cr, dr, er, m[
9],
0x7a6d76e9,
12); cr = rotl(cr,
10)
20646 er = fn2(er, ar, br, cr, dr, m[
7],
0x7a6d76e9,
5); br = rotl(br,
10)
20647 dr = fn2(dr, er, ar, br, cr, m[
10],
0x7a6d76e9,
15); ar = rotl(ar,
10)
20648 cr = fn2(cr, dr, er, ar, br, m[
14],
0x7a6d76e9,
8); er = rotl(er,
10)
20650 // M'j =
12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
20652 // S'j =
8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
20653 br = fn1(br, cr, dr, er, ar, m[
12],
0x00000000,
8); dr = rotl(dr,
10)
20654 ar = fn1(ar, br, cr, dr, er, m[
15],
0x00000000,
5); cr = rotl(cr,
10)
20655 er = fn1(er, ar, br, cr, dr, m[
10],
0x00000000,
12); br = rotl(br,
10)
20656 dr = fn1(dr, er, ar, br, cr, m[
4],
0x00000000,
9); ar = rotl(ar,
10)
20657 cr = fn1(cr, dr, er, ar, br, m[
1],
0x00000000,
12); er = rotl(er,
10)
20658 br = fn1(br, cr, dr, er, ar, m[
5],
0x00000000,
5); dr = rotl(dr,
10)
20659 ar = fn1(ar, br, cr, dr, er, m[
8],
0x00000000,
14); cr = rotl(cr,
10)
20660 er = fn1(er, ar, br, cr, dr, m[
7],
0x00000000,
6); br = rotl(br,
10)
20661 dr = fn1(dr, er, ar, br, cr, m[
6],
0x00000000,
8); ar = rotl(ar,
10)
20662 cr = fn1(cr, dr, er, ar, br, m[
2],
0x00000000,
13); er = rotl(er,
10)
20663 br = fn1(br, cr, dr, er, ar, m[
13],
0x00000000,
6); dr = rotl(dr,
10)
20664 ar = fn1(ar, br, cr, dr, er, m[
14],
0x00000000,
5); cr = rotl(cr,
10)
20665 er = fn1(er, ar, br, cr, dr, m[
0],
0x00000000,
15); br = rotl(br,
10)
20666 dr = fn1(dr, er, ar, br, cr, m[
3],
0x00000000,
13); ar = rotl(ar,
10)
20667 cr = fn1(cr, dr, er, ar, br, m[
9],
0x00000000,
11); er = rotl(er,
10)
20668 br = fn1(br, cr, dr, er, ar, m[
11],
0x00000000,
11); dr = rotl(dr,
10)
20671 var t = (this._b + cl + dr) |
0
20672 this._b = (this._c + dl + er) |
0
20673 this._c = (this._d + el + ar) |
0
20674 this._d = (this._e + al + br) |
0
20675 this._e = (this._a + bl + cr) |
0
20679 RIPEMD160.prototype._digest = function () {
20680 // create padding and handle blocks
20681 this._block[this._blockOffset++] =
0x80
20682 if (this._blockOffset
> 56) {
20683 this._block.fill(
0, this._blockOffset,
64)
20685 this._blockOffset =
0
20688 this._block.fill(
0, this._blockOffset,
56)
20689 this._block.writeUInt32LE(this._length[
0],
56)
20690 this._block.writeUInt32LE(this._length[
1],
60)
20694 var buffer = new Buffer(
20)
20695 buffer.writeInt32LE(this._a,
0)
20696 buffer.writeInt32LE(this._b,
4)
20697 buffer.writeInt32LE(this._c,
8)
20698 buffer.writeInt32LE(this._d,
12)
20699 buffer.writeInt32LE(this._e,
16)
20703 function rotl (x, n) {
20704 return (x << n) | (x
>>> (
32 - n))
20707 function fn1 (a, b, c, d, e, m, k, s) {
20708 return (rotl((a + (b ^ c ^ d) + m + k) |
0, s) + e) |
0
20711 function fn2 (a, b, c, d, e, m, k, s) {
20712 return (rotl((a + ((b & c) | ((~b) & d)) + m + k) |
0, s) + e) |
0
20715 function fn3 (a, b, c, d, e, m, k, s) {
20716 return (rotl((a + ((b | (~c)) ^ d) + m + k) |
0, s) + e) |
0
20719 function fn4 (a, b, c, d, e, m, k, s) {
20720 return (rotl((a + ((b & d) | (c & (~d))) + m + k) |
0, s) + e) |
0
20723 function fn5 (a, b, c, d, e, m, k, s) {
20724 return (rotl((a + (b ^ (c | (~d))) + m + k) |
0, s) + e) |
0
20727 module.exports = RIPEMD160
20729 }).call(this,require("buffer").Buffer)
20730 },{"buffer":
4,"hash-base":
92,"inherits":
93}],
98:[function(require,module,exports){
20731 arguments[
4][
26][
0].apply(exports,arguments)
20732 },{"buffer":
4,"dup":
26}],
99:[function(require,module,exports){
20733 (function (Buffer){
20734 // prototype class for hash functions
20735 function Hash (blockSize, finalSize) {
20736 this._block = new Buffer(blockSize)
20737 this._finalSize = finalSize
20738 this._blockSize = blockSize
20743 Hash.prototype.update = function (data, enc) {
20744 if (typeof data === 'string') {
20745 enc = enc || 'utf8'
20746 data = new Buffer(data, enc)
20749 var l = this._len += data.length
20750 var s = this._s ||
0
20752 var buffer = this._block
20755 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
20758 for (var i =
0; i < ch; i++) {
20759 buffer[(s % this._blockSize) + i] = data[i + f]
20765 if ((s % this._blockSize) ===
0) {
20766 this._update(buffer)
20774 Hash.prototype.digest = function (enc) {
20775 // Suppose the length of the message M, in bits, is l
20776 var l = this._len *
8
20778 // Append the bit
1 to the end of the message
20779 this._block[this._len % this._blockSize] =
0x80
20781 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
20782 this._block.fill(
0, this._len % this._blockSize +
1)
20784 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
20785 this._update(this._block)
20786 this._block.fill(
0)
20789 // to this append the block which is equal to the number l written in binary
20790 // TODO: handle case where l is
> Math.pow(
2,
29)
20791 this._block.writeInt32BE(l, this._blockSize -
4)
20793 var hash = this._update(this._block) || this._hash()
20795 return enc ? hash.toString(enc) : hash
20798 Hash.prototype._update = function () {
20799 throw new Error('_update must be implemented by subclass')
20802 module.exports = Hash
20804 }).call(this,require("buffer").Buffer)
20805 },{"buffer":
4}],
100:[function(require,module,exports){
20806 var exports = module.exports = function SHA (algorithm) {
20807 algorithm = algorithm.toLowerCase()
20809 var Algorithm = exports[algorithm]
20810 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
20812 return new Algorithm()
20815 exports.sha = require('./sha')
20816 exports.sha1 = require('./sha1')
20817 exports.sha224 = require('./sha224')
20818 exports.sha256 = require('./sha256')
20819 exports.sha384 = require('./sha384')
20820 exports.sha512 = require('./sha512')
20822 },{"./sha":
101,"./sha1":
102,"./sha224":
103,"./sha256":
104,"./sha384":
105,"./sha512":
106}],
101:[function(require,module,exports){
20823 (function (Buffer){
20825 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
20826 * in FIPS PUB
180-
1
20827 * This source code is derived from sha1.js of the same repository.
20828 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
20829 * operation was added.
20832 var inherits = require('inherits')
20833 var Hash = require('./hash')
20836 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20839 var W = new Array(
80)
20845 Hash.call(this,
64,
56)
20848 inherits(Sha, Hash)
20850 Sha.prototype.init = function () {
20851 this._a =
0x67452301
20852 this._b =
0xefcdab89
20853 this._c =
0x98badcfe
20854 this._d =
0x10325476
20855 this._e =
0xc3d2e1f0
20860 function rotl5 (num) {
20861 return (num <<
5) | (num
>>> 27)
20864 function rotl30 (num) {
20865 return (num <<
30) | (num
>>> 2)
20868 function ft (s, b, c, d) {
20869 if (s ===
0) return (b & c) | ((~b) & d)
20870 if (s ===
2) return (b & c) | (b & d) | (c & d)
20874 Sha.prototype._update = function (M) {
20877 var a = this._a |
0
20878 var b = this._b |
0
20879 var c = this._c |
0
20880 var d = this._d |
0
20881 var e = this._e |
0
20883 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20884 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
20886 for (var j =
0; j <
80; ++j) {
20888 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20897 this._a = (a + this._a) |
0
20898 this._b = (b + this._b) |
0
20899 this._c = (c + this._c) |
0
20900 this._d = (d + this._d) |
0
20901 this._e = (e + this._e) |
0
20904 Sha.prototype._hash = function () {
20905 var H = new Buffer(
20)
20907 H.writeInt32BE(this._a |
0,
0)
20908 H.writeInt32BE(this._b |
0,
4)
20909 H.writeInt32BE(this._c |
0,
8)
20910 H.writeInt32BE(this._d |
0,
12)
20911 H.writeInt32BE(this._e |
0,
16)
20916 module.exports = Sha
20918 }).call(this,require(
"buffer").Buffer)
20919 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
102:[function(require,module,exports){
20920 (function (Buffer){
20922 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
20923 * in FIPS PUB
180-
1
20924 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
20925 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
20926 * Distributed under the BSD License
20927 * See http://pajhome.org.uk/crypt/md5 for details.
20930 var inherits = require('inherits')
20931 var Hash = require('./hash')
20934 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20937 var W = new Array(
80)
20943 Hash.call(this,
64,
56)
20946 inherits(Sha1, Hash)
20948 Sha1.prototype.init = function () {
20949 this._a =
0x67452301
20950 this._b =
0xefcdab89
20951 this._c =
0x98badcfe
20952 this._d =
0x10325476
20953 this._e =
0xc3d2e1f0
20958 function rotl1 (num) {
20959 return (num <<
1) | (num
>>> 31)
20962 function rotl5 (num) {
20963 return (num <<
5) | (num
>>> 27)
20966 function rotl30 (num) {
20967 return (num <<
30) | (num
>>> 2)
20970 function ft (s, b, c, d) {
20971 if (s ===
0) return (b & c) | ((~b) & d)
20972 if (s ===
2) return (b & c) | (b & d) | (c & d)
20976 Sha1.prototype._update = function (M) {
20979 var a = this._a |
0
20980 var b = this._b |
0
20981 var c = this._c |
0
20982 var d = this._d |
0
20983 var e = this._e |
0
20985 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20986 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
20988 for (var j =
0; j <
80; ++j) {
20990 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20999 this._a = (a + this._a) |
0
21000 this._b = (b + this._b) |
0
21001 this._c = (c + this._c) |
0
21002 this._d = (d + this._d) |
0
21003 this._e = (e + this._e) |
0
21006 Sha1.prototype._hash = function () {
21007 var H = new Buffer(
20)
21009 H.writeInt32BE(this._a |
0,
0)
21010 H.writeInt32BE(this._b |
0,
4)
21011 H.writeInt32BE(this._c |
0,
8)
21012 H.writeInt32BE(this._d |
0,
12)
21013 H.writeInt32BE(this._e |
0,
16)
21018 module.exports = Sha1
21020 }).call(this,require(
"buffer").Buffer)
21021 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
103:[function(require,module,exports){
21022 (function (Buffer){
21024 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21026 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21027 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21031 var inherits = require('inherits')
21032 var Sha256 = require('./sha256')
21033 var Hash = require('./hash')
21035 var W = new Array(
64)
21037 function Sha224 () {
21040 this._w = W // new Array(
64)
21042 Hash.call(this,
64,
56)
21045 inherits(Sha224, Sha256)
21047 Sha224.prototype.init = function () {
21048 this._a =
0xc1059ed8
21049 this._b =
0x367cd507
21050 this._c =
0x3070dd17
21051 this._d =
0xf70e5939
21052 this._e =
0xffc00b31
21053 this._f =
0x68581511
21054 this._g =
0x64f98fa7
21055 this._h =
0xbefa4fa4
21060 Sha224.prototype._hash = function () {
21061 var H = new Buffer(
28)
21063 H.writeInt32BE(this._a,
0)
21064 H.writeInt32BE(this._b,
4)
21065 H.writeInt32BE(this._c,
8)
21066 H.writeInt32BE(this._d,
12)
21067 H.writeInt32BE(this._e,
16)
21068 H.writeInt32BE(this._f,
20)
21069 H.writeInt32BE(this._g,
24)
21074 module.exports = Sha224
21076 }).call(this,require(
"buffer").Buffer)
21077 },{
"./hash":
99,
"./sha256":
104,
"buffer":
4,
"inherits":
93}],
104:[function(require,module,exports){
21078 (function (Buffer){
21080 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21082 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21083 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21087 var inherits = require('inherits')
21088 var Hash = require('./hash')
21091 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
21092 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
21093 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
21094 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
21095 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
21096 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
21097 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
21098 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
21099 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
21100 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
21101 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
21102 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
21103 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
21104 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
21105 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
21106 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
21109 var W = new Array(
64)
21111 function Sha256 () {
21114 this._w = W // new Array(
64)
21116 Hash.call(this,
64,
56)
21119 inherits(Sha256, Hash)
21121 Sha256.prototype.init = function () {
21122 this._a =
0x6a09e667
21123 this._b =
0xbb67ae85
21124 this._c =
0x3c6ef372
21125 this._d =
0xa54ff53a
21126 this._e =
0x510e527f
21127 this._f =
0x9b05688c
21128 this._g =
0x1f83d9ab
21129 this._h =
0x5be0cd19
21134 function ch (x, y, z) {
21135 return z ^ (x & (y ^ z))
21138 function maj (x, y, z) {
21139 return (x & y) | (z & (x | y))
21142 function sigma0 (x) {
21143 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
21146 function sigma1 (x) {
21147 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
21150 function gamma0 (x) {
21151 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
21154 function gamma1 (x) {
21155 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
21158 Sha256.prototype._update = function (M) {
21161 var a = this._a |
0
21162 var b = this._b |
0
21163 var c = this._c |
0
21164 var d = this._d |
0
21165 var e = this._e |
0
21166 var f = this._f |
0
21167 var g = this._g |
0
21168 var h = this._h |
0
21170 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
21171 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
21173 for (var j =
0; j <
64; ++j) {
21174 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
21175 var T2 = (sigma0(a) + maj(a, b, c)) |
0
21187 this._a = (a + this._a) |
0
21188 this._b = (b + this._b) |
0
21189 this._c = (c + this._c) |
0
21190 this._d = (d + this._d) |
0
21191 this._e = (e + this._e) |
0
21192 this._f = (f + this._f) |
0
21193 this._g = (g + this._g) |
0
21194 this._h = (h + this._h) |
0
21197 Sha256.prototype._hash = function () {
21198 var H = new Buffer(
32)
21200 H.writeInt32BE(this._a,
0)
21201 H.writeInt32BE(this._b,
4)
21202 H.writeInt32BE(this._c,
8)
21203 H.writeInt32BE(this._d,
12)
21204 H.writeInt32BE(this._e,
16)
21205 H.writeInt32BE(this._f,
20)
21206 H.writeInt32BE(this._g,
24)
21207 H.writeInt32BE(this._h,
28)
21212 module.exports = Sha256
21214 }).call(this,require(
"buffer").Buffer)
21215 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
105:[function(require,module,exports){
21216 (function (Buffer){
21217 var inherits = require('inherits')
21218 var SHA512 = require('./sha512')
21219 var Hash = require('./hash')
21221 var W = new Array(
160)
21223 function Sha384 () {
21227 Hash.call(this,
128,
112)
21230 inherits(Sha384, SHA512)
21232 Sha384.prototype.init = function () {
21233 this._ah =
0xcbbb9d5d
21234 this._bh =
0x629a292a
21235 this._ch =
0x9159015a
21236 this._dh =
0x152fecd8
21237 this._eh =
0x67332667
21238 this._fh =
0x8eb44a87
21239 this._gh =
0xdb0c2e0d
21240 this._hh =
0x47b5481d
21242 this._al =
0xc1059ed8
21243 this._bl =
0x367cd507
21244 this._cl =
0x3070dd17
21245 this._dl =
0xf70e5939
21246 this._el =
0xffc00b31
21247 this._fl =
0x68581511
21248 this._gl =
0x64f98fa7
21249 this._hl =
0xbefa4fa4
21254 Sha384.prototype._hash = function () {
21255 var H = new Buffer(
48)
21257 function writeInt64BE (h, l, offset) {
21258 H.writeInt32BE(h, offset)
21259 H.writeInt32BE(l, offset +
4)
21262 writeInt64BE(this._ah, this._al,
0)
21263 writeInt64BE(this._bh, this._bl,
8)
21264 writeInt64BE(this._ch, this._cl,
16)
21265 writeInt64BE(this._dh, this._dl,
24)
21266 writeInt64BE(this._eh, this._el,
32)
21267 writeInt64BE(this._fh, this._fl,
40)
21272 module.exports = Sha384
21274 }).call(this,require(
"buffer").Buffer)
21275 },{
"./hash":
99,
"./sha512":
106,
"buffer":
4,
"inherits":
93}],
106:[function(require,module,exports){
21276 (function (Buffer){
21277 var inherits = require('inherits')
21278 var Hash = require('./hash')
21281 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
21282 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
21283 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
21284 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
21285 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
21286 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
21287 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
21288 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
21289 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
21290 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
21291 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
21292 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
21293 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
21294 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
21295 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
21296 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
21297 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
21298 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
21299 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
21300 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
21301 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
21302 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
21303 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
21304 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
21305 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
21306 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
21307 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
21308 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
21309 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
21310 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
21311 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
21312 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
21313 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
21314 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
21315 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
21316 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
21317 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
21318 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
21319 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
21320 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
21323 var W = new Array(
160)
21325 function Sha512 () {
21329 Hash.call(this,
128,
112)
21332 inherits(Sha512, Hash)
21334 Sha512.prototype.init = function () {
21335 this._ah =
0x6a09e667
21336 this._bh =
0xbb67ae85
21337 this._ch =
0x3c6ef372
21338 this._dh =
0xa54ff53a
21339 this._eh =
0x510e527f
21340 this._fh =
0x9b05688c
21341 this._gh =
0x1f83d9ab
21342 this._hh =
0x5be0cd19
21344 this._al =
0xf3bcc908
21345 this._bl =
0x84caa73b
21346 this._cl =
0xfe94f82b
21347 this._dl =
0x5f1d36f1
21348 this._el =
0xade682d1
21349 this._fl =
0x2b3e6c1f
21350 this._gl =
0xfb41bd6b
21351 this._hl =
0x137e2179
21356 function Ch (x, y, z) {
21357 return z ^ (x & (y ^ z))
21360 function maj (x, y, z) {
21361 return (x & y) | (z & (x | y))
21364 function sigma0 (x, xl) {
21365 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
21368 function sigma1 (x, xl) {
21369 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
21372 function Gamma0 (x, xl) {
21373 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
21376 function Gamma0l (x, xl) {
21377 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
21380 function Gamma1 (x, xl) {
21381 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
21384 function Gamma1l (x, xl) {
21385 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
21388 function getCarry (a, b) {
21389 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
21392 Sha512.prototype._update = function (M) {
21395 var ah = this._ah |
0
21396 var bh = this._bh |
0
21397 var ch = this._ch |
0
21398 var dh = this._dh |
0
21399 var eh = this._eh |
0
21400 var fh = this._fh |
0
21401 var gh = this._gh |
0
21402 var hh = this._hh |
0
21404 var al = this._al |
0
21405 var bl = this._bl |
0
21406 var cl = this._cl |
0
21407 var dl = this._dl |
0
21408 var el = this._el |
0
21409 var fl = this._fl |
0
21410 var gl = this._gl |
0
21411 var hl = this._hl |
0
21413 for (var i =
0; i <
32; i +=
2) {
21414 W[i] = M.readInt32BE(i *
4)
21415 W[i +
1] = M.readInt32BE(i *
4 +
4)
21417 for (; i <
160; i +=
2) {
21418 var xh = W[i -
15 *
2]
21419 var xl = W[i -
15 *
2 +
1]
21420 var gamma0 = Gamma0(xh, xl)
21421 var gamma0l = Gamma0l(xl, xh)
21424 xl = W[i -
2 *
2 +
1]
21425 var gamma1 = Gamma1(xh, xl)
21426 var gamma1l = Gamma1l(xl, xh)
21428 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
21429 var Wi7h = W[i -
7 *
2]
21430 var Wi7l = W[i -
7 *
2 +
1]
21432 var Wi16h = W[i -
16 *
2]
21433 var Wi16l = W[i -
16 *
2 +
1]
21435 var Wil = (gamma0l + Wi7l) |
0
21436 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
21437 Wil = (Wil + gamma1l) |
0
21438 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
21439 Wil = (Wil + Wi16l) |
0
21440 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
21446 for (var j =
0; j <
160; j +=
2) {
21450 var majh = maj(ah, bh, ch)
21451 var majl = maj(al, bl, cl)
21453 var sigma0h = sigma0(ah, al)
21454 var sigma0l = sigma0(al, ah)
21455 var sigma1h = sigma1(eh, el)
21456 var sigma1l = sigma1(el, eh)
21458 // t1 = h + sigma1 + ch + K[j] + W[j]
21462 var chh = Ch(eh, fh, gh)
21463 var chl = Ch(el, fl, gl)
21465 var t1l = (hl + sigma1l) |
0
21466 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
21467 t1l = (t1l + chl) |
0
21468 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
21469 t1l = (t1l + Kil) |
0
21470 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
21471 t1l = (t1l + Wil) |
0
21472 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
21474 // t2 = sigma0 + maj
21475 var t2l = (sigma0l + majl) |
0
21476 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
21484 el = (dl + t1l) |
0
21485 eh = (dh + t1h + getCarry(el, dl)) |
0
21492 al = (t1l + t2l) |
0
21493 ah = (t1h + t2h + getCarry(al, t1l)) |
0
21496 this._al = (this._al + al) |
0
21497 this._bl = (this._bl + bl) |
0
21498 this._cl = (this._cl + cl) |
0
21499 this._dl = (this._dl + dl) |
0
21500 this._el = (this._el + el) |
0
21501 this._fl = (this._fl + fl) |
0
21502 this._gl = (this._gl + gl) |
0
21503 this._hl = (this._hl + hl) |
0
21505 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
21506 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
21507 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
21508 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
21509 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
21510 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
21511 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
21512 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
21515 Sha512.prototype._hash = function () {
21516 var H = new Buffer(
64)
21518 function writeInt64BE (h, l, offset) {
21519 H.writeInt32BE(h, offset)
21520 H.writeInt32BE(l, offset +
4)
21523 writeInt64BE(this._ah, this._al,
0)
21524 writeInt64BE(this._bh, this._bl,
8)
21525 writeInt64BE(this._ch, this._cl,
16)
21526 writeInt64BE(this._dh, this._dl,
24)
21527 writeInt64BE(this._eh, this._el,
32)
21528 writeInt64BE(this._fh, this._fl,
40)
21529 writeInt64BE(this._gh, this._gl,
48)
21530 writeInt64BE(this._hh, this._hl,
56)
21535 module.exports = Sha512
21537 }).call(this,require(
"buffer").Buffer)
21538 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
107:[function(require,module,exports){
21539 var inherits = require('inherits')
21540 var native = require('./native')
21542 function TfTypeError (type, value, valueTypeName) {
21543 this.__error = Error.call(this)
21545 this.__value = value
21546 this.__valueTypeName = valueTypeName
21549 Object.defineProperty(this, 'message', {
21552 if (message) return message
21554 valueTypeName = valueTypeName || getValueTypeName(value)
21555 message = tfErrorString(type, value, valueTypeName)
21562 function TfPropertyTypeError (type, property, label, value, error, valueTypeName) {
21563 this.__error = error || Error.call(this)
21564 this.__label = label
21565 this.__property = property
21567 this.__value = value
21568 this.__valueTypeName = valueTypeName
21571 Object.defineProperty(this, 'message', {
21574 if (message) return message
21576 valueTypeName = valueTypeName || getValueTypeName(value)
21577 message = tfPropertyErrorString(type, label, property, value, valueTypeName)
21579 message = 'Unexpected property
"' + property + '"'
21587 // inherit from Error, assign stack
21588 [TfTypeError, TfPropertyTypeError].forEach(function (tfErrorType) {
21589 inherits(tfErrorType, Error)
21590 Object.defineProperty(tfErrorType, 'stack', {
21591 get: function () { return this.__error.stack }
21595 function tfCustomError (expected, actual) {
21596 return new TfTypeError(expected, {}, actual)
21599 function tfSubError (e, property, label) {
21601 if (e instanceof TfPropertyTypeError) {
21602 property = property + '.' + e.__property
21605 return new TfPropertyTypeError(
21606 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21611 if (e instanceof TfTypeError) {
21612 return new TfPropertyTypeError(
21613 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21620 function getTypeName (fn) {
21621 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1]
21624 function getValueTypeName (value) {
21625 return native.Nil(value) ? '' : getTypeName(value.constructor)
21628 function getValue (value) {
21629 if (native.Function(value)) return ''
21630 if (native.String(value)) return JSON.stringify(value)
21631 if (value && native.Object(value)) return ''
21635 function tfJSON (type) {
21636 if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)
21637 if (native.Array(type)) return 'Array'
21638 if (type && native.Object(type)) return 'Object'
21640 return type !== undefined ? type : ''
21643 function tfErrorString (type, value, valueTypeName) {
21644 var valueJson = getValue(value)
21646 return 'Expected ' + tfJSON(type) + ', got' +
21647 (valueTypeName !== '' ? ' ' + valueTypeName : '') +
21648 (valueJson !== '' ? ' ' + valueJson : '')
21651 function tfPropertyErrorString (type, label, name, value, valueTypeName) {
21652 var description = '
" of type '
21653 if (label === 'key') description = '" with key type '
21655 return tfErrorString('property
"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)
21659 TfTypeError: TfTypeError,
21660 TfPropertyTypeError: TfPropertyTypeError,
21661 tfCustomError: tfCustomError,
21662 tfSubError: tfSubError,
21664 getValueTypeName: getValueTypeName
21667 },{"./native
":110,"inherits
":93}],108:[function(require,module,exports){
21668 (function (Buffer){
21669 var NATIVE = require('./native')
21670 var ERRORS = require('./errors')
21672 function _Buffer (value) {
21673 return Buffer.isBuffer(value)
21676 function Hex (value) {
21677 return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)
21680 function _LengthN (type, length) {
21681 var name = type.toJSON()
21683 function Length (value) {
21684 if (!type(value)) return false
21685 if (value.length === length) return true
21687 throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')
21689 Length.toJSON = function () { return name }
21694 var _ArrayN = _LengthN.bind(null, NATIVE.Array)
21695 var _BufferN = _LengthN.bind(null, _Buffer)
21696 var _HexN = _LengthN.bind(null, Hex)
21698 var UINT53_MAX = Math.pow(2, 53) - 1
21700 function Finite (value) {
21701 return typeof value === 'number' && isFinite(value)
21703 function Int8 (value) { return ((value << 24) >> 24) === value }
21704 function Int16 (value) { return ((value << 16) >> 16) === value }
21705 function Int32 (value) { return (value | 0) === value }
21706 function UInt8 (value) { return (value & 0xff) === value }
21707 function UInt16 (value) { return (value & 0xffff) === value }
21708 function UInt32 (value) { return (value >>> 0) === value }
21709 function UInt53 (value) {
21710 return typeof value === 'number' &&
21712 value <= UINT53_MAX &&
21713 Math.floor(value) === value
21732 for (var typeName in types) {
21733 types[typeName].toJSON = function (t) {
21735 }.bind(null, typeName)
21738 module.exports = types
21740 }).call(this,{"isBuffer
":require("../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
")})
21741 },{"../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
":9,"./errors
":107,"./native
":110}],109:[function(require,module,exports){
21742 var ERRORS = require('./errors')
21743 var NATIVE = require('./native')
21746 var tfJSON = ERRORS.tfJSON
21747 var TfTypeError = ERRORS.TfTypeError
21748 var TfPropertyTypeError = ERRORS.TfPropertyTypeError
21749 var tfSubError = ERRORS.tfSubError
21750 var getValueTypeName = ERRORS.getValueTypeName
21753 arrayOf: function arrayOf (type) {
21754 type = compile(type)
21756 function _arrayOf (array, strict) {
21757 if (!NATIVE.Array(array)) return false
21759 return array.every(function (value, i) {
21761 return typeforce(type, value, strict)
21763 throw tfSubError(e, i)
21767 _arrayOf.toJSON = function () { return '[' + tfJSON(type) + ']' }
21772 maybe: function maybe (type) {
21773 type = compile(type)
21775 function _maybe (value, strict) {
21776 return NATIVE.Nil(value) || type(value, strict, maybe)
21778 _maybe.toJSON = function () { return '?' + tfJSON(type) }
21783 map: function map (propertyType, propertyKeyType) {
21784 propertyType = compile(propertyType)
21785 if (propertyKeyType) propertyKeyType = compile(propertyKeyType)
21787 function _map (value, strict) {
21788 if (!NATIVE.Object(value, strict)) return false
21789 if (NATIVE.Nil(value, strict)) return false
21791 for (var propertyName in value) {
21793 if (propertyKeyType) {
21794 typeforce(propertyKeyType, propertyName, strict)
21797 throw tfSubError(e, propertyName, 'key')
21801 var propertyValue = value[propertyName]
21802 typeforce(propertyType, propertyValue, strict)
21804 throw tfSubError(e, propertyName)
21811 if (propertyKeyType) {
21812 _map.toJSON = function () {
21813 return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'
21816 _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }
21822 object: function object (uncompiled) {
21825 for (var typePropertyName in uncompiled) {
21826 type[typePropertyName] = compile(uncompiled[typePropertyName])
21829 function _object (value, strict) {
21830 if (!NATIVE.Object(value)) return false
21831 if (NATIVE.Nil(value)) return false
21836 for (propertyName in type) {
21837 var propertyType = type[propertyName]
21838 var propertyValue = value[propertyName]
21840 typeforce(propertyType, propertyValue, strict)
21843 throw tfSubError(e, propertyName)
21847 for (propertyName in value) {
21848 if (type[propertyName]) continue
21850 throw new TfPropertyTypeError(undefined, propertyName)
21856 _object.toJSON = function () { return tfJSON(type) }
21861 oneOf: function oneOf () {
21862 var types = [].slice.call(arguments).map(compile)
21864 function _oneOf (value, strict) {
21865 return types.some(function (type) {
21867 return typeforce(type, value, strict)
21873 _oneOf.toJSON = function () { return types.map(tfJSON).join('|') }
21878 quacksLike: function quacksLike (type) {
21879 function _quacksLike (value) {
21880 return type === getValueTypeName(value)
21882 _quacksLike.toJSON = function () { return type }
21887 tuple: function tuple () {
21888 var types = [].slice.call(arguments).map(compile)
21890 function _tuple (values, strict) {
21891 return types.every(function (type, i) {
21893 return typeforce(type, values[i], strict)
21895 throw tfSubError(e, i)
21897 }) && (!strict || values.length === arguments.length)
21899 _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }
21904 value: function value (expected) {
21905 function _value (actual) {
21906 return actual === expected
21908 _value.toJSON = function () { return expected }
21914 function compile (type) {
21915 if (NATIVE.String(type)) {
21916 if (type[0] === '?') return TYPES.maybe(compile(type.slice(1)))
21918 return NATIVE[type] || TYPES.quacksLike(type)
21919 } else if (type && NATIVE.Object(type)) {
21920 if (NATIVE.Array(type)) return TYPES.arrayOf(compile(type[0]))
21922 return TYPES.object(type)
21923 } else if (NATIVE.Function(type)) {
21927 return TYPES.value(type)
21930 function typeforce (type, value, strict, surrogate) {
21931 if (NATIVE.Function(type)) {
21932 if (type(value, strict)) return true
21934 throw new TfTypeError(surrogate || type, value)
21938 return typeforce(compile(type), value, strict)
21941 // assign types to typeforce function
21942 for (var typeName in NATIVE) {
21943 typeforce[typeName] = NATIVE[typeName]
21946 for (typeName in TYPES) {
21947 typeforce[typeName] = TYPES[typeName]
21950 var EXTRA = require('./extra')
21951 for (typeName in EXTRA) {
21952 typeforce[typeName] = EXTRA[typeName]
21956 function __async (type, value, strict, callback) {
21957 // default to falsy strict if using shorthand overload
21958 if (typeof strict === 'function') return __async(type, value, false, strict)
21961 typeforce(type, value, strict)
21969 typeforce.async = __async
21970 typeforce.compile = compile
21971 typeforce.TfTypeError = TfTypeError
21972 typeforce.TfPropertyTypeError = TfPropertyTypeError
21974 module.exports = typeforce
21976 },{"./errors
":107,"./extra
":108,"./native
":110}],110:[function(require,module,exports){
21978 Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },
21979 Boolean: function (value) { return typeof value === 'boolean' },
21980 Function: function (value) { return typeof value === 'function' },
21981 Nil: function (value) { return value === undefined || value === null },
21982 Number: function (value) { return typeof value === 'number' },
21983 Object: function (value) { return typeof value === 'object' },
21984 String: function (value) { return typeof value === 'string' },
21985 '': function () { return true }
21989 types.Null = types.Nil
21991 for (var typeName in types) {
21992 types[typeName].toJSON = function (t) {
21994 }.bind(null, typeName)
21997 module.exports = types
21999 },{}],111:[function(require,module,exports){
22000 (function (Buffer){
22003 // Number.MAX_SAFE_INTEGER
22004 var MAX_SAFE_INTEGER = 9007199254740991
22006 function checkUInt53 (n) {
22007 if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')
22010 function encode (number, buffer, offset) {
22011 checkUInt53(number)
22013 if (!buffer) buffer = new Buffer(encodingLength(number))
22014 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22015 if (!offset) offset = 0
22018 if (number < 0xfd) {
22019 buffer.writeUInt8(number, offset)
22023 } else if (number <= 0xffff) {
22024 buffer.writeUInt8(0xfd, offset)
22025 buffer.writeUInt16LE(number, offset + 1)
22029 } else if (number <= 0xffffffff) {
22030 buffer.writeUInt8(0xfe, offset)
22031 buffer.writeUInt32LE(number, offset + 1)
22036 buffer.writeUInt8(0xff, offset)
22037 buffer.writeUInt32LE(number >>> 0, offset + 1)
22038 buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)
22045 function decode (buffer, offset) {
22046 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22047 if (!offset) offset = 0
22049 var first = buffer.readUInt8(offset)
22052 if (first < 0xfd) {
22057 } else if (first === 0xfd) {
22059 return buffer.readUInt16LE(offset + 1)
22062 } else if (first === 0xfe) {
22064 return buffer.readUInt32LE(offset + 1)
22069 var lo = buffer.readUInt32LE(offset + 1)
22070 var hi = buffer.readUInt32LE(offset + 5)
22071 var number = hi * 0x0100000000 + lo
22072 checkUInt53(number)
22078 function encodingLength (number) {
22079 checkUInt53(number)
22083 : number <= 0xffff ? 3
22084 : number <= 0xffffffff ? 5
22089 module.exports = { encode: encode, decode: decode, encodingLength: encodingLength }
22091 }).call(this,require("buffer
").Buffer)
22092 },{"buffer
":4}],112:[function(require,module,exports){
22093 (function (Buffer){
22094 var bs58check = require('bs58check')
22096 function decodeRaw (buffer, version) {
22097 // check version only if defined
22098 if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')
22101 if (buffer.length === 33) {
22103 version: buffer[0],
22104 privateKey: buffer.slice(1, 33),
22110 if (buffer.length !== 34) throw new Error('Invalid WIF length')
22112 // invalid compression flag
22113 if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')
22116 version: buffer[0],
22117 privateKey: buffer.slice(1, 33),
22122 function encodeRaw (version, privateKey, compressed) {
22123 var result = new Buffer(compressed ? 34 : 33)
22125 result.writeUInt8(version, 0)
22126 privateKey.copy(result, 1)
22135 function decode (string, version) {
22136 return decodeRaw(bs58check.decode(string), version)
22139 function encode (version, privateKey, compressed) {
22140 if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))
22142 return bs58check.encode(
22145 version.privateKey,
22153 decodeRaw: decodeRaw,
22155 encodeRaw: encodeRaw
22158 }).call(this,require("buffer
").Buffer)
22159 },{"bs58check
":80,"buffer
":4}]},{},[33])(33)
22162 <script>bitcoinjs.bitcoin.networks.shadow = {
22163 messagePrefix: 'unused',
22165 public: 0xEE80286A,
22166 private: 0xEE8031E8
22173 bitcoinjs.bitcoin.networks.shadowtn = {
22174 messagePrefix: 'unused',
22176 public: 0x76C0FDFB,
22177 private: 0x76C1077A
22184 bitcoinjs.bitcoin.networks.clam = {
22185 messagePrefix: 'unused',
22187 public: 0xa8c26d64,
22188 private: 0xa8c17826
22191 scriptHash: 0x00, // TODO set this correctly
22195 bitcoinjs.bitcoin.networks.crown = {
22196 messagePrefix: 'unused',
22198 public: 0x0488b21e,
22199 private: 0x0488ade4
22206 bitcoinjs.bitcoin.networks.dash = {
22207 messagePrefix: 'unused',
22209 public: 0x0488b21e,
22210 private: 0x0488ade4
22217 bitcoinjs.bitcoin.networks.maza = {
22218 messagePrefix: 'unused',
22220 public: 0x0488b21e,
22221 private: 0x0488ade4
22228 bitcoinjs.bitcoin.networks.dashtn = {
22229 messagePrefix: 'unused',
22231 public: 0x043587cf,
22232 private: 0x04358394
22239 bitcoinjs.bitcoin.networks.game = {
22240 messagePrefix: 'unused',
22242 public: 0x0488b21e,
22243 private: 0x0488ade4
22250 bitcoinjs.bitcoin.networks.namecoin = {
22251 messagePrefix: 'unused',
22253 public: 0x0488b21e,
22254 private: 0x0488ade4
22257 scriptHash: 0x00, // TODO set this correctly
22261 bitcoinjs.bitcoin.networks.peercoin = {
22262 messagePrefix: 'unused',
22264 public: 0x0488b21e,
22265 private: 0x0488ade4
22268 scriptHash: 0x00, // TODO set this correctly
22272 bitcoinjs.bitcoin.networks.slimcoin = {
22273 messagePrefix: 'unused',
22275 public: 0xef6adf10,
22276 private: 0xef69ea80
22283 bitcoinjs.bitcoin.networks.slimcointn = {
22284 messagePrefix: 'unused',
22286 public: 0x043587CF,
22287 private: 0x04358394
22294 bitcoinjs.bitcoin.networks.dogecoin = {
22295 messagePrefix: '\x19Dogecoin Signed Message:\n',
22297 public: 0x02facafd,
22298 private: 0x02fac398
22305 bitcoinjs.bitcoin.networks.viacoin = {
22306 messagePrefix: '\x18Viacoin Signed Message:\n',
22308 public: 0x0488b21e,
22309 private: 0x0488ade4
22316 bitcoinjs.bitcoin.networks.viacointestnet = {
22317 messagePrefix: '\x18Viacoin Signed Message:\n',
22319 public: 0x043587cf,
22320 private: 0x04358394
22327 bitcoinjs.bitcoin.networks.gamerscoin = {
22328 messagePrefix: '\x19Gamerscoin Signed Message:\n',
22330 public: 0x019da462,
22331 private: 0x019d9cfe
22338 bitcoinjs.bitcoin.networks.jumbucks = {
22339 messagePrefix: '\x19Jumbucks Signed Message:\n',
22341 public: 0x037a689a,
22342 private: 0x037a6460
22349 bitcoinjs.bitcoin.networks.zetacoin = {
22350 messagePrefix: '\x18Zetacoin Signed Message:\n',
22352 public: 0x0488b21e,
22353 private: 0x0488ade4
22360 bitcoinjs.bitcoin.networks.myriadcoin = {
22361 messagePrefix: 'unused',
22363 public: 0x0488b21e,
22364 private: 0x0488ade4
22367 scriptHash: 0x00, // TODO set this correctly
22371 bitcoinjs.bitcoin.networks.pivx = {
22372 messagePrefix: 'unused',
22374 public: 0x022d2533,
22375 private: 0x0221312b
22382 bitcoinjs.bitcoin.networks.pivxtestnet = {
22383 messagePrefix: 'unused',
22385 public: 0x3a8061a0,
22386 private: 0x3a805837
22393 bitcoinjs.bitcoin.networks.fujicoin = {
22394 messagePrefix: '\x19FujiCoin Signed Message:\n',
22396 public: 0x0488b21e,
22397 private: 0x0488ade4
22404 <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){
22405 (function (global){
22408 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
22409 // original notice:
22412 * The buffer module from node.js, for the browser.
22414 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22417 function compare(a, b) {
22425 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
22426 if (a[i] !== b[i]) {
22441 function isBuffer(b) {
22442 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
22443 return global.Buffer.isBuffer(b);
22445 return !!(b != null && b._isBuffer);
22448 // based on node assert, original notice:
22450 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
22452 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
22454 // Originally from narwhal.js (http://narwhaljs.org)
22455 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
22457 // Permission is hereby granted, free of charge, to any person obtaining a copy
22458 // of this software and associated documentation files (the 'Software'), to
22459 // deal in the Software without restriction, including without limitation the
22460 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
22461 // sell copies of the Software, and to permit persons to whom the Software is
22462 // furnished to do so, subject to the following conditions:
22464 // The above copyright notice and this permission notice shall be included in
22465 // all copies or substantial portions of the Software.
22467 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22468 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22469 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22470 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
22471 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22472 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22474 var util = require('util/');
22475 var hasOwn = Object.prototype.hasOwnProperty;
22476 var pSlice = Array.prototype.slice;
22477 var functionsHaveNames = (function () {
22478 return function foo() {}.name === 'foo';
22480 function pToString (obj) {
22481 return Object.prototype.toString.call(obj);
22483 function isView(arrbuf) {
22484 if (isBuffer(arrbuf)) {
22487 if (typeof global.ArrayBuffer !== 'function') {
22490 if (typeof ArrayBuffer.isView === 'function') {
22491 return ArrayBuffer.isView(arrbuf);
22496 if (arrbuf instanceof DataView) {
22499 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
22504 //
1. The assert module provides functions that throw
22505 // AssertionError's when particular conditions are not met. The
22506 // assert module must conform to the following interface.
22508 var assert = module.exports = ok;
22510 //
2. The AssertionError is defined in assert.
22511 // new assert.AssertionError({ message: message,
22513 // expected: expected })
22515 var regex = /\s*function\s+([^\(\s]*)\s*/;
22516 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
22517 function getName(func) {
22518 if (!util.isFunction(func)) {
22521 if (functionsHaveNames) {
22524 var str = func.toString();
22525 var match = str.match(regex);
22526 return match && match[
1];
22528 assert.AssertionError = function AssertionError(options) {
22529 this.name = 'AssertionError';
22530 this.actual = options.actual;
22531 this.expected = options.expected;
22532 this.operator = options.operator;
22533 if (options.message) {
22534 this.message = options.message;
22535 this.generatedMessage = false;
22537 this.message = getMessage(this);
22538 this.generatedMessage = true;
22540 var stackStartFunction = options.stackStartFunction || fail;
22541 if (Error.captureStackTrace) {
22542 Error.captureStackTrace(this, stackStartFunction);
22544 // non v8 browsers so we can have a stacktrace
22545 var err = new Error();
22547 var out = err.stack;
22549 // try to strip useless frames
22550 var fn_name = getName(stackStartFunction);
22551 var idx = out.indexOf('\n' + fn_name);
22553 // once we have located the function frame
22554 // we need to strip out everything before it (and its line)
22555 var next_line = out.indexOf('\n', idx +
1);
22556 out = out.substring(next_line +
1);
22564 // assert.AssertionError instanceof Error
22565 util.inherits(assert.AssertionError, Error);
22567 function truncate(s, n) {
22568 if (typeof s === 'string') {
22569 return s.length < n ? s : s.slice(
0, n);
22574 function inspect(something) {
22575 if (functionsHaveNames || !util.isFunction(something)) {
22576 return util.inspect(something);
22578 var rawname = getName(something);
22579 var name = rawname ? ': ' + rawname : '';
22580 return '[Function' + name + ']';
22582 function getMessage(self) {
22583 return truncate(inspect(self.actual),
128) + ' ' +
22584 self.operator + ' ' +
22585 truncate(inspect(self.expected),
128);
22588 // At present only the three keys mentioned above are used and
22589 // understood by the spec. Implementations or sub modules can pass
22590 // other keys to the AssertionError's constructor - they will be
22593 //
3. All of the following functions must throw an AssertionError
22594 // when a corresponding condition is not met, with a message that
22595 // may be undefined if not provided. All assertion methods provide
22596 // both the actual and expected values to the assertion error for
22597 // display purposes.
22599 function fail(actual, expected, message, operator, stackStartFunction) {
22600 throw new assert.AssertionError({
22603 expected: expected,
22604 operator: operator,
22605 stackStartFunction: stackStartFunction
22609 // EXTENSION! allows for well behaved errors defined elsewhere.
22610 assert.fail = fail;
22612 //
4. Pure assertion tests whether a value is truthy, as determined
22614 // assert.ok(guard, message_opt);
22615 // This statement is equivalent to assert.equal(true, !!guard,
22616 // message_opt);. To test strictly for the value true, use
22617 // assert.strictEqual(true, guard, message_opt);.
22619 function ok(value, message) {
22620 if (!value) fail(value, true, message, '==', assert.ok);
22624 //
5. The equality assertion tests shallow, coercive equality with
22626 // assert.equal(actual, expected, message_opt);
22628 assert.equal = function equal(actual, expected, message) {
22629 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
22632 //
6. The non-equality assertion tests for whether two objects are not equal
22633 // with != assert.notEqual(actual, expected, message_opt);
22635 assert.notEqual = function notEqual(actual, expected, message) {
22636 if (actual == expected) {
22637 fail(actual, expected, message, '!=', assert.notEqual);
22641 //
7. The equivalence assertion tests a deep equality relation.
22642 // assert.deepEqual(actual, expected, message_opt);
22644 assert.deepEqual = function deepEqual(actual, expected, message) {
22645 if (!_deepEqual(actual, expected, false)) {
22646 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
22650 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
22651 if (!_deepEqual(actual, expected, true)) {
22652 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
22656 function _deepEqual(actual, expected, strict, memos) {
22657 //
7.1. All identical values are equivalent, as determined by ===.
22658 if (actual === expected) {
22660 } else if (isBuffer(actual) && isBuffer(expected)) {
22661 return compare(actual, expected) ===
0;
22663 //
7.2. If the expected value is a Date object, the actual value is
22664 // equivalent if it is also a Date object that refers to the same time.
22665 } else if (util.isDate(actual) && util.isDate(expected)) {
22666 return actual.getTime() === expected.getTime();
22668 //
7.3 If the expected value is a RegExp object, the actual value is
22669 // equivalent if it is also a RegExp object with the same source and
22670 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
22671 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
22672 return actual.source === expected.source &&
22673 actual.global === expected.global &&
22674 actual.multiline === expected.multiline &&
22675 actual.lastIndex === expected.lastIndex &&
22676 actual.ignoreCase === expected.ignoreCase;
22678 //
7.4. Other pairs that do not both pass typeof value == 'object',
22679 // equivalence is determined by ==.
22680 } else if ((actual === null || typeof actual !== 'object') &&
22681 (expected === null || typeof expected !== 'object')) {
22682 return strict ? actual === expected : actual == expected;
22684 // If both values are instances of typed arrays, wrap their underlying
22685 // ArrayBuffers in a Buffer each to increase performance
22686 // This optimization requires the arrays to have the same type as checked by
22687 // Object.prototype.toString (aka pToString). Never perform binary
22688 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
22689 // bit patterns are not identical.
22690 } else if (isView(actual) && isView(expected) &&
22691 pToString(actual) === pToString(expected) &&
22692 !(actual instanceof Float32Array ||
22693 actual instanceof Float64Array)) {
22694 return compare(new Uint8Array(actual.buffer),
22695 new Uint8Array(expected.buffer)) ===
0;
22697 //
7.5 For all other Object pairs, including Array objects, equivalence is
22698 // determined by having the same number of owned properties (as verified
22699 // with Object.prototype.hasOwnProperty.call), the same set of keys
22700 // (although not necessarily the same order), equivalent values for every
22701 // corresponding key, and an identical 'prototype' property. Note: this
22702 // accounts for both named and indexed properties on Arrays.
22703 } else if (isBuffer(actual) !== isBuffer(expected)) {
22706 memos = memos || {actual: [], expected: []};
22708 var actualIndex = memos.actual.indexOf(actual);
22709 if (actualIndex !== -
1) {
22710 if (actualIndex === memos.expected.indexOf(expected)) {
22715 memos.actual.push(actual);
22716 memos.expected.push(expected);
22718 return objEquiv(actual, expected, strict, memos);
22722 function isArguments(object) {
22723 return Object.prototype.toString.call(object) == '[object Arguments]';
22726 function objEquiv(a, b, strict, actualVisitedObjects) {
22727 if (a === null || a === undefined || b === null || b === undefined)
22729 // if one is a primitive, the other must be same
22730 if (util.isPrimitive(a) || util.isPrimitive(b))
22732 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
22734 var aIsArgs = isArguments(a);
22735 var bIsArgs = isArguments(b);
22736 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
22739 a = pSlice.call(a);
22740 b = pSlice.call(b);
22741 return _deepEqual(a, b, strict);
22743 var ka = objectKeys(a);
22744 var kb = objectKeys(b);
22746 // having the same number of owned properties (keys incorporates
22748 if (ka.length !== kb.length)
22750 //the same set of keys (although not necessarily the same order),
22753 //~~~cheap key test
22754 for (i = ka.length -
1; i
>=
0; i--) {
22755 if (ka[i] !== kb[i])
22758 //equivalent values for every corresponding key, and
22759 //~~~possibly expensive deep test
22760 for (i = ka.length -
1; i
>=
0; i--) {
22762 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
22768 //
8. The non-equivalence assertion tests for any deep inequality.
22769 // assert.notDeepEqual(actual, expected, message_opt);
22771 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
22772 if (_deepEqual(actual, expected, false)) {
22773 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
22777 assert.notDeepStrictEqual = notDeepStrictEqual;
22778 function notDeepStrictEqual(actual, expected, message) {
22779 if (_deepEqual(actual, expected, true)) {
22780 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
22785 //
9. The strict equality assertion tests strict equality, as determined by ===.
22786 // assert.strictEqual(actual, expected, message_opt);
22788 assert.strictEqual = function strictEqual(actual, expected, message) {
22789 if (actual !== expected) {
22790 fail(actual, expected, message, '===', assert.strictEqual);
22794 //
10. The strict non-equality assertion tests for strict inequality, as
22795 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
22797 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
22798 if (actual === expected) {
22799 fail(actual, expected, message, '!==', assert.notStrictEqual);
22803 function expectedException(actual, expected) {
22804 if (!actual || !expected) {
22808 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
22809 return expected.test(actual);
22813 if (actual instanceof expected) {
22817 // Ignore. The instanceof check doesn't work for arrow functions.
22820 if (Error.isPrototypeOf(expected)) {
22824 return expected.call({}, actual) === true;
22827 function _tryBlock(block) {
22837 function _throws(shouldThrow, block, expected, message) {
22840 if (typeof block !== 'function') {
22841 throw new TypeError('"block" argument must be a function');
22844 if (typeof expected === 'string') {
22845 message = expected;
22849 actual = _tryBlock(block);
22851 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
22852 (message ? ' ' + message : '.');
22854 if (shouldThrow && !actual) {
22855 fail(actual, expected, 'Missing expected exception' + message);
22858 var userProvidedMessage = typeof message === 'string';
22859 var isUnwantedException = !shouldThrow && util.isError(actual);
22860 var isUnexpectedException = !shouldThrow && actual && !expected;
22862 if ((isUnwantedException &&
22863 userProvidedMessage &&
22864 expectedException(actual, expected)) ||
22865 isUnexpectedException) {
22866 fail(actual, expected, 'Got unwanted exception' + message);
22869 if ((shouldThrow && actual && expected &&
22870 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
22875 //
11. Expected to throw an error:
22876 // assert.throws(block, Error_opt, message_opt);
22878 assert.throws = function(block, /*optional*/error, /*optional*/message) {
22879 _throws(true, block, error, message);
22882 // EXTENSION! This is annoying to write outside this module.
22883 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
22884 _throws(false, block, error, message);
22887 assert.ifError = function(err) { if (err) throw err; };
22889 var objectKeys = Object.keys || function (obj) {
22891 for (var key in obj) {
22892 if (hasOwn.call(obj, key)) keys.push(key);
22897 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
22898 },{"util/":
30}],
2:[function(require,module,exports){
22901 exports.byteLength = byteLength
22902 exports.toByteArray = toByteArray
22903 exports.fromByteArray = fromByteArray
22907 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
22909 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
22910 for (var i =
0, len = code.length; i < len; ++i) {
22911 lookup[i] = code[i]
22912 revLookup[code.charCodeAt(i)] = i
22915 revLookup['-'.charCodeAt(
0)] =
62
22916 revLookup['_'.charCodeAt(
0)] =
63
22918 function placeHoldersCount (b64) {
22919 var len = b64.length
22921 throw new Error('Invalid string. Length must be a multiple of
4')
22924 // the number of equal signs (place holders)
22925 // if there are two placeholders, than the two characters before it
22926 // represent one byte
22927 // if there is only one, then the three characters before it represent
2 bytes
22928 // this is just a cheap hack to not do indexOf twice
22929 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
22932 function byteLength (b64) {
22933 // base64 is
4/
3 + up to two characters of the original data
22934 return b64.length *
3 /
4 - placeHoldersCount(b64)
22937 function toByteArray (b64) {
22938 var i, j, l, tmp, placeHolders, arr
22939 var len = b64.length
22940 placeHolders = placeHoldersCount(b64)
22942 arr = new Arr(len *
3 /
4 - placeHolders)
22944 // if there are placeholders, only get up to the last complete
4 chars
22945 l = placeHolders
> 0 ? len -
4 : len
22949 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
22950 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
22951 arr[L++] = (tmp
>> 16) &
0xFF
22952 arr[L++] = (tmp
>> 8) &
0xFF
22953 arr[L++] = tmp &
0xFF
22956 if (placeHolders ===
2) {
22957 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
22958 arr[L++] = tmp &
0xFF
22959 } else if (placeHolders ===
1) {
22960 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
22961 arr[L++] = (tmp
>> 8) &
0xFF
22962 arr[L++] = tmp &
0xFF
22968 function tripletToBase64 (num) {
22969 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
22972 function encodeChunk (uint8, start, end) {
22975 for (var i = start; i < end; i +=
3) {
22976 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
22977 output.push(tripletToBase64(tmp))
22979 return output.join('')
22982 function fromByteArray (uint8) {
22984 var len = uint8.length
22985 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
22988 var maxChunkLength =
16383 // must be multiple of
3
22990 // go through the array every three bytes, we'll deal with trailing stuff later
22991 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
22992 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
22995 // pad the end with zeros, but make sure to not forget the extra bytes
22996 if (extraBytes ===
1) {
22997 tmp = uint8[len -
1]
22998 output += lookup[tmp
>> 2]
22999 output += lookup[(tmp <<
4) &
0x3F]
23001 } else if (extraBytes ===
2) {
23002 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
23003 output += lookup[tmp
>> 10]
23004 output += lookup[(tmp
>> 4) &
0x3F]
23005 output += lookup[(tmp <<
2) &
0x3F]
23011 return parts.join('')
23014 },{}],
3:[function(require,module,exports){
23016 },{}],
4:[function(require,module,exports){
23017 (function (global){
23020 var buffer = require('buffer');
23021 var Buffer = buffer.Buffer;
23022 var SlowBuffer = buffer.SlowBuffer;
23023 var MAX_LEN = buffer.kMaxLength ||
2147483647;
23024 exports.alloc = function alloc(size, fill, encoding) {
23025 if (typeof Buffer.alloc === 'function') {
23026 return Buffer.alloc(size, fill, encoding);
23028 if (typeof encoding === 'number') {
23029 throw new TypeError('encoding must not be number');
23031 if (typeof size !== 'number') {
23032 throw new TypeError('size must be a number');
23034 if (size
> MAX_LEN) {
23035 throw new RangeError('size is too large');
23037 var enc = encoding;
23039 if (_fill === undefined) {
23043 var buf = new Buffer(size);
23044 if (typeof _fill === 'string') {
23045 var fillBuf = new Buffer(_fill, enc);
23046 var flen = fillBuf.length;
23048 while (++i < size) {
23049 buf[i] = fillBuf[i % flen];
23056 exports.allocUnsafe = function allocUnsafe(size) {
23057 if (typeof Buffer.allocUnsafe === 'function') {
23058 return Buffer.allocUnsafe(size);
23060 if (typeof size !== 'number') {
23061 throw new TypeError('size must be a number');
23063 if (size
> MAX_LEN) {
23064 throw new RangeError('size is too large');
23066 return new Buffer(size);
23068 exports.from = function from(value, encodingOrOffset, length) {
23069 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
23070 return Buffer.from(value, encodingOrOffset, length);
23072 if (typeof value === 'number') {
23073 throw new TypeError('"value" argument must not be a number');
23075 if (typeof value === 'string') {
23076 return new Buffer(value, encodingOrOffset);
23078 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
23079 var offset = encodingOrOffset;
23080 if (arguments.length ===
1) {
23081 return new Buffer(value);
23083 if (typeof offset === 'undefined') {
23087 if (typeof len === 'undefined') {
23088 len = value.byteLength - offset;
23090 if (offset
>= value.byteLength) {
23091 throw new RangeError('\'offset\' is out of bounds');
23093 if (len
> value.byteLength - offset) {
23094 throw new RangeError('\'length\' is out of bounds');
23096 return new Buffer(value.slice(offset, offset + len));
23098 if (Buffer.isBuffer(value)) {
23099 var out = new Buffer(value.length);
23100 value.copy(out,
0,
0, value.length);
23104 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
23105 return new Buffer(value);
23107 if (value.type === 'Buffer' && Array.isArray(value.data)) {
23108 return new Buffer(value.data);
23112 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
23114 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
23115 if (typeof Buffer.allocUnsafeSlow === 'function') {
23116 return Buffer.allocUnsafeSlow(size);
23118 if (typeof size !== 'number') {
23119 throw new TypeError('size must be a number');
23121 if (size
>= MAX_LEN) {
23122 throw new RangeError('size is too large');
23124 return new SlowBuffer(size);
23127 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
23128 },{"buffer":
5}],
5:[function(require,module,exports){
23130 * The buffer module from node.js, for the browser.
23132 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
23135 /* eslint-disable no-proto */
23139 var base64 = require('base64-js')
23140 var ieee754 = require('ieee754')
23142 exports.Buffer = Buffer
23143 exports.SlowBuffer = SlowBuffer
23144 exports.INSPECT_MAX_BYTES =
50
23146 var K_MAX_LENGTH =
0x7fffffff
23147 exports.kMaxLength = K_MAX_LENGTH
23150 * If `Buffer.TYPED_ARRAY_SUPPORT`:
23151 * === true Use Uint8Array implementation (fastest)
23152 * === false Print warning and recommend using `buffer` v4.x which has an Object
23153 * implementation (most compatible, even IE6)
23155 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
23156 * Opera
11.6+, iOS
4.2+.
23158 * We report that the browser does not support typed arrays if the are not subclassable
23159 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
23160 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
23161 * for __proto__ and has a buggy typed array implementation.
23163 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
23165 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
23166 typeof console.error === 'function') {
23168 'This browser lacks typed array (Uint8Array) support which is required by ' +
23169 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
23173 function typedArraySupport () {
23174 // Can typed array instances can be augmented?
23176 var arr = new Uint8Array(
1)
23177 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
23178 return arr.foo() ===
42
23184 function createBuffer (length) {
23185 if (length
> K_MAX_LENGTH) {
23186 throw new RangeError('Invalid typed array length')
23188 // Return an augmented `Uint8Array` instance
23189 var buf = new Uint8Array(length)
23190 buf.__proto__ = Buffer.prototype
23195 * The Buffer constructor returns instances of `Uint8Array` that have their
23196 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
23197 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
23198 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
23199 * returns a single octet.
23201 * The `Uint8Array` prototype remains unmodified.
23204 function Buffer (arg, encodingOrOffset, length) {
23206 if (typeof arg === 'number') {
23207 if (typeof encodingOrOffset === 'string') {
23209 'If encoding is specified then the first argument must be a string'
23212 return allocUnsafe(arg)
23214 return from(arg, encodingOrOffset, length)
23217 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
23218 if (typeof Symbol !== 'undefined' && Symbol.species &&
23219 Buffer[Symbol.species] === Buffer) {
23220 Object.defineProperty(Buffer, Symbol.species, {
23222 configurable: true,
23228 Buffer.poolSize =
8192 // not used by this implementation
23230 function from (value, encodingOrOffset, length) {
23231 if (typeof value === 'number') {
23232 throw new TypeError('"value" argument must not be a number')
23235 if (value instanceof ArrayBuffer) {
23236 return fromArrayBuffer(value, encodingOrOffset, length)
23239 if (typeof value === 'string') {
23240 return fromString(value, encodingOrOffset)
23243 return fromObject(value)
23247 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
23248 * if value is a number.
23249 * Buffer.from(str[, encoding])
23250 * Buffer.from(array)
23251 * Buffer.from(buffer)
23252 * Buffer.from(arrayBuffer[, byteOffset[, length]])
23254 Buffer.from = function (value, encodingOrOffset, length) {
23255 return from(value, encodingOrOffset, length)
23258 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
23259 // https://github.com/feross/buffer/pull/
148
23260 Buffer.prototype.__proto__ = Uint8Array.prototype
23261 Buffer.__proto__ = Uint8Array
23263 function assertSize (size) {
23264 if (typeof size !== 'number') {
23265 throw new TypeError('"size" argument must be a number')
23266 } else if (size <
0) {
23267 throw new RangeError('"size" argument must not be negative')
23271 function alloc (size, fill, encoding) {
23274 return createBuffer(size)
23276 if (fill !== undefined) {
23277 // Only pay attention to encoding if it's a string. This
23278 // prevents accidentally sending in a number that would
23279 // be interpretted as a start offset.
23280 return typeof encoding === 'string'
23281 ? createBuffer(size).fill(fill, encoding)
23282 : createBuffer(size).fill(fill)
23284 return createBuffer(size)
23288 * Creates a new filled Buffer instance.
23289 * alloc(size[, fill[, encoding]])
23291 Buffer.alloc = function (size, fill, encoding) {
23292 return alloc(size, fill, encoding)
23295 function allocUnsafe (size) {
23297 return createBuffer(size <
0 ?
0 : checked(size) |
0)
23301 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
23303 Buffer.allocUnsafe = function (size) {
23304 return allocUnsafe(size)
23307 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
23309 Buffer.allocUnsafeSlow = function (size) {
23310 return allocUnsafe(size)
23313 function fromString (string, encoding) {
23314 if (typeof encoding !== 'string' || encoding === '') {
23318 if (!Buffer.isEncoding(encoding)) {
23319 throw new TypeError('"encoding" must be a valid string encoding')
23322 var length = byteLength(string, encoding) |
0
23323 var buf = createBuffer(length)
23325 var actual = buf.write(string, encoding)
23327 if (actual !== length) {
23328 // Writing a hex string, for example, that contains invalid characters will
23329 // cause everything after the first invalid character to be ignored. (e.g.
23330 // 'abxxcd' will be treated as 'ab')
23331 buf = buf.slice(
0, actual)
23337 function fromArrayLike (array) {
23338 var length = array.length <
0 ?
0 : checked(array.length) |
0
23339 var buf = createBuffer(length)
23340 for (var i =
0; i < length; i +=
1) {
23341 buf[i] = array[i] &
255
23346 function fromArrayBuffer (array, byteOffset, length) {
23347 if (byteOffset <
0 || array.byteLength < byteOffset) {
23348 throw new RangeError('\'offset\' is out of bounds')
23351 if (array.byteLength < byteOffset + (length ||
0)) {
23352 throw new RangeError('\'length\' is out of bounds')
23356 if (byteOffset === undefined && length === undefined) {
23357 buf = new Uint8Array(array)
23358 } else if (length === undefined) {
23359 buf = new Uint8Array(array, byteOffset)
23361 buf = new Uint8Array(array, byteOffset, length)
23364 // Return an augmented `Uint8Array` instance
23365 buf.__proto__ = Buffer.prototype
23369 function fromObject (obj) {
23370 if (Buffer.isBuffer(obj)) {
23371 var len = checked(obj.length) |
0
23372 var buf = createBuffer(len)
23374 if (buf.length ===
0) {
23378 obj.copy(buf,
0,
0, len)
23383 if (ArrayBuffer.isView(obj) || 'length' in obj) {
23384 if (typeof obj.length !== 'number' || isnan(obj.length)) {
23385 return createBuffer(
0)
23387 return fromArrayLike(obj)
23390 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
23391 return fromArrayLike(obj.data)
23395 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
23398 function checked (length) {
23399 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
23400 // length is NaN (which is otherwise coerced to zero.)
23401 if (length
>= K_MAX_LENGTH) {
23402 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
23403 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
23408 function SlowBuffer (length) {
23409 if (+length != length) { // eslint-disable-line eqeqeq
23412 return Buffer.alloc(+length)
23415 Buffer.isBuffer = function isBuffer (b) {
23416 return b != null && b._isBuffer === true
23419 Buffer.compare = function compare (a, b) {
23420 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
23421 throw new TypeError('Arguments must be Buffers')
23424 if (a === b) return
0
23429 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
23430 if (a[i] !== b[i]) {
23437 if (x < y) return -
1
23438 if (y < x) return
1
23442 Buffer.isEncoding = function isEncoding (encoding) {
23443 switch (String(encoding).toLowerCase()) {
23461 Buffer.concat = function concat (list, length) {
23462 if (!Array.isArray(list)) {
23463 throw new TypeError('"list" argument must be an Array of Buffers')
23466 if (list.length ===
0) {
23467 return Buffer.alloc(
0)
23471 if (length === undefined) {
23473 for (i =
0; i < list.length; ++i) {
23474 length += list[i].length
23478 var buffer = Buffer.allocUnsafe(length)
23480 for (i =
0; i < list.length; ++i) {
23482 if (!Buffer.isBuffer(buf)) {
23483 throw new TypeError('"list" argument must be an Array of Buffers')
23485 buf.copy(buffer, pos)
23491 function byteLength (string, encoding) {
23492 if (Buffer.isBuffer(string)) {
23493 return string.length
23495 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
23496 return string.byteLength
23498 if (typeof string !== 'string') {
23499 string = '' + string
23502 var len = string.length
23503 if (len ===
0) return
0
23505 // Use a for loop to avoid recursion
23506 var loweredCase = false
23508 switch (encoding) {
23516 return utf8ToBytes(string).length
23525 return base64ToBytes(string).length
23527 if (loweredCase) return utf8ToBytes(string).length // assume utf8
23528 encoding = ('' + encoding).toLowerCase()
23533 Buffer.byteLength = byteLength
23535 function slowToString (encoding, start, end) {
23536 var loweredCase = false
23538 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
23539 // property of a typed array.
23541 // This behaves neither like String nor Uint8Array in that we set start/end
23542 // to their upper/lower bounds if the value passed is out of range.
23543 // undefined is handled specially as per ECMA-
262 6th Edition,
23544 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
23545 if (start === undefined || start <
0) {
23548 // Return early if start
> this.length. Done here to prevent potential uint32
23549 // coercion fail below.
23550 if (start
> this.length) {
23554 if (end === undefined || end
> this.length) {
23562 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
23566 if (end <= start) {
23570 if (!encoding) encoding = 'utf8'
23573 switch (encoding) {
23575 return hexSlice(this, start, end)
23579 return utf8Slice(this, start, end)
23582 return asciiSlice(this, start, end)
23586 return latin1Slice(this, start, end)
23589 return base64Slice(this, start, end)
23595 return utf16leSlice(this, start, end)
23598 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23599 encoding = (encoding + '').toLowerCase()
23605 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
23606 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
23607 // reliably in a browserify context because there could be multiple different
23608 // copies of the 'buffer' package in use. This method works even for Buffer
23609 // instances that were created from another copy of the `buffer` package.
23610 // See: https://github.com/feross/buffer/issues/
154
23611 Buffer.prototype._isBuffer = true
23613 function swap (b, n, m) {
23619 Buffer.prototype.swap16 = function swap16 () {
23620 var len = this.length
23621 if (len %
2 !==
0) {
23622 throw new RangeError('Buffer size must be a multiple of
16-bits')
23624 for (var i =
0; i < len; i +=
2) {
23625 swap(this, i, i +
1)
23630 Buffer.prototype.swap32 = function swap32 () {
23631 var len = this.length
23632 if (len %
4 !==
0) {
23633 throw new RangeError('Buffer size must be a multiple of
32-bits')
23635 for (var i =
0; i < len; i +=
4) {
23636 swap(this, i, i +
3)
23637 swap(this, i +
1, i +
2)
23642 Buffer.prototype.swap64 = function swap64 () {
23643 var len = this.length
23644 if (len %
8 !==
0) {
23645 throw new RangeError('Buffer size must be a multiple of
64-bits')
23647 for (var i =
0; i < len; i +=
8) {
23648 swap(this, i, i +
7)
23649 swap(this, i +
1, i +
6)
23650 swap(this, i +
2, i +
5)
23651 swap(this, i +
3, i +
4)
23656 Buffer.prototype.toString = function toString () {
23657 var length = this.length
23658 if (length ===
0) return ''
23659 if (arguments.length ===
0) return utf8Slice(this,
0, length)
23660 return slowToString.apply(this, arguments)
23663 Buffer.prototype.equals = function equals (b) {
23664 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
23665 if (this === b) return true
23666 return Buffer.compare(this, b) ===
0
23669 Buffer.prototype.inspect = function inspect () {
23671 var max = exports.INSPECT_MAX_BYTES
23672 if (this.length
> 0) {
23673 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
23674 if (this.length
> max) str += ' ... '
23676 return '
<Buffer ' + str + '
>'
23679 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
23680 if (!Buffer.isBuffer(target)) {
23681 throw new TypeError('Argument must be a Buffer')
23684 if (start === undefined) {
23687 if (end === undefined) {
23688 end = target ? target.length :
0
23690 if (thisStart === undefined) {
23693 if (thisEnd === undefined) {
23694 thisEnd = this.length
23697 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
23698 throw new RangeError('out of range index')
23701 if (thisStart
>= thisEnd && start
>= end) {
23704 if (thisStart
>= thisEnd) {
23707 if (start
>= end) {
23716 if (this === target) return
0
23718 var x = thisEnd - thisStart
23719 var y = end - start
23720 var len = Math.min(x, y)
23722 var thisCopy = this.slice(thisStart, thisEnd)
23723 var targetCopy = target.slice(start, end)
23725 for (var i =
0; i < len; ++i) {
23726 if (thisCopy[i] !== targetCopy[i]) {
23733 if (x < y) return -
1
23734 if (y < x) return
1
23738 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
23739 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
23742 // - buffer - a Buffer to search
23743 // - val - a string, Buffer, or number
23744 // - byteOffset - an index into `buffer`; will be clamped to an int32
23745 // - encoding - an optional encoding, relevant is val is a string
23746 // - dir - true for indexOf, false for lastIndexOf
23747 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
23748 // Empty buffer means no match
23749 if (buffer.length ===
0) return -
1
23751 // Normalize byteOffset
23752 if (typeof byteOffset === 'string') {
23753 encoding = byteOffset
23755 } else if (byteOffset
> 0x7fffffff) {
23756 byteOffset =
0x7fffffff
23757 } else if (byteOffset < -
0x80000000) {
23758 byteOffset = -
0x80000000
23760 byteOffset = +byteOffset // Coerce to Number.
23761 if (isNaN(byteOffset)) {
23762 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
23763 byteOffset = dir ?
0 : (buffer.length -
1)
23766 // Normalize byteOffset: negative offsets start from the end of the buffer
23767 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
23768 if (byteOffset
>= buffer.length) {
23770 else byteOffset = buffer.length -
1
23771 } else if (byteOffset <
0) {
23772 if (dir) byteOffset =
0
23777 if (typeof val === 'string') {
23778 val = Buffer.from(val, encoding)
23781 // Finally, search either indexOf (if dir is true) or lastIndexOf
23782 if (Buffer.isBuffer(val)) {
23783 // Special case: looking for empty string/buffer always fails
23784 if (val.length ===
0) {
23787 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
23788 } else if (typeof val === 'number') {
23789 val = val &
0xFF // Search for a byte value [
0-
255]
23790 if (typeof Uint8Array.prototype.indexOf === 'function') {
23792 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
23794 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
23797 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
23800 throw new TypeError('val must be string, number or Buffer')
23803 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
23805 var arrLength = arr.length
23806 var valLength = val.length
23808 if (encoding !== undefined) {
23809 encoding = String(encoding).toLowerCase()
23810 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
23811 encoding === 'utf16le' || encoding === 'utf-
16le') {
23812 if (arr.length <
2 || val.length <
2) {
23822 function read (buf, i) {
23823 if (indexSize ===
1) {
23826 return buf.readUInt16BE(i * indexSize)
23832 var foundIndex = -
1
23833 for (i = byteOffset; i < arrLength; i++) {
23834 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
23835 if (foundIndex === -
1) foundIndex = i
23836 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
23838 if (foundIndex !== -
1) i -= i - foundIndex
23843 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
23844 for (i = byteOffset; i
>=
0; i--) {
23846 for (var j =
0; j < valLength; j++) {
23847 if (read(arr, i + j) !== read(val, j)) {
23852 if (found) return i
23859 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
23860 return this.indexOf(val, byteOffset, encoding) !== -
1
23863 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
23864 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
23867 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
23868 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
23871 function hexWrite (buf, string, offset, length) {
23872 offset = Number(offset) ||
0
23873 var remaining = buf.length - offset
23877 length = Number(length)
23878 if (length
> remaining) {
23883 // must be an even number of digits
23884 var strLen = string.length
23885 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
23887 if (length
> strLen /
2) {
23888 length = strLen /
2
23890 for (var i =
0; i < length; ++i) {
23891 var parsed = parseInt(string.substr(i *
2,
2),
16)
23892 if (isNaN(parsed)) return i
23893 buf[offset + i] = parsed
23898 function utf8Write (buf, string, offset, length) {
23899 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
23902 function asciiWrite (buf, string, offset, length) {
23903 return blitBuffer(asciiToBytes(string), buf, offset, length)
23906 function latin1Write (buf, string, offset, length) {
23907 return asciiWrite(buf, string, offset, length)
23910 function base64Write (buf, string, offset, length) {
23911 return blitBuffer(base64ToBytes(string), buf, offset, length)
23914 function ucs2Write (buf, string, offset, length) {
23915 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
23918 Buffer.prototype.write = function write (string, offset, length, encoding) {
23919 // Buffer#write(string)
23920 if (offset === undefined) {
23922 length = this.length
23924 // Buffer#write(string, encoding)
23925 } else if (length === undefined && typeof offset === 'string') {
23927 length = this.length
23929 // Buffer#write(string, offset[, length][, encoding])
23930 } else if (isFinite(offset)) {
23931 offset = offset
>>> 0
23932 if (isFinite(length)) {
23933 length = length
>>> 0
23934 if (encoding === undefined) encoding = 'utf8'
23941 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
23945 var remaining = this.length - offset
23946 if (length === undefined || length
> remaining) length = remaining
23948 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
23949 throw new RangeError('Attempt to write outside buffer bounds')
23952 if (!encoding) encoding = 'utf8'
23954 var loweredCase = false
23956 switch (encoding) {
23958 return hexWrite(this, string, offset, length)
23962 return utf8Write(this, string, offset, length)
23965 return asciiWrite(this, string, offset, length)
23969 return latin1Write(this, string, offset, length)
23972 // Warning: maxLength not taken into account in base64Write
23973 return base64Write(this, string, offset, length)
23979 return ucs2Write(this, string, offset, length)
23982 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23983 encoding = ('' + encoding).toLowerCase()
23989 Buffer.prototype.toJSON = function toJSON () {
23992 data: Array.prototype.slice.call(this._arr || this,
0)
23996 function base64Slice (buf, start, end) {
23997 if (start ===
0 && end === buf.length) {
23998 return base64.fromByteArray(buf)
24000 return base64.fromByteArray(buf.slice(start, end))
24004 function utf8Slice (buf, start, end) {
24005 end = Math.min(buf.length, end)
24010 var firstByte = buf[i]
24011 var codePoint = null
24012 var bytesPerSequence = (firstByte
> 0xEF) ?
4
24013 : (firstByte
> 0xDF) ?
3
24014 : (firstByte
> 0xBF) ?
2
24017 if (i + bytesPerSequence <= end) {
24018 var secondByte, thirdByte, fourthByte, tempCodePoint
24020 switch (bytesPerSequence) {
24022 if (firstByte <
0x80) {
24023 codePoint = firstByte
24027 secondByte = buf[i +
1]
24028 if ((secondByte &
0xC0) ===
0x80) {
24029 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
24030 if (tempCodePoint
> 0x7F) {
24031 codePoint = tempCodePoint
24036 secondByte = buf[i +
1]
24037 thirdByte = buf[i +
2]
24038 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
24039 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
24040 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
24041 codePoint = tempCodePoint
24046 secondByte = buf[i +
1]
24047 thirdByte = buf[i +
2]
24048 fourthByte = buf[i +
3]
24049 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
24050 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
24051 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
24052 codePoint = tempCodePoint
24058 if (codePoint === null) {
24059 // we did not generate a valid codePoint so insert a
24060 // replacement char (U+FFFD) and advance only
1 byte
24062 bytesPerSequence =
1
24063 } else if (codePoint
> 0xFFFF) {
24064 // encode to utf16 (surrogate pair dance)
24065 codePoint -=
0x10000
24066 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
24067 codePoint =
0xDC00 | codePoint &
0x3FF
24070 res.push(codePoint)
24071 i += bytesPerSequence
24074 return decodeCodePointsArray(res)
24077 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
24078 // the lowest limit is Chrome, with
0x10000 args.
24079 // We go
1 magnitude less, for safety
24080 var MAX_ARGUMENTS_LENGTH =
0x1000
24082 function decodeCodePointsArray (codePoints) {
24083 var len = codePoints.length
24084 if (len <= MAX_ARGUMENTS_LENGTH) {
24085 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
24088 // Decode in chunks to avoid
"call stack size exceeded".
24092 res += String.fromCharCode.apply(
24094 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
24100 function asciiSlice (buf, start, end) {
24102 end = Math.min(buf.length, end)
24104 for (var i = start; i < end; ++i) {
24105 ret += String.fromCharCode(buf[i] &
0x7F)
24110 function latin1Slice (buf, start, end) {
24112 end = Math.min(buf.length, end)
24114 for (var i = start; i < end; ++i) {
24115 ret += String.fromCharCode(buf[i])
24120 function hexSlice (buf, start, end) {
24121 var len = buf.length
24123 if (!start || start <
0) start =
0
24124 if (!end || end <
0 || end
> len) end = len
24127 for (var i = start; i < end; ++i) {
24128 out += toHex(buf[i])
24133 function utf16leSlice (buf, start, end) {
24134 var bytes = buf.slice(start, end)
24136 for (var i =
0; i < bytes.length; i +=
2) {
24137 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
24142 Buffer.prototype.slice = function slice (start, end) {
24143 var len = this.length
24145 end = end === undefined ? len : ~~end
24149 if (start <
0) start =
0
24150 } else if (start
> len) {
24156 if (end <
0) end =
0
24157 } else if (end
> len) {
24161 if (end < start) end = start
24163 var newBuf = this.subarray(start, end)
24164 // Return an augmented `Uint8Array` instance
24165 newBuf.__proto__ = Buffer.prototype
24170 * Need to make sure that buffer isn't trying to write out of bounds.
24172 function checkOffset (offset, ext, length) {
24173 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
24174 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
24177 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
24178 offset = offset
>>> 0
24179 byteLength = byteLength
>>> 0
24180 if (!noAssert) checkOffset(offset, byteLength, this.length)
24182 var val = this[offset]
24185 while (++i < byteLength && (mul *=
0x100)) {
24186 val += this[offset + i] * mul
24192 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
24193 offset = offset
>>> 0
24194 byteLength = byteLength
>>> 0
24196 checkOffset(offset, byteLength, this.length)
24199 var val = this[offset + --byteLength]
24201 while (byteLength
> 0 && (mul *=
0x100)) {
24202 val += this[offset + --byteLength] * mul
24208 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
24209 offset = offset
>>> 0
24210 if (!noAssert) checkOffset(offset,
1, this.length)
24211 return this[offset]
24214 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
24215 offset = offset
>>> 0
24216 if (!noAssert) checkOffset(offset,
2, this.length)
24217 return this[offset] | (this[offset +
1] <<
8)
24220 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
24221 offset = offset
>>> 0
24222 if (!noAssert) checkOffset(offset,
2, this.length)
24223 return (this[offset] <<
8) | this[offset +
1]
24226 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
24227 offset = offset
>>> 0
24228 if (!noAssert) checkOffset(offset,
4, this.length)
24230 return ((this[offset]) |
24231 (this[offset +
1] <<
8) |
24232 (this[offset +
2] <<
16)) +
24233 (this[offset +
3] *
0x1000000)
24236 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
24237 offset = offset
>>> 0
24238 if (!noAssert) checkOffset(offset,
4, this.length)
24240 return (this[offset] *
0x1000000) +
24241 ((this[offset +
1] <<
16) |
24242 (this[offset +
2] <<
8) |
24246 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
24247 offset = offset
>>> 0
24248 byteLength = byteLength
>>> 0
24249 if (!noAssert) checkOffset(offset, byteLength, this.length)
24251 var val = this[offset]
24254 while (++i < byteLength && (mul *=
0x100)) {
24255 val += this[offset + i] * mul
24259 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24264 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
24265 offset = offset
>>> 0
24266 byteLength = byteLength
>>> 0
24267 if (!noAssert) checkOffset(offset, byteLength, this.length)
24271 var val = this[offset + --i]
24272 while (i
> 0 && (mul *=
0x100)) {
24273 val += this[offset + --i] * mul
24277 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24282 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
24283 offset = offset
>>> 0
24284 if (!noAssert) checkOffset(offset,
1, this.length)
24285 if (!(this[offset] &
0x80)) return (this[offset])
24286 return ((
0xff - this[offset] +
1) * -
1)
24289 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
24290 offset = offset
>>> 0
24291 if (!noAssert) checkOffset(offset,
2, this.length)
24292 var val = this[offset] | (this[offset +
1] <<
8)
24293 return (val &
0x8000) ? val |
0xFFFF0000 : val
24296 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
24297 offset = offset
>>> 0
24298 if (!noAssert) checkOffset(offset,
2, this.length)
24299 var val = this[offset +
1] | (this[offset] <<
8)
24300 return (val &
0x8000) ? val |
0xFFFF0000 : val
24303 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
24304 offset = offset
>>> 0
24305 if (!noAssert) checkOffset(offset,
4, this.length)
24307 return (this[offset]) |
24308 (this[offset +
1] <<
8) |
24309 (this[offset +
2] <<
16) |
24310 (this[offset +
3] <<
24)
24313 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
24314 offset = offset
>>> 0
24315 if (!noAssert) checkOffset(offset,
4, this.length)
24317 return (this[offset] <<
24) |
24318 (this[offset +
1] <<
16) |
24319 (this[offset +
2] <<
8) |
24323 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
24324 offset = offset
>>> 0
24325 if (!noAssert) checkOffset(offset,
4, this.length)
24326 return ieee754.read(this, offset, true,
23,
4)
24329 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
24330 offset = offset
>>> 0
24331 if (!noAssert) checkOffset(offset,
4, this.length)
24332 return ieee754.read(this, offset, false,
23,
4)
24335 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
24336 offset = offset
>>> 0
24337 if (!noAssert) checkOffset(offset,
8, this.length)
24338 return ieee754.read(this, offset, true,
52,
8)
24341 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
24342 offset = offset
>>> 0
24343 if (!noAssert) checkOffset(offset,
8, this.length)
24344 return ieee754.read(this, offset, false,
52,
8)
24347 function checkInt (buf, value, offset, ext, max, min) {
24348 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
24349 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
24350 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24353 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
24355 offset = offset
>>> 0
24356 byteLength = byteLength
>>> 0
24358 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24359 checkInt(this, value, offset, byteLength, maxBytes,
0)
24364 this[offset] = value &
0xFF
24365 while (++i < byteLength && (mul *=
0x100)) {
24366 this[offset + i] = (value / mul) &
0xFF
24369 return offset + byteLength
24372 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
24374 offset = offset
>>> 0
24375 byteLength = byteLength
>>> 0
24377 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24378 checkInt(this, value, offset, byteLength, maxBytes,
0)
24381 var i = byteLength -
1
24383 this[offset + i] = value &
0xFF
24384 while (--i
>=
0 && (mul *=
0x100)) {
24385 this[offset + i] = (value / mul) &
0xFF
24388 return offset + byteLength
24391 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
24393 offset = offset
>>> 0
24394 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
24395 this[offset] = (value &
0xff)
24399 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
24401 offset = offset
>>> 0
24402 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24403 this[offset] = (value &
0xff)
24404 this[offset +
1] = (value
>>> 8)
24408 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
24410 offset = offset
>>> 0
24411 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24412 this[offset] = (value
>>> 8)
24413 this[offset +
1] = (value &
0xff)
24417 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
24419 offset = offset
>>> 0
24420 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24421 this[offset +
3] = (value
>>> 24)
24422 this[offset +
2] = (value
>>> 16)
24423 this[offset +
1] = (value
>>> 8)
24424 this[offset] = (value &
0xff)
24428 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
24430 offset = offset
>>> 0
24431 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24432 this[offset] = (value
>>> 24)
24433 this[offset +
1] = (value
>>> 16)
24434 this[offset +
2] = (value
>>> 8)
24435 this[offset +
3] = (value &
0xff)
24439 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
24441 offset = offset
>>> 0
24443 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24445 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24451 this[offset] = value &
0xFF
24452 while (++i < byteLength && (mul *=
0x100)) {
24453 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
24456 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24459 return offset + byteLength
24462 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
24464 offset = offset
>>> 0
24466 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24468 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24471 var i = byteLength -
1
24474 this[offset + i] = value &
0xFF
24475 while (--i
>=
0 && (mul *=
0x100)) {
24476 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
24479 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24482 return offset + byteLength
24485 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
24487 offset = offset
>>> 0
24488 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
24489 if (value <
0) value =
0xff + value +
1
24490 this[offset] = (value &
0xff)
24494 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
24496 offset = offset
>>> 0
24497 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24498 this[offset] = (value &
0xff)
24499 this[offset +
1] = (value
>>> 8)
24503 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
24505 offset = offset
>>> 0
24506 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24507 this[offset] = (value
>>> 8)
24508 this[offset +
1] = (value &
0xff)
24512 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
24514 offset = offset
>>> 0
24515 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24516 this[offset] = (value &
0xff)
24517 this[offset +
1] = (value
>>> 8)
24518 this[offset +
2] = (value
>>> 16)
24519 this[offset +
3] = (value
>>> 24)
24523 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
24525 offset = offset
>>> 0
24526 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24527 if (value <
0) value =
0xffffffff + value +
1
24528 this[offset] = (value
>>> 24)
24529 this[offset +
1] = (value
>>> 16)
24530 this[offset +
2] = (value
>>> 8)
24531 this[offset +
3] = (value &
0xff)
24535 function checkIEEE754 (buf, value, offset, ext, max, min) {
24536 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24537 if (offset <
0) throw new RangeError('Index out of range')
24540 function writeFloat (buf, value, offset, littleEndian, noAssert) {
24542 offset = offset
>>> 0
24544 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
24546 ieee754.write(buf, value, offset, littleEndian,
23,
4)
24550 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
24551 return writeFloat(this, value, offset, true, noAssert)
24554 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
24555 return writeFloat(this, value, offset, false, noAssert)
24558 function writeDouble (buf, value, offset, littleEndian, noAssert) {
24560 offset = offset
>>> 0
24562 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
24564 ieee754.write(buf, value, offset, littleEndian,
52,
8)
24568 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
24569 return writeDouble(this, value, offset, true, noAssert)
24572 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
24573 return writeDouble(this, value, offset, false, noAssert)
24576 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
24577 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
24578 if (!start) start =
0
24579 if (!end && end !==
0) end = this.length
24580 if (targetStart
>= target.length) targetStart = target.length
24581 if (!targetStart) targetStart =
0
24582 if (end
> 0 && end < start) end = start
24584 // Copy
0 bytes; we're done
24585 if (end === start) return
0
24586 if (target.length ===
0 || this.length ===
0) return
0
24588 // Fatal error conditions
24589 if (targetStart <
0) {
24590 throw new RangeError('targetStart out of bounds')
24592 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
24593 if (end <
0) throw new RangeError('sourceEnd out of bounds')
24596 if (end
> this.length) end = this.length
24597 if (target.length - targetStart < end - start) {
24598 end = target.length - targetStart + start
24601 var len = end - start
24604 if (this === target && start < targetStart && targetStart < end) {
24605 // descending copy from end
24606 for (i = len -
1; i
>=
0; --i) {
24607 target[i + targetStart] = this[i + start]
24609 } else if (len <
1000) {
24610 // ascending copy from start
24611 for (i =
0; i < len; ++i) {
24612 target[i + targetStart] = this[i + start]
24615 Uint8Array.prototype.set.call(
24617 this.subarray(start, start + len),
24626 // buffer.fill(number[, offset[, end]])
24627 // buffer.fill(buffer[, offset[, end]])
24628 // buffer.fill(string[, offset[, end]][, encoding])
24629 Buffer.prototype.fill = function fill (val, start, end, encoding) {
24630 // Handle string cases:
24631 if (typeof val === 'string') {
24632 if (typeof start === 'string') {
24636 } else if (typeof end === 'string') {
24640 if (val.length ===
1) {
24641 var code = val.charCodeAt(
0)
24646 if (encoding !== undefined && typeof encoding !== 'string') {
24647 throw new TypeError('encoding must be a string')
24649 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
24650 throw new TypeError('Unknown encoding: ' + encoding)
24652 } else if (typeof val === 'number') {
24656 // Invalid ranges are not set to a default, so can range check early.
24657 if (start <
0 || this.length < start || this.length < end) {
24658 throw new RangeError('Out of range index')
24661 if (end <= start) {
24665 start = start
>>> 0
24666 end = end === undefined ? this.length : end
>>> 0
24671 if (typeof val === 'number') {
24672 for (i = start; i < end; ++i) {
24676 var bytes = Buffer.isBuffer(val)
24678 : new Buffer(val, encoding)
24679 var len = bytes.length
24680 for (i =
0; i < end - start; ++i) {
24681 this[i + start] = bytes[i % len]
24688 // HELPER FUNCTIONS
24689 // ================
24691 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
24693 function base64clean (str) {
24694 // Node strips out invalid characters like \n and \t from the string, base64-js does not
24695 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
24696 // Node converts strings with length <
2 to ''
24697 if (str.length <
2) return ''
24698 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
24699 while (str.length %
4 !==
0) {
24705 function stringtrim (str) {
24706 if (str.trim) return str.trim()
24707 return str.replace(/^\s+|\s+$/g, '')
24710 function toHex (n) {
24711 if (n <
16) return '
0' + n.toString(
16)
24712 return n.toString(
16)
24715 function utf8ToBytes (string, units) {
24716 units = units || Infinity
24718 var length = string.length
24719 var leadSurrogate = null
24722 for (var i =
0; i < length; ++i) {
24723 codePoint = string.charCodeAt(i)
24725 // is surrogate component
24726 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
24727 // last char was a lead
24728 if (!leadSurrogate) {
24730 if (codePoint
> 0xDBFF) {
24731 // unexpected trail
24732 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24734 } else if (i +
1 === length) {
24736 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24741 leadSurrogate = codePoint
24746 //
2 leads in a row
24747 if (codePoint <
0xDC00) {
24748 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24749 leadSurrogate = codePoint
24753 // valid surrogate pair
24754 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
24755 } else if (leadSurrogate) {
24756 // valid bmp char, but last char was a lead
24757 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24760 leadSurrogate = null
24763 if (codePoint <
0x80) {
24764 if ((units -=
1) <
0) break
24765 bytes.push(codePoint)
24766 } else if (codePoint <
0x800) {
24767 if ((units -=
2) <
0) break
24769 codePoint
>> 0x6 |
0xC0,
24770 codePoint &
0x3F |
0x80
24772 } else if (codePoint <
0x10000) {
24773 if ((units -=
3) <
0) break
24775 codePoint
>> 0xC |
0xE0,
24776 codePoint
>> 0x6 &
0x3F |
0x80,
24777 codePoint &
0x3F |
0x80
24779 } else if (codePoint <
0x110000) {
24780 if ((units -=
4) <
0) break
24782 codePoint
>> 0x12 |
0xF0,
24783 codePoint
>> 0xC &
0x3F |
0x80,
24784 codePoint
>> 0x6 &
0x3F |
0x80,
24785 codePoint &
0x3F |
0x80
24788 throw new Error('Invalid code point')
24795 function asciiToBytes (str) {
24797 for (var i =
0; i < str.length; ++i) {
24798 // Node's code seems to be doing this and not &
0x7F..
24799 byteArray.push(str.charCodeAt(i) &
0xFF)
24804 function utf16leToBytes (str, units) {
24807 for (var i =
0; i < str.length; ++i) {
24808 if ((units -=
2) <
0) break
24810 c = str.charCodeAt(i)
24820 function base64ToBytes (str) {
24821 return base64.toByteArray(base64clean(str))
24824 function blitBuffer (src, dst, offset, length) {
24825 for (var i =
0; i < length; ++i) {
24826 if ((i + offset
>= dst.length) || (i
>= src.length)) break
24827 dst[i + offset] = src[i]
24832 function isnan (val) {
24833 return val !== val // eslint-disable-line no-self-compare
24836 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
24837 (function (Buffer){
24838 // Copyright Joyent, Inc. and other Node contributors.
24840 // Permission is hereby granted, free of charge, to any person obtaining a
24841 // copy of this software and associated documentation files (the
24842 // "Software"), to deal in the Software without restriction, including
24843 // without limitation the rights to use, copy, modify, merge, publish,
24844 // distribute, sublicense, and/or sell copies of the Software, and to permit
24845 // persons to whom the Software is furnished to do so, subject to the
24846 // following conditions:
24848 // The above copyright notice and this permission notice shall be included
24849 // in all copies or substantial portions of the Software.
24851 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24852 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24853 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24854 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24855 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24856 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24857 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24859 // NOTE: These type checking functions intentionally don't use `instanceof`
24860 // because it is fragile and can be easily faked with `Object.create()`.
24862 function isArray(arg) {
24863 if (Array.isArray) {
24864 return Array.isArray(arg);
24866 return objectToString(arg) === '[object Array]';
24868 exports.isArray = isArray;
24870 function isBoolean(arg) {
24871 return typeof arg === 'boolean';
24873 exports.isBoolean = isBoolean;
24875 function isNull(arg) {
24876 return arg === null;
24878 exports.isNull = isNull;
24880 function isNullOrUndefined(arg) {
24881 return arg == null;
24883 exports.isNullOrUndefined = isNullOrUndefined;
24885 function isNumber(arg) {
24886 return typeof arg === 'number';
24888 exports.isNumber = isNumber;
24890 function isString(arg) {
24891 return typeof arg === 'string';
24893 exports.isString = isString;
24895 function isSymbol(arg) {
24896 return typeof arg === 'symbol';
24898 exports.isSymbol = isSymbol;
24900 function isUndefined(arg) {
24901 return arg === void
0;
24903 exports.isUndefined = isUndefined;
24905 function isRegExp(re) {
24906 return objectToString(re) === '[object RegExp]';
24908 exports.isRegExp = isRegExp;
24910 function isObject(arg) {
24911 return typeof arg === 'object' && arg !== null;
24913 exports.isObject = isObject;
24915 function isDate(d) {
24916 return objectToString(d) === '[object Date]';
24918 exports.isDate = isDate;
24920 function isError(e) {
24921 return (objectToString(e) === '[object Error]' || e instanceof Error);
24923 exports.isError = isError;
24925 function isFunction(arg) {
24926 return typeof arg === 'function';
24928 exports.isFunction = isFunction;
24930 function isPrimitive(arg) {
24931 return arg === null ||
24932 typeof arg === 'boolean' ||
24933 typeof arg === 'number' ||
24934 typeof arg === 'string' ||
24935 typeof arg === 'symbol' || // ES6 symbol
24936 typeof arg === 'undefined';
24938 exports.isPrimitive = isPrimitive;
24940 exports.isBuffer = Buffer.isBuffer;
24942 function objectToString(o) {
24943 return Object.prototype.toString.call(o);
24946 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
24947 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
24948 // Copyright Joyent, Inc. and other Node contributors.
24950 // Permission is hereby granted, free of charge, to any person obtaining a
24951 // copy of this software and associated documentation files (the
24952 // "Software"), to deal in the Software without restriction, including
24953 // without limitation the rights to use, copy, modify, merge, publish,
24954 // distribute, sublicense, and/or sell copies of the Software, and to permit
24955 // persons to whom the Software is furnished to do so, subject to the
24956 // following conditions:
24958 // The above copyright notice and this permission notice shall be included
24959 // in all copies or substantial portions of the Software.
24961 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24962 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24963 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24964 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24965 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24966 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24967 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24969 function EventEmitter() {
24970 this._events = this._events || {};
24971 this._maxListeners = this._maxListeners || undefined;
24973 module.exports = EventEmitter;
24975 // Backwards-compat with node
0.10.x
24976 EventEmitter.EventEmitter = EventEmitter;
24978 EventEmitter.prototype._events = undefined;
24979 EventEmitter.prototype._maxListeners = undefined;
24981 // By default EventEmitters will print a warning if more than
10 listeners are
24982 // added to it. This is a useful default which helps finding memory leaks.
24983 EventEmitter.defaultMaxListeners =
10;
24985 // Obviously not all Emitters should be limited to
10. This function allows
24986 // that to be increased. Set to zero for unlimited.
24987 EventEmitter.prototype.setMaxListeners = function(n) {
24988 if (!isNumber(n) || n <
0 || isNaN(n))
24989 throw TypeError('n must be a positive number');
24990 this._maxListeners = n;
24994 EventEmitter.prototype.emit = function(type) {
24995 var er, handler, len, args, i, listeners;
25000 // If there is no 'error' event listener then throw.
25001 if (type === 'error') {
25002 if (!this._events.error ||
25003 (isObject(this._events.error) && !this._events.error.length)) {
25005 if (er instanceof Error) {
25006 throw er; // Unhandled 'error' event
25008 // At least give some kind of context to the user
25009 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
25016 handler = this._events[type];
25018 if (isUndefined(handler))
25021 if (isFunction(handler)) {
25022 switch (arguments.length) {
25025 handler.call(this);
25028 handler.call(this, arguments[
1]);
25031 handler.call(this, arguments[
1], arguments[
2]);
25035 args = Array.prototype.slice.call(arguments,
1);
25036 handler.apply(this, args);
25038 } else if (isObject(handler)) {
25039 args = Array.prototype.slice.call(arguments,
1);
25040 listeners = handler.slice();
25041 len = listeners.length;
25042 for (i =
0; i < len; i++)
25043 listeners[i].apply(this, args);
25049 EventEmitter.prototype.addListener = function(type, listener) {
25052 if (!isFunction(listener))
25053 throw TypeError('listener must be a function');
25058 // To avoid recursion in the case that type === "newListener"! Before
25059 // adding it to the listeners, first emit "newListener".
25060 if (this._events.newListener)
25061 this.emit('newListener', type,
25062 isFunction(listener.listener) ?
25063 listener.listener : listener);
25065 if (!this._events[type])
25066 // Optimize the case of one listener. Don't need the extra array object.
25067 this._events[type] = listener;
25068 else if (isObject(this._events[type]))
25069 // If we've already got an array, just append.
25070 this._events[type].push(listener);
25072 // Adding the second element, need to change to array.
25073 this._events[type] = [this._events[type], listener];
25075 // Check for listener leak
25076 if (isObject(this._events[type]) && !this._events[type].warned) {
25077 if (!isUndefined(this._maxListeners)) {
25078 m = this._maxListeners;
25080 m = EventEmitter.defaultMaxListeners;
25083 if (m && m
> 0 && this._events[type].length
> m) {
25084 this._events[type].warned = true;
25085 console.error('(node) warning: possible EventEmitter memory ' +
25086 'leak detected. %d listeners added. ' +
25087 'Use emitter.setMaxListeners() to increase limit.',
25088 this._events[type].length);
25089 if (typeof console.trace === 'function') {
25090 // not supported in IE
10
25099 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
25101 EventEmitter.prototype.once = function(type, listener) {
25102 if (!isFunction(listener))
25103 throw TypeError('listener must be a function');
25108 this.removeListener(type, g);
25112 listener.apply(this, arguments);
25116 g.listener = listener;
25122 // emits a 'removeListener' event iff the listener was removed
25123 EventEmitter.prototype.removeListener = function(type, listener) {
25124 var list, position, length, i;
25126 if (!isFunction(listener))
25127 throw TypeError('listener must be a function');
25129 if (!this._events || !this._events[type])
25132 list = this._events[type];
25133 length = list.length;
25136 if (list === listener ||
25137 (isFunction(list.listener) && list.listener === listener)) {
25138 delete this._events[type];
25139 if (this._events.removeListener)
25140 this.emit('removeListener', type, listener);
25142 } else if (isObject(list)) {
25143 for (i = length; i--
> 0;) {
25144 if (list[i] === listener ||
25145 (list[i].listener && list[i].listener === listener)) {
25154 if (list.length ===
1) {
25156 delete this._events[type];
25158 list.splice(position,
1);
25161 if (this._events.removeListener)
25162 this.emit('removeListener', type, listener);
25168 EventEmitter.prototype.removeAllListeners = function(type) {
25169 var key, listeners;
25174 // not listening for removeListener, no need to emit
25175 if (!this._events.removeListener) {
25176 if (arguments.length ===
0)
25178 else if (this._events[type])
25179 delete this._events[type];
25183 // emit removeListener for all listeners on all events
25184 if (arguments.length ===
0) {
25185 for (key in this._events) {
25186 if (key === 'removeListener') continue;
25187 this.removeAllListeners(key);
25189 this.removeAllListeners('removeListener');
25194 listeners = this._events[type];
25196 if (isFunction(listeners)) {
25197 this.removeListener(type, listeners);
25198 } else if (listeners) {
25200 while (listeners.length)
25201 this.removeListener(type, listeners[listeners.length -
1]);
25203 delete this._events[type];
25208 EventEmitter.prototype.listeners = function(type) {
25210 if (!this._events || !this._events[type])
25212 else if (isFunction(this._events[type]))
25213 ret = [this._events[type]];
25215 ret = this._events[type].slice();
25219 EventEmitter.prototype.listenerCount = function(type) {
25220 if (this._events) {
25221 var evlistener = this._events[type];
25223 if (isFunction(evlistener))
25225 else if (evlistener)
25226 return evlistener.length;
25231 EventEmitter.listenerCount = function(emitter, type) {
25232 return emitter.listenerCount(type);
25235 function isFunction(arg) {
25236 return typeof arg === 'function';
25239 function isNumber(arg) {
25240 return typeof arg === 'number';
25243 function isObject(arg) {
25244 return typeof arg === 'object' && arg !== null;
25247 function isUndefined(arg) {
25248 return arg === void
0;
25251 },{}],
8:[function(require,module,exports){
25252 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
25254 var eLen = nBytes *
8 - mLen -
1
25255 var eMax = (
1 << eLen) -
1
25256 var eBias = eMax
>> 1
25258 var i = isLE ? (nBytes -
1) :
0
25259 var d = isLE ? -
1 :
1
25260 var s = buffer[offset + i]
25264 e = s & ((
1 << (-nBits)) -
1)
25267 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25269 m = e & ((
1 << (-nBits)) -
1)
25272 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25276 } else if (e === eMax) {
25277 return m ? NaN : ((s ? -
1 :
1) * Infinity)
25279 m = m + Math.pow(
2, mLen)
25282 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
25285 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
25287 var eLen = nBytes *
8 - mLen -
1
25288 var eMax = (
1 << eLen) -
1
25289 var eBias = eMax
>> 1
25290 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
25291 var i = isLE ?
0 : (nBytes -
1)
25292 var d = isLE ?
1 : -
1
25293 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
25295 value = Math.abs(value)
25297 if (isNaN(value) || value === Infinity) {
25298 m = isNaN(value) ?
1 :
0
25301 e = Math.floor(Math.log(value) / Math.LN2)
25302 if (value * (c = Math.pow(
2, -e)) <
1) {
25306 if (e + eBias
>=
1) {
25309 value += rt * Math.pow(
2,
1 - eBias)
25311 if (value * c
>=
2) {
25316 if (e + eBias
>= eMax) {
25319 } else if (e + eBias
>=
1) {
25320 m = (value * c -
1) * Math.pow(
2, mLen)
25323 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
25328 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
25330 e = (e << mLen) | m
25332 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
25334 buffer[offset + i - d] |= s *
128
25337 },{}],
9:[function(require,module,exports){
25338 if (typeof Object.create === 'function') {
25339 // implementation from standard node.js 'util' module
25340 module.exports = function inherits(ctor, superCtor) {
25341 ctor.super_ = superCtor
25342 ctor.prototype = Object.create(superCtor.prototype, {
25352 // old school shim for old browsers
25353 module.exports = function inherits(ctor, superCtor) {
25354 ctor.super_ = superCtor
25355 var TempCtor = function () {}
25356 TempCtor.prototype = superCtor.prototype
25357 ctor.prototype = new TempCtor()
25358 ctor.prototype.constructor = ctor
25362 },{}],
10:[function(require,module,exports){
25364 * Determine if an object is a Buffer
25366 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
25370 // The _isBuffer check is for Safari
5-
7 support, because it's missing
25371 // Object.prototype.constructor. Remove this eventually
25372 module.exports = function (obj) {
25373 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
25376 function isBuffer (obj) {
25377 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
25380 // For Node v0.10 support. Remove this eventually.
25381 function isSlowBuffer (obj) {
25382 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
25385 },{}],
11:[function(require,module,exports){
25386 var toString = {}.toString;
25388 module.exports = Array.isArray || function (arr) {
25389 return toString.call(arr) == '[object Array]';
25392 },{}],
12:[function(require,module,exports){
25393 (function (process){
25396 if (!process.version ||
25397 process.version.indexOf('v0.') ===
0 ||
25398 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
25399 module.exports = nextTick;
25401 module.exports = process.nextTick;
25404 function nextTick(fn, arg1, arg2, arg3) {
25405 if (typeof fn !== 'function') {
25406 throw new TypeError('"callback" argument must be a function');
25408 var len = arguments.length;
25413 return process.nextTick(fn);
25415 return process.nextTick(function afterTickOne() {
25416 fn.call(null, arg1);
25419 return process.nextTick(function afterTickTwo() {
25420 fn.call(null, arg1, arg2);
25423 return process.nextTick(function afterTickThree() {
25424 fn.call(null, arg1, arg2, arg3);
25427 args = new Array(len -
1);
25429 while (i < args.length) {
25430 args[i++] = arguments[i];
25432 return process.nextTick(function afterTick() {
25433 fn.apply(null, args);
25438 }).call(this,require('_process'))
25439 },{"_process":
13}],
13:[function(require,module,exports){
25440 // shim for using process in browser
25441 var process = module.exports = {};
25443 // cached from whatever global is present so that test runners that stub it
25444 // don't break things. But we need to wrap it in a try catch in case it is
25445 // wrapped in strict mode code which doesn't define any globals. It's inside a
25446 // function because try/catches deoptimize in certain engines.
25448 var cachedSetTimeout;
25449 var cachedClearTimeout;
25451 function defaultSetTimout() {
25452 throw new Error('setTimeout has not been defined');
25454 function defaultClearTimeout () {
25455 throw new Error('clearTimeout has not been defined');
25459 if (typeof setTimeout === 'function') {
25460 cachedSetTimeout = setTimeout;
25462 cachedSetTimeout = defaultSetTimout;
25465 cachedSetTimeout = defaultSetTimout;
25468 if (typeof clearTimeout === 'function') {
25469 cachedClearTimeout = clearTimeout;
25471 cachedClearTimeout = defaultClearTimeout;
25474 cachedClearTimeout = defaultClearTimeout;
25477 function runTimeout(fun) {
25478 if (cachedSetTimeout === setTimeout) {
25479 //normal enviroments in sane situations
25480 return setTimeout(fun,
0);
25482 // if setTimeout wasn't available but was latter defined
25483 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
25484 cachedSetTimeout = setTimeout;
25485 return setTimeout(fun,
0);
25488 // when when somebody has screwed with setTimeout but no I.E. maddness
25489 return cachedSetTimeout(fun,
0);
25492 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25493 return cachedSetTimeout.call(null, fun,
0);
25495 // 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
25496 return cachedSetTimeout.call(this, fun,
0);
25502 function runClearTimeout(marker) {
25503 if (cachedClearTimeout === clearTimeout) {
25504 //normal enviroments in sane situations
25505 return clearTimeout(marker);
25507 // if clearTimeout wasn't available but was latter defined
25508 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
25509 cachedClearTimeout = clearTimeout;
25510 return clearTimeout(marker);
25513 // when when somebody has screwed with setTimeout but no I.E. maddness
25514 return cachedClearTimeout(marker);
25517 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25518 return cachedClearTimeout.call(null, marker);
25520 // 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.
25521 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
25522 return cachedClearTimeout.call(this, marker);
25530 var draining = false;
25532 var queueIndex = -
1;
25534 function cleanUpNextTick() {
25535 if (!draining || !currentQueue) {
25539 if (currentQueue.length) {
25540 queue = currentQueue.concat(queue);
25544 if (queue.length) {
25549 function drainQueue() {
25553 var timeout = runTimeout(cleanUpNextTick);
25556 var len = queue.length;
25558 currentQueue = queue;
25560 while (++queueIndex < len) {
25561 if (currentQueue) {
25562 currentQueue[queueIndex].run();
25566 len = queue.length;
25568 currentQueue = null;
25570 runClearTimeout(timeout);
25573 process.nextTick = function (fun) {
25574 var args = new Array(arguments.length -
1);
25575 if (arguments.length
> 1) {
25576 for (var i =
1; i < arguments.length; i++) {
25577 args[i -
1] = arguments[i];
25580 queue.push(new Item(fun, args));
25581 if (queue.length ===
1 && !draining) {
25582 runTimeout(drainQueue);
25586 // v8 likes predictible objects
25587 function Item(fun, array) {
25589 this.array = array;
25591 Item.prototype.run = function () {
25592 this.fun.apply(null, this.array);
25594 process.title = 'browser';
25595 process.browser = true;
25598 process.version = ''; // empty string to avoid regexp issues
25599 process.versions = {};
25604 process.addListener = noop;
25605 process.once = noop;
25606 process.off = noop;
25607 process.removeListener = noop;
25608 process.removeAllListeners = noop;
25609 process.emit = noop;
25611 process.binding = function (name) {
25612 throw new Error('process.binding is not supported');
25615 process.cwd = function () { return '/' };
25616 process.chdir = function (dir) {
25617 throw new Error('process.chdir is not supported');
25619 process.umask = function() { return
0; };
25621 },{}],
14:[function(require,module,exports){
25622 module.exports = require(
"./lib/_stream_duplex.js")
25624 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
25625 // a duplex stream is just a stream that is both readable and writable.
25626 // Since JS doesn't have multiple prototypal inheritance, this class
25627 // prototypally inherits from Readable, and then parasitically from
25634 var objectKeys = Object.keys || function (obj) {
25636 for (var key in obj) {
25642 module.exports = Duplex;
25645 var processNextTick = require('process-nextick-args');
25649 var util = require('core-util-is');
25650 util.inherits = require('inherits');
25653 var Readable = require('./_stream_readable');
25654 var Writable = require('./_stream_writable');
25656 util.inherits(Duplex, Readable);
25658 var keys = objectKeys(Writable.prototype);
25659 for (var v =
0; v < keys.length; v++) {
25660 var method = keys[v];
25661 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
25664 function Duplex(options) {
25665 if (!(this instanceof Duplex)) return new Duplex(options);
25667 Readable.call(this, options);
25668 Writable.call(this, options);
25670 if (options && options.readable === false) this.readable = false;
25672 if (options && options.writable === false) this.writable = false;
25674 this.allowHalfOpen = true;
25675 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
25677 this.once('end', onend);
25680 // the no-half-open enforcer
25682 // if we allow half-open state, or if the writable side ended,
25684 if (this.allowHalfOpen || this._writableState.ended) return;
25686 // no more data can be written.
25687 // But allow more writes to happen in this tick.
25688 processNextTick(onEndNT, this);
25691 function onEndNT(self) {
25695 function forEach(xs, f) {
25696 for (var i =
0, l = xs.length; i < l; i++) {
25700 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
25701 // a passthrough stream.
25702 // basically just the most minimal sort of Transform stream.
25703 // Every written chunk gets output as-is.
25707 module.exports = PassThrough;
25709 var Transform = require('./_stream_transform');
25712 var util = require('core-util-is');
25713 util.inherits = require('inherits');
25716 util.inherits(PassThrough, Transform);
25718 function PassThrough(options) {
25719 if (!(this instanceof PassThrough)) return new PassThrough(options);
25721 Transform.call(this, options);
25724 PassThrough.prototype._transform = function (chunk, encoding, cb) {
25727 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
25728 (function (process){
25731 module.exports = Readable;
25734 var processNextTick = require('process-nextick-args');
25738 var isArray = require('isarray');
25745 Readable.ReadableState = ReadableState;
25748 var EE = require('events').EventEmitter;
25750 var EElistenerCount = function (emitter, type) {
25751 return emitter.listeners(type).length;
25759 Stream = require('st' + 'ream');
25760 } catch (_) {} finally {
25761 if (!Stream) Stream = require('events').EventEmitter;
25766 var Buffer = require('buffer').Buffer;
25768 var bufferShim = require('buffer-shims');
25772 var util = require('core-util-is');
25773 util.inherits = require('inherits');
25777 var debugUtil = require('util');
25778 var debug = void
0;
25779 if (debugUtil && debugUtil.debuglog) {
25780 debug = debugUtil.debuglog('stream');
25782 debug = function () {};
25786 var BufferList = require('./internal/streams/BufferList');
25789 util.inherits(Readable, Stream);
25791 function prependListener(emitter, event, fn) {
25792 // Sadly this is not cacheable as some libraries bundle their own
25793 // event emitter implementation with them.
25794 if (typeof emitter.prependListener === 'function') {
25795 return emitter.prependListener(event, fn);
25797 // This is a hack to make sure that our error handler is attached before any
25798 // userland ones. NEVER DO THIS. This is here only because this code needs
25799 // to continue to work with older versions of Node.js that do not include
25800 // the prependListener() method. The goal is to eventually remove this hack.
25801 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]];
25805 function ReadableState(options, stream) {
25806 Duplex = Duplex || require('./_stream_duplex');
25808 options = options || {};
25810 // object stream flag. Used to make read(n) ignore n and to
25811 // make all the buffer merging and length checks go away
25812 this.objectMode = !!options.objectMode;
25814 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
25816 // the point at which it stops calling _read() to fill the buffer
25817 // Note:
0 is a valid value, means "don't call _read preemptively ever"
25818 var hwm = options.highWaterMark;
25819 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
25820 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
25823 this.highWaterMark = ~ ~this.highWaterMark;
25825 // A linked list is used to store data chunks instead of an array because the
25826 // linked list can remove elements from the beginning faster than
25828 this.buffer = new BufferList();
25831 this.pipesCount =
0;
25832 this.flowing = null;
25833 this.ended = false;
25834 this.endEmitted = false;
25835 this.reading = false;
25837 // a flag to be able to tell if the onwrite cb is called immediately,
25838 // or on a later tick. We set this to true at first, because any
25839 // actions that shouldn't happen until "later" should generally also
25840 // not happen before the first write call.
25843 // whenever we return null, then we set a flag to say
25844 // that we're awaiting a 'readable' event emission.
25845 this.needReadable = false;
25846 this.emittedReadable = false;
25847 this.readableListening = false;
25848 this.resumeScheduled = false;
25850 // Crypto is kind of old and crusty. Historically, its default string
25851 // encoding is 'binary' so we have to make this configurable.
25852 // Everything else in the universe uses 'utf8', though.
25853 this.defaultEncoding = options.defaultEncoding || 'utf8';
25855 // when piping, we only care about 'readable' events that happen
25856 // after read()ing all the bytes and not getting any pushback.
25857 this.ranOut = false;
25859 // the number of writers that are awaiting a drain event in .pipe()s
25860 this.awaitDrain =
0;
25862 // if true, a maybeReadMore has been scheduled
25863 this.readingMore = false;
25865 this.decoder = null;
25866 this.encoding = null;
25867 if (options.encoding) {
25868 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25869 this.decoder = new StringDecoder(options.encoding);
25870 this.encoding = options.encoding;
25874 function Readable(options) {
25875 Duplex = Duplex || require('./_stream_duplex');
25877 if (!(this instanceof Readable)) return new Readable(options);
25879 this._readableState = new ReadableState(options, this);
25882 this.readable = true;
25884 if (options && typeof options.read === 'function') this._read = options.read;
25889 // Manually shove something into the read() buffer.
25890 // This returns true if the highWaterMark has not been hit yet,
25891 // similar to how Writable.write() returns true if you should
25892 // write() some more.
25893 Readable.prototype.push = function (chunk, encoding) {
25894 var state = this._readableState;
25896 if (!state.objectMode && typeof chunk === 'string') {
25897 encoding = encoding || state.defaultEncoding;
25898 if (encoding !== state.encoding) {
25899 chunk = bufferShim.from(chunk, encoding);
25904 return readableAddChunk(this, state, chunk, encoding, false);
25907 // Unshift should *always* be something directly out of read()
25908 Readable.prototype.unshift = function (chunk) {
25909 var state = this._readableState;
25910 return readableAddChunk(this, state, chunk, '', true);
25913 Readable.prototype.isPaused = function () {
25914 return this._readableState.flowing === false;
25917 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
25918 var er = chunkInvalid(state, chunk);
25920 stream.emit('error', er);
25921 } else if (chunk === null) {
25922 state.reading = false;
25923 onEofChunk(stream, state);
25924 } else if (state.objectMode || chunk && chunk.length
> 0) {
25925 if (state.ended && !addToFront) {
25926 var e = new Error('stream.push() after EOF');
25927 stream.emit('error', e);
25928 } else if (state.endEmitted && addToFront) {
25929 var _e = new Error('stream.unshift() after end event');
25930 stream.emit('error', _e);
25933 if (state.decoder && !addToFront && !encoding) {
25934 chunk = state.decoder.write(chunk);
25935 skipAdd = !state.objectMode && chunk.length ===
0;
25938 if (!addToFront) state.reading = false;
25940 // Don't add to the buffer if we've decoded to an empty string chunk and
25941 // we're not in object mode
25943 // if we want the data now, just emit it.
25944 if (state.flowing && state.length ===
0 && !state.sync) {
25945 stream.emit('data', chunk);
25948 // update the buffer info.
25949 state.length += state.objectMode ?
1 : chunk.length;
25950 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
25952 if (state.needReadable) emitReadable(stream);
25956 maybeReadMore(stream, state);
25958 } else if (!addToFront) {
25959 state.reading = false;
25962 return needMoreData(state);
25965 // if it's past the high water mark, we can push in some more.
25966 // Also, if we have no data yet, we can stand some
25967 // more bytes. This is to work around cases where hwm=
0,
25968 // such as the repl. Also, if the push() triggered a
25969 // readable event, and the user called read(largeNumber) such that
25970 // needReadable was set, then we ought to push more, so that another
25971 // 'readable' event will be triggered.
25972 function needMoreData(state) {
25973 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
25976 // backwards compatibility.
25977 Readable.prototype.setEncoding = function (enc) {
25978 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25979 this._readableState.decoder = new StringDecoder(enc);
25980 this._readableState.encoding = enc;
25984 // Don't raise the hwm
> 8MB
25985 var MAX_HWM =
0x800000;
25986 function computeNewHighWaterMark(n) {
25987 if (n
>= MAX_HWM) {
25990 // Get the next highest power of
2 to prevent increasing hwm excessively in
26003 // This function is designed to be inlinable, so please take care when making
26004 // changes to the function body.
26005 function howMuchToRead(n, state) {
26006 if (n <=
0 || state.length ===
0 && state.ended) return
0;
26007 if (state.objectMode) return
1;
26009 // Only flow one buffer at a time
26010 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
26012 // If we're asking for more than the current hwm, then raise the hwm.
26013 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
26014 if (n <= state.length) return n;
26015 // Don't have enough
26016 if (!state.ended) {
26017 state.needReadable = true;
26020 return state.length;
26023 // you can override either this method, or the async _read(n) below.
26024 Readable.prototype.read = function (n) {
26026 n = parseInt(n,
10);
26027 var state = this._readableState;
26030 if (n !==
0) state.emittedReadable = false;
26032 // if we're doing read(
0) to trigger a readable event, but we
26033 // already have a bunch of data in the buffer, then just trigger
26034 // the 'readable' event and move on.
26035 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
26036 debug('read: emitReadable', state.length, state.ended);
26037 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
26041 n = howMuchToRead(n, state);
26043 // if we've ended, and we're now clear, then finish it up.
26044 if (n ===
0 && state.ended) {
26045 if (state.length ===
0) endReadable(this);
26049 // All the actual chunk generation logic needs to be
26050 // *below* the call to _read. The reason is that in certain
26051 // synthetic stream cases, such as passthrough streams, _read
26052 // may be a completely synchronous operation which may change
26053 // the state of the read buffer, providing enough data when
26054 // before there was *not* enough.
26056 // So, the steps are:
26057 //
1. Figure out what the state of things will be after we do
26058 // a read from the buffer.
26060 //
2. If that resulting state will trigger a _read, then call _read.
26061 // Note that this may be asynchronous, or synchronous. Yes, it is
26062 // deeply ugly to write APIs this way, but that still doesn't mean
26063 // that the Readable class should behave improperly, as streams are
26064 // designed to be sync/async agnostic.
26065 // Take note if the _read call is sync or async (ie, if the read call
26066 // has returned yet), so that we know whether or not it's safe to emit
26069 //
3. Actually pull the requested chunks out of the buffer and return.
26071 // if we need a readable event, then we need to do some reading.
26072 var doRead = state.needReadable;
26073 debug('need readable', doRead);
26075 // if we currently have less than the highWaterMark, then also read some
26076 if (state.length ===
0 || state.length - n < state.highWaterMark) {
26078 debug('length less than watermark', doRead);
26081 // however, if we've ended, then there's no point, and if we're already
26082 // reading, then it's unnecessary.
26083 if (state.ended || state.reading) {
26085 debug('reading or ended', doRead);
26086 } else if (doRead) {
26088 state.reading = true;
26090 // if the length is currently zero, then we *need* a readable event.
26091 if (state.length ===
0) state.needReadable = true;
26092 // call internal read method
26093 this._read(state.highWaterMark);
26094 state.sync = false;
26095 // If _read pushed data synchronously, then `reading` will be false,
26096 // and we need to re-evaluate how much data we can return to the user.
26097 if (!state.reading) n = howMuchToRead(nOrig, state);
26101 if (n
> 0) ret = fromList(n, state);else ret = null;
26103 if (ret === null) {
26104 state.needReadable = true;
26110 if (state.length ===
0) {
26111 // If we have nothing in the buffer, then we want to know
26112 // as soon as we *do* get something into the buffer.
26113 if (!state.ended) state.needReadable = true;
26115 // If we tried to read() past the EOF, then emit end on the next tick.
26116 if (nOrig !== n && state.ended) endReadable(this);
26119 if (ret !== null) this.emit('data', ret);
26124 function chunkInvalid(state, chunk) {
26126 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
26127 er = new TypeError('Invalid non-string/buffer chunk');
26132 function onEofChunk(stream, state) {
26133 if (state.ended) return;
26134 if (state.decoder) {
26135 var chunk = state.decoder.end();
26136 if (chunk && chunk.length) {
26137 state.buffer.push(chunk);
26138 state.length += state.objectMode ?
1 : chunk.length;
26141 state.ended = true;
26143 // emit 'readable' now to make sure it gets picked up.
26144 emitReadable(stream);
26147 // Don't emit readable right away in sync mode, because this can trigger
26148 // another read() call =
> stack overflow. This way, it might trigger
26149 // a nextTick recursion warning, but that's not so bad.
26150 function emitReadable(stream) {
26151 var state = stream._readableState;
26152 state.needReadable = false;
26153 if (!state.emittedReadable) {
26154 debug('emitReadable', state.flowing);
26155 state.emittedReadable = true;
26156 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
26160 function emitReadable_(stream) {
26161 debug('emit readable');
26162 stream.emit('readable');
26166 // at this point, the user has presumably seen the 'readable' event,
26167 // and called read() to consume some data. that may have triggered
26168 // in turn another _read(n) call, in which case reading = true if
26169 // it's in progress.
26170 // However, if we're not ended, or reading, and the length < hwm,
26171 // then go ahead and try to read some more preemptively.
26172 function maybeReadMore(stream, state) {
26173 if (!state.readingMore) {
26174 state.readingMore = true;
26175 processNextTick(maybeReadMore_, stream, state);
26179 function maybeReadMore_(stream, state) {
26180 var len = state.length;
26181 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
26182 debug('maybeReadMore read
0');
26184 if (len === state.length)
26185 // didn't get any data, stop spinning.
26186 break;else len = state.length;
26188 state.readingMore = false;
26191 // abstract method. to be overridden in specific implementation classes.
26192 // call cb(er, data) where data is <= n in length.
26193 // for virtual (non-string, non-buffer) streams, "length" is somewhat
26194 // arbitrary, and perhaps not very meaningful.
26195 Readable.prototype._read = function (n) {
26196 this.emit('error', new Error('_read() is not implemented'));
26199 Readable.prototype.pipe = function (dest, pipeOpts) {
26201 var state = this._readableState;
26203 switch (state.pipesCount) {
26205 state.pipes = dest;
26208 state.pipes = [state.pipes, dest];
26211 state.pipes.push(dest);
26214 state.pipesCount +=
1;
26215 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
26217 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
26219 var endFn = doEnd ? onend : cleanup;
26220 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
26222 dest.on('unpipe', onunpipe);
26223 function onunpipe(readable) {
26225 if (readable === src) {
26235 // when the dest drains, it reduces the awaitDrain counter
26236 // on the source. This would be more elegant with a .once()
26237 // handler in flow(), but adding and removing repeatedly is
26239 var ondrain = pipeOnDrain(src);
26240 dest.on('drain', ondrain);
26242 var cleanedUp = false;
26243 function cleanup() {
26245 // cleanup event handlers once the pipe is broken
26246 dest.removeListener('close', onclose);
26247 dest.removeListener('finish', onfinish);
26248 dest.removeListener('drain', ondrain);
26249 dest.removeListener('error', onerror);
26250 dest.removeListener('unpipe', onunpipe);
26251 src.removeListener('end', onend);
26252 src.removeListener('end', cleanup);
26253 src.removeListener('data', ondata);
26257 // if the reader is waiting for a drain event from this
26258 // specific writer, then it would cause it to never start
26260 // So, if this is awaiting a drain, then we just call it now.
26261 // If we don't know, then assume that we are waiting for one.
26262 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
26265 // If the user pushes more data while we're writing to dest then we'll end up
26266 // in ondata again. However, we only want to increase awaitDrain once because
26267 // dest will only emit one 'drain' event for the multiple writes.
26268 // =
> Introduce a guard on increasing awaitDrain.
26269 var increasedAwaitDrain = false;
26270 src.on('data', ondata);
26271 function ondata(chunk) {
26273 increasedAwaitDrain = false;
26274 var ret = dest.write(chunk);
26275 if (false === ret && !increasedAwaitDrain) {
26276 // If the user unpiped during `dest.write()`, it is possible
26277 // to get stuck in a permanently paused state if that write
26278 // also returned false.
26279 // =
> Check whether `dest` is still a piping destination.
26280 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
26281 debug('false write response, pause', src._readableState.awaitDrain);
26282 src._readableState.awaitDrain++;
26283 increasedAwaitDrain = true;
26289 // if the dest has an error, then stop piping into it.
26290 // however, don't suppress the throwing behavior for this.
26291 function onerror(er) {
26292 debug('onerror', er);
26294 dest.removeListener('error', onerror);
26295 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
26298 // Make sure our error handler is attached before userland ones.
26299 prependListener(dest, 'error', onerror);
26301 // Both close and finish should trigger unpipe, but only once.
26302 function onclose() {
26303 dest.removeListener('finish', onfinish);
26306 dest.once('close', onclose);
26307 function onfinish() {
26309 dest.removeListener('close', onclose);
26312 dest.once('finish', onfinish);
26314 function unpipe() {
26319 // tell the dest that it's being piped to
26320 dest.emit('pipe', src);
26322 // start the flow if it hasn't been started already.
26323 if (!state.flowing) {
26324 debug('pipe resume');
26331 function pipeOnDrain(src) {
26332 return function () {
26333 var state = src._readableState;
26334 debug('pipeOnDrain', state.awaitDrain);
26335 if (state.awaitDrain) state.awaitDrain--;
26336 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
26337 state.flowing = true;
26343 Readable.prototype.unpipe = function (dest) {
26344 var state = this._readableState;
26346 // if we're not piping anywhere, then do nothing.
26347 if (state.pipesCount ===
0) return this;
26349 // just one destination. most common case.
26350 if (state.pipesCount ===
1) {
26351 // passed in one, but it's not the right one.
26352 if (dest && dest !== state.pipes) return this;
26354 if (!dest) dest = state.pipes;
26357 state.pipes = null;
26358 state.pipesCount =
0;
26359 state.flowing = false;
26360 if (dest) dest.emit('unpipe', this);
26364 // slow case. multiple pipe destinations.
26368 var dests = state.pipes;
26369 var len = state.pipesCount;
26370 state.pipes = null;
26371 state.pipesCount =
0;
26372 state.flowing = false;
26374 for (var i =
0; i < len; i++) {
26375 dests[i].emit('unpipe', this);
26379 // try to find the right one.
26380 var index = indexOf(state.pipes, dest);
26381 if (index === -
1) return this;
26383 state.pipes.splice(index,
1);
26384 state.pipesCount -=
1;
26385 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
26387 dest.emit('unpipe', this);
26392 // set up data events if they are asked for
26393 // Ensure readable listeners eventually get something
26394 Readable.prototype.on = function (ev, fn) {
26395 var res = Stream.prototype.on.call(this, ev, fn);
26397 if (ev === 'data') {
26398 // Start flowing on next tick if stream isn't explicitly paused
26399 if (this._readableState.flowing !== false) this.resume();
26400 } else if (ev === 'readable') {
26401 var state = this._readableState;
26402 if (!state.endEmitted && !state.readableListening) {
26403 state.readableListening = state.needReadable = true;
26404 state.emittedReadable = false;
26405 if (!state.reading) {
26406 processNextTick(nReadingNextTick, this);
26407 } else if (state.length) {
26408 emitReadable(this, state);
26415 Readable.prototype.addListener = Readable.prototype.on;
26417 function nReadingNextTick(self) {
26418 debug('readable nexttick read
0');
26422 // pause() and resume() are remnants of the legacy readable stream API
26423 // If the user uses them, then switch into old mode.
26424 Readable.prototype.resume = function () {
26425 var state = this._readableState;
26426 if (!state.flowing) {
26428 state.flowing = true;
26429 resume(this, state);
26434 function resume(stream, state) {
26435 if (!state.resumeScheduled) {
26436 state.resumeScheduled = true;
26437 processNextTick(resume_, stream, state);
26441 function resume_(stream, state) {
26442 if (!state.reading) {
26443 debug('resume read
0');
26447 state.resumeScheduled = false;
26448 state.awaitDrain =
0;
26449 stream.emit('resume');
26451 if (state.flowing && !state.reading) stream.read(
0);
26454 Readable.prototype.pause = function () {
26455 debug('call pause flowing=%j', this._readableState.flowing);
26456 if (false !== this._readableState.flowing) {
26458 this._readableState.flowing = false;
26459 this.emit('pause');
26464 function flow(stream) {
26465 var state = stream._readableState;
26466 debug('flow', state.flowing);
26467 while (state.flowing && stream.read() !== null) {}
26470 // wrap an old-style stream as the async data source.
26471 // This is *not* part of the readable stream interface.
26472 // It is an ugly unfortunate mess of history.
26473 Readable.prototype.wrap = function (stream) {
26474 var state = this._readableState;
26475 var paused = false;
26478 stream.on('end', function () {
26479 debug('wrapped end');
26480 if (state.decoder && !state.ended) {
26481 var chunk = state.decoder.end();
26482 if (chunk && chunk.length) self.push(chunk);
26488 stream.on('data', function (chunk) {
26489 debug('wrapped data');
26490 if (state.decoder) chunk = state.decoder.write(chunk);
26492 // don't skip over falsy values in objectMode
26493 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
26495 var ret = self.push(chunk);
26502 // proxy all the other methods.
26503 // important when wrapping filters and duplexes.
26504 for (var i in stream) {
26505 if (this[i] === undefined && typeof stream[i] === 'function') {
26506 this[i] = function (method) {
26507 return function () {
26508 return stream[method].apply(stream, arguments);
26514 // proxy certain important events.
26515 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
26516 forEach(events, function (ev) {
26517 stream.on(ev, self.emit.bind(self, ev));
26520 // when we try to consume some more bytes, simply unpause the
26521 // underlying stream.
26522 self._read = function (n) {
26523 debug('wrapped _read', n);
26533 // exposed for testing purposes only.
26534 Readable._fromList = fromList;
26536 // Pluck off n bytes from an array of buffers.
26537 // Length is the combined lengths of all the buffers in the list.
26538 // This function is designed to be inlinable, so please take care when making
26539 // changes to the function body.
26540 function fromList(n, state) {
26541 // nothing buffered
26542 if (state.length ===
0) return null;
26545 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
26546 // read it all, truncate the list
26547 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);
26548 state.buffer.clear();
26550 // read part of list
26551 ret = fromListPartial(n, state.buffer, state.decoder);
26557 // Extracts only enough buffered data to satisfy the amount requested.
26558 // This function is designed to be inlinable, so please take care when making
26559 // changes to the function body.
26560 function fromListPartial(n, list, hasStrings) {
26562 if (n < list.head.data.length) {
26563 // slice is the same for buffers and strings
26564 ret = list.head.data.slice(
0, n);
26565 list.head.data = list.head.data.slice(n);
26566 } else if (n === list.head.data.length) {
26567 // first chunk is a perfect match
26568 ret = list.shift();
26570 // result spans more than one buffer
26571 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
26576 // Copies a specified amount of characters from the list of buffered data
26578 // This function is designed to be inlinable, so please take care when making
26579 // changes to the function body.
26580 function copyFromBufferString(n, list) {
26585 while (p = p.next) {
26587 var nb = n
> str.length ? str.length : n;
26588 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
26591 if (nb === str.length) {
26593 if (p.next) list.head = p.next;else list.head = list.tail = null;
26596 p.data = str.slice(nb);
26606 // Copies a specified amount of bytes from the list of buffered data chunks.
26607 // This function is designed to be inlinable, so please take care when making
26608 // changes to the function body.
26609 function copyFromBuffer(n, list) {
26610 var ret = bufferShim.allocUnsafe(n);
26614 n -= p.data.length;
26615 while (p = p.next) {
26617 var nb = n
> buf.length ? buf.length : n;
26618 buf.copy(ret, ret.length - n,
0, nb);
26621 if (nb === buf.length) {
26623 if (p.next) list.head = p.next;else list.head = list.tail = null;
26626 p.data = buf.slice(nb);
26636 function endReadable(stream) {
26637 var state = stream._readableState;
26639 // If we get here before consuming all the bytes, then that is a
26640 // bug in node. Should never happen.
26641 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
26643 if (!state.endEmitted) {
26644 state.ended = true;
26645 processNextTick(endReadableNT, state, stream);
26649 function endReadableNT(state, stream) {
26650 // Check that we didn't get one last unshift.
26651 if (!state.endEmitted && state.length ===
0) {
26652 state.endEmitted = true;
26653 stream.readable = false;
26654 stream.emit('end');
26658 function forEach(xs, f) {
26659 for (var i =
0, l = xs.length; i < l; i++) {
26664 function indexOf(xs, x) {
26665 for (var i =
0, l = xs.length; i < l; i++) {
26666 if (xs[i] === x) return i;
26670 }).call(this,require('_process'))
26671 },{
"./_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){
26672 // a transform stream is a readable/writable stream where you do
26673 // something with the data. Sometimes it's called a
"filter",
26674 // but that's not a great name for it, since that implies a thing where
26675 // some bits pass through, and others are simply ignored. (That would
26676 // be a valid example of a transform, of course.)
26678 // While the output is causally related to the input, it's not a
26679 // necessarily symmetric or synchronous transformation. For example,
26680 // a zlib stream might take multiple plain-text writes(), and then
26681 // emit a single compressed chunk some time in the future.
26683 // Here's how this works:
26685 // The Transform stream has all the aspects of the readable and writable
26686 // stream classes. When you write(chunk), that calls _write(chunk,cb)
26687 // internally, and returns false if there's a lot of pending writes
26688 // buffered up. When you call read(), that calls _read(n) until
26689 // there's enough pending readable data buffered up.
26691 // In a transform stream, the written data is placed in a buffer. When
26692 // _read(n) is called, it transforms the queued up data, calling the
26693 // buffered _write cb's as it consumes chunks. If consuming a single
26694 // written chunk would result in multiple output chunks, then the first
26695 // outputted bit calls the readcb, and subsequent chunks just go into
26696 // the read buffer, and will cause it to emit 'readable' if necessary.
26698 // This way, back-pressure is actually determined by the reading side,
26699 // since _read has to be called to start processing a new chunk. However,
26700 // a pathological inflate type of transform can cause excessive buffering
26701 // here. For example, imagine a stream where every byte of input is
26702 // interpreted as an integer from
0-
255, and then results in that many
26703 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
26704 //
1kb of data being output. In this case, you could write a very small
26705 // amount of input, and end up with a very large amount of output. In
26706 // such a pathological inflating mechanism, there'd be no way to tell
26707 // the system to stop doing the transform. A single
4MB write could
26708 // cause the system to run out of memory.
26710 // However, even in such a pathological case, only a single written chunk
26711 // would be consumed, and then the rest would wait (un-transformed) until
26712 // the results of the previous transformed chunk were consumed.
26716 module.exports = Transform;
26718 var Duplex = require('./_stream_duplex');
26721 var util = require('core-util-is');
26722 util.inherits = require('inherits');
26725 util.inherits(Transform, Duplex);
26727 function TransformState(stream) {
26728 this.afterTransform = function (er, data) {
26729 return afterTransform(stream, er, data);
26732 this.needTransform = false;
26733 this.transforming = false;
26734 this.writecb = null;
26735 this.writechunk = null;
26736 this.writeencoding = null;
26739 function afterTransform(stream, er, data) {
26740 var ts = stream._transformState;
26741 ts.transforming = false;
26743 var cb = ts.writecb;
26745 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
26747 ts.writechunk = null;
26750 if (data !== null && data !== undefined) stream.push(data);
26754 var rs = stream._readableState;
26755 rs.reading = false;
26756 if (rs.needReadable || rs.length < rs.highWaterMark) {
26757 stream._read(rs.highWaterMark);
26761 function Transform(options) {
26762 if (!(this instanceof Transform)) return new Transform(options);
26764 Duplex.call(this, options);
26766 this._transformState = new TransformState(this);
26770 // start out asking for a readable event once data is transformed.
26771 this._readableState.needReadable = true;
26773 // we have implemented the _read method, and done the other things
26774 // that Readable wants before the first _read call, so unset the
26775 // sync guard flag.
26776 this._readableState.sync = false;
26779 if (typeof options.transform === 'function') this._transform = options.transform;
26781 if (typeof options.flush === 'function') this._flush = options.flush;
26784 // When the writable side finishes, then flush out anything remaining.
26785 this.once('prefinish', function () {
26786 if (typeof this._flush === 'function') this._flush(function (er, data) {
26787 done(stream, er, data);
26788 });else done(stream);
26792 Transform.prototype.push = function (chunk, encoding) {
26793 this._transformState.needTransform = false;
26794 return Duplex.prototype.push.call(this, chunk, encoding);
26797 // This is the part where you do stuff!
26798 // override this function in implementation classes.
26799 // 'chunk' is an input chunk.
26801 // Call `push(newChunk)` to pass along transformed output
26802 // to the readable side. You may call 'push' zero or more times.
26804 // Call `cb(err)` when you are done with this chunk. If you pass
26805 // an error, then that'll put the hurt on the whole operation. If you
26806 // never call cb(), then you'll never get another chunk.
26807 Transform.prototype._transform = function (chunk, encoding, cb) {
26808 throw new Error('_transform() is not implemented');
26811 Transform.prototype._write = function (chunk, encoding, cb) {
26812 var ts = this._transformState;
26814 ts.writechunk = chunk;
26815 ts.writeencoding = encoding;
26816 if (!ts.transforming) {
26817 var rs = this._readableState;
26818 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
26822 // Doesn't matter what the args are here.
26823 // _transform does all the work.
26824 // That we got here means that the readable side wants more data.
26825 Transform.prototype._read = function (n) {
26826 var ts = this._transformState;
26828 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
26829 ts.transforming = true;
26830 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
26832 // mark that we need a transform, so that any data that comes in
26833 // will get processed, now that we've asked for it.
26834 ts.needTransform = true;
26838 function done(stream, er, data) {
26839 if (er) return stream.emit('error', er);
26841 if (data !== null && data !== undefined) stream.push(data);
26843 // if there's nothing in the write buffer, then that means
26844 // that nothing more will ever be provided
26845 var ws = stream._writableState;
26846 var ts = stream._transformState;
26848 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
26850 if (ts.transforming) throw new Error('Calling transform done when still transforming');
26852 return stream.push(null);
26854 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
26855 (function (process){
26856 // A bit simpler than readable streams.
26857 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
26858 // the drain event emission and buffering.
26862 module.exports = Writable;
26865 var processNextTick = require('process-nextick-args');
26869 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
26876 Writable.WritableState = WritableState;
26879 var util = require('core-util-is');
26880 util.inherits = require('inherits');
26884 var internalUtil = {
26885 deprecate: require('util-deprecate')
26893 Stream = require('st' + 'ream');
26894 } catch (_) {} finally {
26895 if (!Stream) Stream = require('events').EventEmitter;
26900 var Buffer = require('buffer').Buffer;
26902 var bufferShim = require('buffer-shims');
26905 util.inherits(Writable, Stream);
26909 function WriteReq(chunk, encoding, cb) {
26910 this.chunk = chunk;
26911 this.encoding = encoding;
26912 this.callback = cb;
26916 function WritableState(options, stream) {
26917 Duplex = Duplex || require('./_stream_duplex');
26919 options = options || {};
26921 // object stream flag to indicate whether or not this stream
26922 // contains buffers or objects.
26923 this.objectMode = !!options.objectMode;
26925 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
26927 // the point at which write() starts returning false
26928 // Note:
0 is a valid value, means that we always return false if
26929 // the entire buffer is not flushed immediately on write()
26930 var hwm = options.highWaterMark;
26931 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
26932 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
26935 this.highWaterMark = ~ ~this.highWaterMark;
26937 // drain event flag.
26938 this.needDrain = false;
26939 // at the start of calling end()
26940 this.ending = false;
26941 // when end() has been called, and returned
26942 this.ended = false;
26943 // when 'finish' is emitted
26944 this.finished = false;
26946 // should we decode strings into buffers before passing to _write?
26947 // this is here so that some node-core streams can optimize string
26948 // handling at a lower level.
26949 var noDecode = options.decodeStrings === false;
26950 this.decodeStrings = !noDecode;
26952 // Crypto is kind of old and crusty. Historically, its default string
26953 // encoding is 'binary' so we have to make this configurable.
26954 // Everything else in the universe uses 'utf8', though.
26955 this.defaultEncoding = options.defaultEncoding || 'utf8';
26957 // not an actual buffer we keep track of, but a measurement
26958 // of how much we're waiting to get pushed to some underlying
26962 // a flag to see when we're in the middle of a write.
26963 this.writing = false;
26965 // when true all writes will be buffered until .uncork() call
26968 // a flag to be able to tell if the onwrite cb is called immediately,
26969 // or on a later tick. We set this to true at first, because any
26970 // actions that shouldn't happen until "later" should generally also
26971 // not happen before the first write call.
26974 // a flag to know if we're processing previously buffered items, which
26975 // may call the _write() callback in the same tick, so that we don't
26976 // end up in an overlapped onwrite situation.
26977 this.bufferProcessing = false;
26979 // the callback that's passed to _write(chunk,cb)
26980 this.onwrite = function (er) {
26981 onwrite(stream, er);
26984 // the callback that the user supplies to write(chunk,encoding,cb)
26985 this.writecb = null;
26987 // the amount that is being written when _write is called.
26990 this.bufferedRequest = null;
26991 this.lastBufferedRequest = null;
26993 // number of pending user-supplied write callbacks
26994 // this must be
0 before 'finish' can be emitted
26995 this.pendingcb =
0;
26997 // emit prefinish if the only thing we're waiting for is _write cbs
26998 // This is relevant for synchronous Transform streams
26999 this.prefinished = false;
27001 // True if the error was already emitted and should not be thrown again
27002 this.errorEmitted = false;
27004 // count buffered requests
27005 this.bufferedRequestCount =
0;
27007 // allocate the first CorkedRequest, there is always
27008 // one allocated and free to use, and we maintain at most two
27009 this.corkedRequestsFree = new CorkedRequest(this);
27012 WritableState.prototype.getBuffer = function getBuffer() {
27013 var current = this.bufferedRequest;
27017 current = current.next;
27024 Object.defineProperty(WritableState.prototype, 'buffer', {
27025 get: internalUtil.deprecate(function () {
27026 return this.getBuffer();
27027 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
27032 // Test _writableState for inheritance to account for Duplex streams,
27033 // whose prototype chain only points to Readable.
27034 var realHasInstance;
27035 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
27036 realHasInstance = Function.prototype[Symbol.hasInstance];
27037 Object.defineProperty(Writable, Symbol.hasInstance, {
27038 value: function (object) {
27039 if (realHasInstance.call(this, object)) return true;
27041 return object && object._writableState instanceof WritableState;
27045 realHasInstance = function (object) {
27046 return object instanceof this;
27050 function Writable(options) {
27051 Duplex = Duplex || require('./_stream_duplex');
27053 // Writable ctor is applied to Duplexes, too.
27054 // `realHasInstance` is necessary because using plain `instanceof`
27055 // would return false, as no `_writableState` property is attached.
27057 // Trying to use the custom `instanceof` for Writable here will also break the
27058 // Node.js LazyTransform implementation, which has a non-trivial getter for
27059 // `_writableState` that would lead to infinite recursion.
27060 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
27061 return new Writable(options);
27064 this._writableState = new WritableState(options, this);
27067 this.writable = true;
27070 if (typeof options.write === 'function') this._write = options.write;
27072 if (typeof options.writev === 'function') this._writev = options.writev;
27078 // Otherwise people can pipe Writable streams, which is just wrong.
27079 Writable.prototype.pipe = function () {
27080 this.emit('error', new Error('Cannot pipe, not readable'));
27083 function writeAfterEnd(stream, cb) {
27084 var er = new Error('write after end');
27085 // TODO: defer error events consistently everywhere, not just the cb
27086 stream.emit('error', er);
27087 processNextTick(cb, er);
27090 // If we get something that is not a buffer, string, null, or undefined,
27091 // and we're not in objectMode, then that's an error.
27092 // Otherwise stream chunks are all considered to be of length=
1, and the
27093 // watermarks determine how many objects to keep in the buffer, rather than
27094 // how many bytes or characters.
27095 function validChunk(stream, state, chunk, cb) {
27098 // Always throw error if a null is written
27099 // if we are not in object mode then throw
27100 // if it is not a buffer, string, or undefined.
27101 if (chunk === null) {
27102 er = new TypeError('May not write null values to stream');
27103 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
27104 er = new TypeError('Invalid non-string/buffer chunk');
27107 stream.emit('error', er);
27108 processNextTick(cb, er);
27114 Writable.prototype.write = function (chunk, encoding, cb) {
27115 var state = this._writableState;
27118 if (typeof encoding === 'function') {
27123 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
27125 if (typeof cb !== 'function') cb = nop;
27127 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
27129 ret = writeOrBuffer(this, state, chunk, encoding, cb);
27135 Writable.prototype.cork = function () {
27136 var state = this._writableState;
27141 Writable.prototype.uncork = function () {
27142 var state = this._writableState;
27144 if (state.corked) {
27147 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
27151 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
27152 // node::ParseEncoding() requires lower case.
27153 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
27154 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);
27155 this._writableState.defaultEncoding = encoding;
27159 function decodeChunk(state, chunk, encoding) {
27160 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
27161 chunk = bufferShim.from(chunk, encoding);
27166 // if we're already writing something, then just put this
27167 // in the queue, and wait our turn. Otherwise, call _write
27168 // If we return false, then we need a drain event, so set that flag.
27169 function writeOrBuffer(stream, state, chunk, encoding, cb) {
27170 chunk = decodeChunk(state, chunk, encoding);
27172 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
27173 var len = state.objectMode ?
1 : chunk.length;
27175 state.length += len;
27177 var ret = state.length < state.highWaterMark;
27178 // we must ensure that previous needDrain will not be reset to false.
27179 if (!ret) state.needDrain = true;
27181 if (state.writing || state.corked) {
27182 var last = state.lastBufferedRequest;
27183 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
27185 last.next = state.lastBufferedRequest;
27187 state.bufferedRequest = state.lastBufferedRequest;
27189 state.bufferedRequestCount +=
1;
27191 doWrite(stream, state, false, len, chunk, encoding, cb);
27197 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
27198 state.writelen = len;
27199 state.writecb = cb;
27200 state.writing = true;
27202 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
27203 state.sync = false;
27206 function onwriteError(stream, state, sync, er, cb) {
27208 if (sync) processNextTick(cb, er);else cb(er);
27210 stream._writableState.errorEmitted = true;
27211 stream.emit('error', er);
27214 function onwriteStateUpdate(state) {
27215 state.writing = false;
27216 state.writecb = null;
27217 state.length -= state.writelen;
27218 state.writelen =
0;
27221 function onwrite(stream, er) {
27222 var state = stream._writableState;
27223 var sync = state.sync;
27224 var cb = state.writecb;
27226 onwriteStateUpdate(state);
27228 if (er) onwriteError(stream, state, sync, er, cb);else {
27229 // Check if we're actually ready to finish, but don't emit yet
27230 var finished = needFinish(state);
27232 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
27233 clearBuffer(stream, state);
27238 asyncWrite(afterWrite, stream, state, finished, cb);
27241 afterWrite(stream, state, finished, cb);
27246 function afterWrite(stream, state, finished, cb) {
27247 if (!finished) onwriteDrain(stream, state);
27250 finishMaybe(stream, state);
27253 // Must force callback to be called on nextTick, so that we don't
27254 // emit 'drain' before the write() consumer gets the 'false' return
27255 // value, and has a chance to attach a 'drain' listener.
27256 function onwriteDrain(stream, state) {
27257 if (state.length ===
0 && state.needDrain) {
27258 state.needDrain = false;
27259 stream.emit('drain');
27263 // if there's something in the buffer waiting, then process it
27264 function clearBuffer(stream, state) {
27265 state.bufferProcessing = true;
27266 var entry = state.bufferedRequest;
27268 if (stream._writev && entry && entry.next) {
27269 // Fast case, write everything using _writev()
27270 var l = state.bufferedRequestCount;
27271 var buffer = new Array(l);
27272 var holder = state.corkedRequestsFree;
27273 holder.entry = entry;
27277 buffer[count] = entry;
27278 entry = entry.next;
27282 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
27284 // doWrite is almost always async, defer these to save a bit of time
27285 // as the hot path ends with doWrite
27287 state.lastBufferedRequest = null;
27289 state.corkedRequestsFree = holder.next;
27290 holder.next = null;
27292 state.corkedRequestsFree = new CorkedRequest(state);
27295 // Slow case, write chunks one-by-one
27297 var chunk = entry.chunk;
27298 var encoding = entry.encoding;
27299 var cb = entry.callback;
27300 var len = state.objectMode ?
1 : chunk.length;
27302 doWrite(stream, state, false, len, chunk, encoding, cb);
27303 entry = entry.next;
27304 // if we didn't call the onwrite immediately, then
27305 // it means that we need to wait until it does.
27306 // also, that means that the chunk and cb are currently
27307 // being processed, so move the buffer counter past them.
27308 if (state.writing) {
27313 if (entry === null) state.lastBufferedRequest = null;
27316 state.bufferedRequestCount =
0;
27317 state.bufferedRequest = entry;
27318 state.bufferProcessing = false;
27321 Writable.prototype._write = function (chunk, encoding, cb) {
27322 cb(new Error('_write() is not implemented'));
27325 Writable.prototype._writev = null;
27327 Writable.prototype.end = function (chunk, encoding, cb) {
27328 var state = this._writableState;
27330 if (typeof chunk === 'function') {
27334 } else if (typeof encoding === 'function') {
27339 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
27341 // .end() fully uncorks
27342 if (state.corked) {
27347 // ignore unnecessary end() calls.
27348 if (!state.ending && !state.finished) endWritable(this, state, cb);
27351 function needFinish(state) {
27352 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
27355 function prefinish(stream, state) {
27356 if (!state.prefinished) {
27357 state.prefinished = true;
27358 stream.emit('prefinish');
27362 function finishMaybe(stream, state) {
27363 var need = needFinish(state);
27365 if (state.pendingcb ===
0) {
27366 prefinish(stream, state);
27367 state.finished = true;
27368 stream.emit('finish');
27370 prefinish(stream, state);
27376 function endWritable(stream, state, cb) {
27377 state.ending = true;
27378 finishMaybe(stream, state);
27380 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
27382 state.ended = true;
27383 stream.writable = false;
27386 // It seems a linked list but it is not
27387 // there will be only
2 of these for each stream
27388 function CorkedRequest(state) {
27394 this.finish = function (err) {
27395 var entry = _this.entry;
27396 _this.entry = null;
27398 var cb = entry.callback;
27401 entry = entry.next;
27403 if (state.corkedRequestsFree) {
27404 state.corkedRequestsFree.next = _this;
27406 state.corkedRequestsFree = _this;
27410 }).call(this,require('_process'))
27411 },{"./_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){
27414 var Buffer = require('buffer').Buffer;
27416 var bufferShim = require('buffer-shims');
27419 module.exports = BufferList;
27421 function BufferList() {
27427 BufferList.prototype.push = function (v) {
27428 var entry = { data: v, next: null };
27429 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
27434 BufferList.prototype.unshift = function (v) {
27435 var entry = { data: v, next: this.head };
27436 if (this.length ===
0) this.tail = entry;
27441 BufferList.prototype.shift = function () {
27442 if (this.length ===
0) return;
27443 var ret = this.head.data;
27444 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
27449 BufferList.prototype.clear = function () {
27450 this.head = this.tail = null;
27454 BufferList.prototype.join = function (s) {
27455 if (this.length ===
0) return '';
27457 var ret = '' + p.data;
27458 while (p = p.next) {
27463 BufferList.prototype.concat = function (n) {
27464 if (this.length ===
0) return bufferShim.alloc(
0);
27465 if (this.length ===
1) return this.head.data;
27466 var ret = bufferShim.allocUnsafe(n
>>> 0);
27470 p.data.copy(ret, i);
27471 i += p.data.length;
27476 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
27477 module.exports = require(
"./lib/_stream_passthrough.js")
27479 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
27480 (function (process){
27481 var Stream = (function (){
27483 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
27486 exports = module.exports = require('./lib/_stream_readable.js');
27487 exports.Stream = Stream || exports;
27488 exports.Readable = exports;
27489 exports.Writable = require('./lib/_stream_writable.js');
27490 exports.Duplex = require('./lib/_stream_duplex.js');
27491 exports.Transform = require('./lib/_stream_transform.js');
27492 exports.PassThrough = require('./lib/_stream_passthrough.js');
27494 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
27495 module.exports = Stream;
27498 }).call(this,require('_process'))
27499 },{
"./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){
27500 module.exports = require(
"./lib/_stream_transform.js")
27502 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
27503 module.exports = require(
"./lib/_stream_writable.js")
27505 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
27506 // Copyright Joyent, Inc. and other Node contributors.
27508 // Permission is hereby granted, free of charge, to any person obtaining a
27509 // copy of this software and associated documentation files (the
27510 //
"Software"), to deal in the Software without restriction, including
27511 // without limitation the rights to use, copy, modify, merge, publish,
27512 // distribute, sublicense, and/or sell copies of the Software, and to permit
27513 // persons to whom the Software is furnished to do so, subject to the
27514 // following conditions:
27516 // The above copyright notice and this permission notice shall be included
27517 // in all copies or substantial portions of the Software.
27519 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27520 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27521 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27522 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27523 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27524 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27525 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27527 module.exports = Stream;
27529 var EE = require('events').EventEmitter;
27530 var inherits = require('inherits');
27532 inherits(Stream, EE);
27533 Stream.Readable = require('readable-stream/readable.js');
27534 Stream.Writable = require('readable-stream/writable.js');
27535 Stream.Duplex = require('readable-stream/duplex.js');
27536 Stream.Transform = require('readable-stream/transform.js');
27537 Stream.PassThrough = require('readable-stream/passthrough.js');
27539 // Backwards-compat with node
0.4.x
27540 Stream.Stream = Stream;
27544 // old-style streams. Note that the pipe method (the only relevant
27545 // part of this class) is overridden in the Readable class.
27547 function Stream() {
27551 Stream.prototype.pipe = function(dest, options) {
27554 function ondata(chunk) {
27555 if (dest.writable) {
27556 if (false === dest.write(chunk) && source.pause) {
27562 source.on('data', ondata);
27564 function ondrain() {
27565 if (source.readable && source.resume) {
27570 dest.on('drain', ondrain);
27572 // If the 'end' option is not supplied, dest.end() will be called when
27573 // source gets the 'end' or 'close' events. Only dest.end() once.
27574 if (!dest._isStdio && (!options || options.end !== false)) {
27575 source.on('end', onend);
27576 source.on('close', onclose);
27579 var didOnEnd = false;
27581 if (didOnEnd) return;
27588 function onclose() {
27589 if (didOnEnd) return;
27592 if (typeof dest.destroy === 'function') dest.destroy();
27595 // don't leave dangling pipes when there are errors.
27596 function onerror(er) {
27598 if (EE.listenerCount(this, 'error') ===
0) {
27599 throw er; // Unhandled stream error in pipe.
27603 source.on('error', onerror);
27604 dest.on('error', onerror);
27606 // remove all the event listeners that were added.
27607 function cleanup() {
27608 source.removeListener('data', ondata);
27609 dest.removeListener('drain', ondrain);
27611 source.removeListener('end', onend);
27612 source.removeListener('close', onclose);
27614 source.removeListener('error', onerror);
27615 dest.removeListener('error', onerror);
27617 source.removeListener('end', cleanup);
27618 source.removeListener('close', cleanup);
27620 dest.removeListener('close', cleanup);
27623 source.on('end', cleanup);
27624 source.on('close', cleanup);
27626 dest.on('close', cleanup);
27628 dest.emit('pipe', source);
27630 // Allow for unix-like usage: A.pipe(B).pipe(C)
27634 },{
"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){
27635 // Copyright Joyent, Inc. and other Node contributors.
27637 // Permission is hereby granted, free of charge, to any person obtaining a
27638 // copy of this software and associated documentation files (the
27639 //
"Software"), to deal in the Software without restriction, including
27640 // without limitation the rights to use, copy, modify, merge, publish,
27641 // distribute, sublicense, and/or sell copies of the Software, and to permit
27642 // persons to whom the Software is furnished to do so, subject to the
27643 // following conditions:
27645 // The above copyright notice and this permission notice shall be included
27646 // in all copies or substantial portions of the Software.
27648 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27649 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27650 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27651 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27652 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27653 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27654 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27656 var Buffer = require('buffer').Buffer;
27658 var isBufferEncoding = Buffer.isEncoding
27659 || function(encoding) {
27660 switch (encoding && encoding.toLowerCase()) {
27661 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;
27662 default: return false;
27667 function assertEncoding(encoding) {
27668 if (encoding && !isBufferEncoding(encoding)) {
27669 throw new Error('Unknown encoding: ' + encoding);
27673 // StringDecoder provides an interface for efficiently splitting a series of
27674 // buffers into a series of JS strings without breaking apart multi-byte
27675 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
27677 // @TODO Handling all encodings inside a single object makes it very difficult
27678 // to reason about this code, so it should be split up in the future.
27679 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
27680 // points as used by CESU-
8.
27681 var StringDecoder = exports.StringDecoder = function(encoding) {
27682 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
27683 assertEncoding(encoding);
27684 switch (this.encoding) {
27686 // CESU-
8 represents each of Surrogate Pair by
3-bytes
27687 this.surrogateSize =
3;
27691 // UTF-
16 represents each of Surrogate Pair by
2-bytes
27692 this.surrogateSize =
2;
27693 this.detectIncompleteChar = utf16DetectIncompleteChar;
27696 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
27697 this.surrogateSize =
3;
27698 this.detectIncompleteChar = base64DetectIncompleteChar;
27701 this.write = passThroughWrite;
27705 // Enough space to store all bytes of a single character. UTF-
8 needs
4
27706 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
27707 this.charBuffer = new Buffer(
6);
27708 // Number of bytes received for the current incomplete multi-byte character.
27709 this.charReceived =
0;
27710 // Number of bytes expected for the current incomplete multi-byte character.
27711 this.charLength =
0;
27715 // write decodes the given buffer and returns it as JS string that is
27716 // guaranteed to not contain any partial multi-byte characters. Any partial
27717 // character found at the end of the buffer is buffered up, and will be
27718 // returned when calling write again with the remaining bytes.
27720 // Note: Converting a Buffer containing an orphan surrogate to a String
27721 // currently works, but converting a String to a Buffer (via `new Buffer`, or
27722 // Buffer#write) will replace incomplete surrogates with the unicode
27723 // replacement character. See https://codereview.chromium.org/
121173009/ .
27724 StringDecoder.prototype.write = function(buffer) {
27726 // if our last write ended with an incomplete multibyte character
27727 while (this.charLength) {
27728 // determine how many remaining bytes this buffer has to offer for this char
27729 var available = (buffer.length
>= this.charLength - this.charReceived) ?
27730 this.charLength - this.charReceived :
27733 // add the new bytes to the char buffer
27734 buffer.copy(this.charBuffer, this.charReceived,
0, available);
27735 this.charReceived += available;
27737 if (this.charReceived < this.charLength) {
27738 // still not enough chars in this buffer? wait for more ...
27742 // remove bytes belonging to the current character from the buffer
27743 buffer = buffer.slice(available, buffer.length);
27745 // get the character that was split
27746 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
27748 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27749 var charCode = charStr.charCodeAt(charStr.length -
1);
27750 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27751 this.charLength += this.surrogateSize;
27755 this.charReceived = this.charLength =
0;
27757 // if there are no more bytes in this buffer, just emit our char
27758 if (buffer.length ===
0) {
27764 // determine and set charLength / charReceived
27765 this.detectIncompleteChar(buffer);
27767 var end = buffer.length;
27768 if (this.charLength) {
27769 // buffer the incomplete character bytes we got
27770 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
27771 end -= this.charReceived;
27774 charStr += buffer.toString(this.encoding,
0, end);
27776 var end = charStr.length -
1;
27777 var charCode = charStr.charCodeAt(end);
27778 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27779 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27780 var size = this.surrogateSize;
27781 this.charLength += size;
27782 this.charReceived += size;
27783 this.charBuffer.copy(this.charBuffer, size,
0, size);
27784 buffer.copy(this.charBuffer,
0,
0, size);
27785 return charStr.substring(
0, end);
27788 // or just emit the charStr
27792 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
27793 // the end of the given buffer. If so, it sets this.charLength to the byte
27794 // length that character, and sets this.charReceived to the number of bytes
27795 // that are available for this character.
27796 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
27797 // determine how many bytes we have to check at the end of this buffer
27798 var i = (buffer.length
>=
3) ?
3 : buffer.length;
27800 // Figure out if one of the last i bytes of our buffer announces an
27801 // incomplete char.
27802 for (; i
> 0; i--) {
27803 var c = buffer[buffer.length - i];
27805 // See http://en.wikipedia.org/wiki/UTF-
8#Description
27808 if (i ==
1 && c
>> 5 ==
0x06) {
27809 this.charLength =
2;
27814 if (i <=
2 && c
>> 4 ==
0x0E) {
27815 this.charLength =
3;
27820 if (i <=
3 && c
>> 3 ==
0x1E) {
27821 this.charLength =
4;
27825 this.charReceived = i;
27828 StringDecoder.prototype.end = function(buffer) {
27830 if (buffer && buffer.length)
27831 res = this.write(buffer);
27833 if (this.charReceived) {
27834 var cr = this.charReceived;
27835 var buf = this.charBuffer;
27836 var enc = this.encoding;
27837 res += buf.slice(
0, cr).toString(enc);
27843 function passThroughWrite(buffer) {
27844 return buffer.toString(this.encoding);
27847 function utf16DetectIncompleteChar(buffer) {
27848 this.charReceived = buffer.length %
2;
27849 this.charLength = this.charReceived ?
2 :
0;
27852 function base64DetectIncompleteChar(buffer) {
27853 this.charReceived = buffer.length %
3;
27854 this.charLength = this.charReceived ?
3 :
0;
27857 },{
"buffer":
5}],
27:[function(require,module,exports){
27858 (function (global){
27864 module.exports = deprecate;
27867 * Mark that a method should not be used.
27868 * Returns a modified function which warns once by default.
27870 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
27872 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
27873 * will throw an Error when invoked.
27875 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
27876 * will invoke `console.trace()` instead of `console.error()`.
27878 * @param {Function} fn - the function to deprecate
27879 * @param {String} msg - the string to print to the console when `fn` is invoked
27880 * @returns {Function} a new
"deprecated" version of `fn`
27884 function deprecate (fn, msg) {
27885 if (config('noDeprecation')) {
27889 var warned = false;
27890 function deprecated() {
27892 if (config('throwDeprecation')) {
27893 throw new Error(msg);
27894 } else if (config('traceDeprecation')) {
27895 console.trace(msg);
27901 return fn.apply(this, arguments);
27908 * Checks `localStorage` for boolean values for the given `name`.
27910 * @param {String} name
27911 * @returns {Boolean}
27915 function config (name) {
27916 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
27918 if (!global.localStorage) return false;
27922 var val = global.localStorage[name];
27923 if (null == val) return false;
27924 return String(val).toLowerCase() === 'true';
27927 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
27928 },{}],
28:[function(require,module,exports){
27929 arguments[
4][
9][
0].apply(exports,arguments)
27930 },{
"dup":
9}],
29:[function(require,module,exports){
27931 module.exports = function isBuffer(arg) {
27932 return arg && typeof arg === 'object'
27933 && typeof arg.copy === 'function'
27934 && typeof arg.fill === 'function'
27935 && typeof arg.readUInt8 === 'function';
27937 },{}],
30:[function(require,module,exports){
27938 (function (process,global){
27939 // Copyright Joyent, Inc. and other Node contributors.
27941 // Permission is hereby granted, free of charge, to any person obtaining a
27942 // copy of this software and associated documentation files (the
27943 //
"Software"), to deal in the Software without restriction, including
27944 // without limitation the rights to use, copy, modify, merge, publish,
27945 // distribute, sublicense, and/or sell copies of the Software, and to permit
27946 // persons to whom the Software is furnished to do so, subject to the
27947 // following conditions:
27949 // The above copyright notice and this permission notice shall be included
27950 // in all copies or substantial portions of the Software.
27952 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27953 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27954 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27955 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27956 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27957 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27958 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27960 var formatRegExp = /%[sdj%]/g;
27961 exports.format = function(f) {
27962 if (!isString(f)) {
27964 for (var i =
0; i < arguments.length; i++) {
27965 objects.push(inspect(arguments[i]));
27967 return objects.join(' ');
27971 var args = arguments;
27972 var len = args.length;
27973 var str = String(f).replace(formatRegExp, function(x) {
27974 if (x === '%%') return '%';
27975 if (i
>= len) return x;
27977 case '%s': return String(args[i++]);
27978 case '%d': return Number(args[i++]);
27981 return JSON.stringify(args[i++]);
27983 return '[Circular]';
27989 for (var x = args[i]; i < len; x = args[++i]) {
27990 if (isNull(x) || !isObject(x)) {
27993 str += ' ' + inspect(x);
28000 // Mark that a method should not be used.
28001 // Returns a modified function which warns once by default.
28002 // If --no-deprecation is set, then it is a no-op.
28003 exports.deprecate = function(fn, msg) {
28004 // Allow for deprecating things in the process of starting up.
28005 if (isUndefined(global.process)) {
28006 return function() {
28007 return exports.deprecate(fn, msg).apply(this, arguments);
28011 if (process.noDeprecation === true) {
28015 var warned = false;
28016 function deprecated() {
28018 if (process.throwDeprecation) {
28019 throw new Error(msg);
28020 } else if (process.traceDeprecation) {
28021 console.trace(msg);
28023 console.error(msg);
28027 return fn.apply(this, arguments);
28036 exports.debuglog = function(set) {
28037 if (isUndefined(debugEnviron))
28038 debugEnviron = process.env.NODE_DEBUG || '';
28039 set = set.toUpperCase();
28040 if (!debugs[set]) {
28041 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
28042 var pid = process.pid;
28043 debugs[set] = function() {
28044 var msg = exports.format.apply(exports, arguments);
28045 console.error('%s %d: %s', set, pid, msg);
28048 debugs[set] = function() {};
28051 return debugs[set];
28056 * Echos the value of a value. Trys to print the value out
28057 * in the best way possible given the different types.
28059 * @param {Object} obj The object to print out.
28060 * @param {Object} opts Optional options object that alters the output.
28062 /* legacy: obj, showHidden, depth, colors*/
28063 function inspect(obj, opts) {
28067 stylize: stylizeNoColor
28070 if (arguments.length
>=
3) ctx.depth = arguments[
2];
28071 if (arguments.length
>=
4) ctx.colors = arguments[
3];
28072 if (isBoolean(opts)) {
28074 ctx.showHidden = opts;
28076 // got an "options" object
28077 exports._extend(ctx, opts);
28079 // set default options
28080 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
28081 if (isUndefined(ctx.depth)) ctx.depth =
2;
28082 if (isUndefined(ctx.colors)) ctx.colors = false;
28083 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
28084 if (ctx.colors) ctx.stylize = stylizeWithColor;
28085 return formatValue(ctx, obj, ctx.depth);
28087 exports.inspect = inspect;
28090 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
28093 'italic' : [
3,
23],
28094 'underline' : [
4,
24],
28095 'inverse' : [
7,
27],
28096 'white' : [
37,
39],
28098 'black' : [
30,
39],
28101 'green' : [
32,
39],
28102 'magenta' : [
35,
39],
28104 'yellow' : [
33,
39]
28107 // Don't use 'blue' not visible on cmd.exe
28110 'number': 'yellow',
28111 'boolean': 'yellow',
28112 'undefined': 'grey',
28116 // "name": intentionally not styling
28121 function stylizeWithColor(str, styleType) {
28122 var style = inspect.styles[styleType];
28125 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
28126 '\u001b[' + inspect.colors[style][
1] + 'm';
28133 function stylizeNoColor(str, styleType) {
28138 function arrayToHash(array) {
28141 array.forEach(function(val, idx) {
28149 function formatValue(ctx, value, recurseTimes) {
28150 // Provide a hook for user-specified inspect functions.
28151 // Check that value is an object with an inspect function on it
28152 if (ctx.customInspect &&
28154 isFunction(value.inspect) &&
28155 // Filter out the util module, it's inspect function is special
28156 value.inspect !== exports.inspect &&
28157 // Also filter out any prototype objects using the circular check.
28158 !(value.constructor && value.constructor.prototype === value)) {
28159 var ret = value.inspect(recurseTimes, ctx);
28160 if (!isString(ret)) {
28161 ret = formatValue(ctx, ret, recurseTimes);
28166 // Primitive types cannot have properties
28167 var primitive = formatPrimitive(ctx, value);
28172 // Look up the keys of the object.
28173 var keys = Object.keys(value);
28174 var visibleKeys = arrayToHash(keys);
28176 if (ctx.showHidden) {
28177 keys = Object.getOwnPropertyNames(value);
28180 // IE doesn't make error fields non-enumerable
28181 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
28183 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
28184 return formatError(value);
28187 // Some type of object without properties can be shortcutted.
28188 if (keys.length ===
0) {
28189 if (isFunction(value)) {
28190 var name = value.name ? ': ' + value.name : '';
28191 return ctx.stylize('[Function' + name + ']', 'special');
28193 if (isRegExp(value)) {
28194 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28196 if (isDate(value)) {
28197 return ctx.stylize(Date.prototype.toString.call(value), 'date');
28199 if (isError(value)) {
28200 return formatError(value);
28204 var base = '', array = false, braces = ['{', '}'];
28206 // Make Array say that they are Array
28207 if (isArray(value)) {
28209 braces = ['[', ']'];
28212 // Make functions say that they are functions
28213 if (isFunction(value)) {
28214 var n = value.name ? ': ' + value.name : '';
28215 base = ' [Function' + n + ']';
28218 // Make RegExps say that they are RegExps
28219 if (isRegExp(value)) {
28220 base = ' ' + RegExp.prototype.toString.call(value);
28223 // Make dates with properties first say the date
28224 if (isDate(value)) {
28225 base = ' ' + Date.prototype.toUTCString.call(value);
28228 // Make error with message first say the error
28229 if (isError(value)) {
28230 base = ' ' + formatError(value);
28233 if (keys.length ===
0 && (!array || value.length ==
0)) {
28234 return braces[
0] + base + braces[
1];
28237 if (recurseTimes <
0) {
28238 if (isRegExp(value)) {
28239 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28241 return ctx.stylize('[Object]', 'special');
28245 ctx.seen.push(value);
28249 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
28251 output = keys.map(function(key) {
28252 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
28258 return reduceToSingleString(output, base, braces);
28262 function formatPrimitive(ctx, value) {
28263 if (isUndefined(value))
28264 return ctx.stylize('undefined', 'undefined');
28265 if (isString(value)) {
28266 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
28267 .replace(/'/g, "\\'")
28268 .replace(/\\"/g, '"') + '\'';
28269 return ctx.stylize(simple, 'string');
28271 if (isNumber(value))
28272 return ctx.stylize('' + value, 'number');
28273 if (isBoolean(value))
28274 return ctx.stylize('' + value, 'boolean');
28275 // For some reason typeof null is "object", so special case here.
28277 return ctx.stylize('null', 'null');
28281 function formatError(value) {
28282 return '[' + Error.prototype.toString.call(value) + ']';
28286 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
28288 for (var i =
0, l = value.length; i < l; ++i) {
28289 if (hasOwnProperty(value, String(i))) {
28290 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28296 keys.forEach(function(key) {
28297 if (!key.match(/^\d+$/)) {
28298 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28306 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
28307 var name, str, desc;
28308 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
28311 str = ctx.stylize('[Getter/Setter]', 'special');
28313 str = ctx.stylize('[Getter]', 'special');
28317 str = ctx.stylize('[Setter]', 'special');
28320 if (!hasOwnProperty(visibleKeys, key)) {
28321 name = '[' + key + ']';
28324 if (ctx.seen.indexOf(desc.value) <
0) {
28325 if (isNull(recurseTimes)) {
28326 str = formatValue(ctx, desc.value, null);
28328 str = formatValue(ctx, desc.value, recurseTimes -
1);
28330 if (str.indexOf('\n')
> -
1) {
28332 str = str.split('\n').map(function(line) {
28334 }).join('\n').substr(
2);
28336 str = '\n' + str.split('\n').map(function(line) {
28342 str = ctx.stylize('[Circular]', 'special');
28345 if (isUndefined(name)) {
28346 if (array && key.match(/^\d+$/)) {
28349 name = JSON.stringify('' + key);
28350 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
28351 name = name.substr(
1, name.length -
2);
28352 name = ctx.stylize(name, 'name');
28354 name = name.replace(/'/g, "\\'")
28355 .replace(/\\"/g, '"')
28356 .replace(/(^"|"$)/g, "'");
28357 name = ctx.stylize(name, 'string');
28361 return name + ': ' + str;
28365 function reduceToSingleString(output, base, braces) {
28366 var numLinesEst =
0;
28367 var length = output.reduce(function(prev, cur) {
28369 if (cur.indexOf('\n')
>=
0) numLinesEst++;
28370 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
28375 (base === '' ? '' : base + '\n ') +
28377 output.join(',\n ') +
28382 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
28386 // NOTE: These type checking functions intentionally don't use `instanceof`
28387 // because it is fragile and can be easily faked with `Object.create()`.
28388 function isArray(ar) {
28389 return Array.isArray(ar);
28391 exports.isArray = isArray;
28393 function isBoolean(arg) {
28394 return typeof arg === 'boolean';
28396 exports.isBoolean = isBoolean;
28398 function isNull(arg) {
28399 return arg === null;
28401 exports.isNull = isNull;
28403 function isNullOrUndefined(arg) {
28404 return arg == null;
28406 exports.isNullOrUndefined = isNullOrUndefined;
28408 function isNumber(arg) {
28409 return typeof arg === 'number';
28411 exports.isNumber = isNumber;
28413 function isString(arg) {
28414 return typeof arg === 'string';
28416 exports.isString = isString;
28418 function isSymbol(arg) {
28419 return typeof arg === 'symbol';
28421 exports.isSymbol = isSymbol;
28423 function isUndefined(arg) {
28424 return arg === void
0;
28426 exports.isUndefined = isUndefined;
28428 function isRegExp(re) {
28429 return isObject(re) && objectToString(re) === '[object RegExp]';
28431 exports.isRegExp = isRegExp;
28433 function isObject(arg) {
28434 return typeof arg === 'object' && arg !== null;
28436 exports.isObject = isObject;
28438 function isDate(d) {
28439 return isObject(d) && objectToString(d) === '[object Date]';
28441 exports.isDate = isDate;
28443 function isError(e) {
28444 return isObject(e) &&
28445 (objectToString(e) === '[object Error]' || e instanceof Error);
28447 exports.isError = isError;
28449 function isFunction(arg) {
28450 return typeof arg === 'function';
28452 exports.isFunction = isFunction;
28454 function isPrimitive(arg) {
28455 return arg === null ||
28456 typeof arg === 'boolean' ||
28457 typeof arg === 'number' ||
28458 typeof arg === 'string' ||
28459 typeof arg === 'symbol' || // ES6 symbol
28460 typeof arg === 'undefined';
28462 exports.isPrimitive = isPrimitive;
28464 exports.isBuffer = require('./support/isBuffer');
28466 function objectToString(o) {
28467 return Object.prototype.toString.call(o);
28472 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
28476 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
28477 'Oct', 'Nov', 'Dec'];
28480 function timestamp() {
28481 var d = new Date();
28482 var time = [pad(d.getHours()),
28483 pad(d.getMinutes()),
28484 pad(d.getSeconds())].join(':');
28485 return [d.getDate(), months[d.getMonth()], time].join(' ');
28489 // log is just a thin wrapper to console.log that prepends a timestamp
28490 exports.log = function() {
28491 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
28496 * Inherit the prototype methods from one constructor into another.
28498 * The Function.prototype.inherits from lang.js rewritten as a standalone
28499 * function (not on Function.prototype). NOTE: If this file is to be loaded
28500 * during bootstrapping this function needs to be rewritten using some native
28501 * functions as prototype setup using normal JavaScript does not work as
28502 * expected during bootstrapping (see mirror.js in r114903).
28504 * @param {function} ctor Constructor function which needs to inherit the
28506 * @param {function} superCtor Constructor function to inherit prototype from.
28508 exports.inherits = require('inherits');
28510 exports._extend = function(origin, add) {
28511 // Don't do anything if add isn't an object
28512 if (!add || !isObject(add)) return origin;
28514 var keys = Object.keys(add);
28515 var i = keys.length;
28517 origin[keys[i]] = add[keys[i]];
28522 function hasOwnProperty(obj, prop) {
28523 return Object.prototype.hasOwnProperty.call(obj, prop);
28526 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
28527 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
28528 (function (Buffer){
28529 const createKeccakHash = require('keccak')
28530 const secp256k1 = require('secp256k1')
28531 const assert = require('assert')
28532 const rlp = require('rlp')
28533 const BN = require('bn.js')
28534 const createHash = require('create-hash')
28535 Object.assign(exports, require('ethjs-util'))
28538 * the max integer that this VM can handle (a ```BN```)
28539 * @var {BN} MAX_INTEGER
28541 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
28544 *
2^
256 (a ```BN```)
28545 * @var {BN} TWO_POW256
28547 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
28550 * SHA3-
256 hash of null (a ```String```)
28551 * @var {String} SHA3_NULL_S
28553 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
28556 * SHA3-
256 hash of null (a ```Buffer```)
28557 * @var {Buffer} SHA3_NULL
28559 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
28562 * SHA3-
256 of an RLP of an empty array (a ```String```)
28563 * @var {String} SHA3_RLP_ARRAY_S
28565 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
28568 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
28569 * @var {Buffer} SHA3_RLP_ARRAY
28571 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
28574 * SHA3-
256 hash of the RLP of null (a ```String```)
28575 * @var {String} SHA3_RLP_S
28577 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
28580 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
28581 * @var {Buffer} SHA3_RLP
28583 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
28586 * [`BN`](https://github.com/indutny/bn.js)
28592 * [`rlp`](https://github.com/ethereumjs/rlp)
28598 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
28601 exports.secp256k1 = secp256k1
28604 * Returns a buffer filled with
0s
28606 * @param {Number} bytes the number of bytes the buffer should be
28609 exports.zeros = function (bytes) {
28610 return Buffer.allocUnsafe(bytes).fill(
0)
28614 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28615 * Or it truncates the beginning if it exceeds.
28616 * @method lsetLength
28617 * @param {Buffer|Array} msg the value to pad
28618 * @param {Number} length the number of bytes the output should be
28619 * @param {Boolean} [right=false] whether to start padding form the left or right
28620 * @return {Buffer|Array}
28622 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
28623 var buf = exports.zeros(length)
28624 msg = exports.toBuffer(msg)
28626 if (msg.length < length) {
28630 return msg.slice(
0, length)
28632 if (msg.length < length) {
28633 msg.copy(buf, length - msg.length)
28636 return msg.slice(-length)
28641 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28642 * Or it truncates the beginning if it exceeds.
28643 * @param {Buffer|Array} msg the value to pad
28644 * @param {Number} length the number of bytes the output should be
28645 * @return {Buffer|Array}
28647 exports.setLengthRight = function (msg, length) {
28648 return exports.setLength(msg, length, true)
28652 * Trims leading zeros from a `Buffer` or an `Array`
28653 * @param {Buffer|Array|String} a
28654 * @return {Buffer|Array|String}
28656 exports.unpad = exports.stripZeros = function (a) {
28657 a = exports.stripHexPrefix(a)
28659 while (a.length
> 0 && first.toString() === '
0') {
28666 * 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.
28667 * @param {*} v the value
28669 exports.toBuffer = function (v) {
28670 if (!Buffer.isBuffer(v)) {
28671 if (Array.isArray(v)) {
28673 } else if (typeof v === 'string') {
28674 if (exports.isHexPrefixed(v)) {
28675 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
28679 } else if (typeof v === 'number') {
28680 v = exports.intToBuffer(v)
28681 } else if (v === null || v === undefined) {
28682 v = Buffer.allocUnsafe(
0)
28683 } else if (v.toArray) {
28684 // converts a BN to a Buffer
28685 v = Buffer.from(v.toArray())
28687 throw new Error('invalid type')
28694 * Converts a `Buffer` to a `Number`
28695 * @param {Buffer} buf
28697 * @throws If the input number exceeds
53 bits.
28699 exports.bufferToInt = function (buf) {
28700 return new BN(exports.toBuffer(buf)).toNumber()
28704 * Converts a `Buffer` into a hex `String`
28705 * @param {Buffer} buf
28708 exports.bufferToHex = function (buf) {
28709 buf = exports.toBuffer(buf)
28710 return '
0x' + buf.toString('hex')
28714 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
28715 * @param {Buffer} num
28718 exports.fromSigned = function (num) {
28719 return new BN(num).fromTwos(
256)
28723 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
28727 exports.toUnsigned = function (num) {
28728 return Buffer.from(num.toTwos(
256).toArray())
28732 * Creates SHA-
3 hash of the input
28733 * @param {Buffer|Array|String|Number} a the input data
28734 * @param {Number} [bits=
256] the SHA width
28737 exports.sha3 = function (a, bits) {
28738 a = exports.toBuffer(a)
28739 if (!bits) bits =
256
28741 return createKeccakHash('keccak' + bits).update(a).digest()
28745 * Creates SHA256 hash of the input
28746 * @param {Buffer|Array|String|Number} a the input data
28749 exports.sha256 = function (a) {
28750 a = exports.toBuffer(a)
28751 return createHash('sha256').update(a).digest()
28755 * Creates RIPEMD160 hash of the input
28756 * @param {Buffer|Array|String|Number} a the input data
28757 * @param {Boolean} padded whether it should be padded to
256 bits or not
28760 exports.ripemd160 = function (a, padded) {
28761 a = exports.toBuffer(a)
28762 var hash = createHash('rmd160').update(a).digest()
28763 if (padded === true) {
28764 return exports.setLength(hash,
32)
28771 * Creates SHA-
3 hash of the RLP encoded version of the input
28772 * @param {Buffer|Array|String|Number} a the input data
28775 exports.rlphash = function (a) {
28776 return exports.sha3(rlp.encode(a))
28780 * Checks if the private key satisfies the rules of the curve secp256k1.
28781 * @param {Buffer} privateKey
28782 * @return {Boolean}
28784 exports.isValidPrivate = function (privateKey) {
28785 return secp256k1.privateKeyVerify(privateKey)
28789 * Checks if the public key satisfies the rules of the curve secp256k1
28790 * and the requirements of Ethereum.
28791 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
28792 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28793 * @return {Boolean}
28795 exports.isValidPublic = function (publicKey, sanitize) {
28796 if (publicKey.length ===
64) {
28797 // Convert to SEC1 for secp256k1
28798 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
28805 return secp256k1.publicKeyVerify(publicKey)
28809 * Returns the ethereum address of a given public key.
28810 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
28811 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
28812 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28815 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
28816 pubKey = exports.toBuffer(pubKey)
28817 if (sanitize && (pubKey.length !==
64)) {
28818 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
28820 assert(pubKey.length ===
64)
28821 // Only take the lower
160bits of the hash
28822 return exports.sha3(pubKey).slice(-
20)
28826 * Returns the ethereum public key of a given private key
28827 * @param {Buffer} privateKey A private key must be
256 bits wide
28830 var privateToPublic = exports.privateToPublic = function (privateKey) {
28831 privateKey = exports.toBuffer(privateKey)
28832 // skip the type flag and use the X, Y points
28833 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
28837 * Converts a public key to the Ethereum format.
28838 * @param {Buffer} publicKey
28841 exports.importPublic = function (publicKey) {
28842 publicKey = exports.toBuffer(publicKey)
28843 if (publicKey.length !==
64) {
28844 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
28851 * @param {Buffer} msgHash
28852 * @param {Buffer} privateKey
28855 exports.ecsign = function (msgHash, privateKey) {
28856 var sig = secp256k1.sign(msgHash, privateKey)
28859 ret.r = sig.signature.slice(
0,
32)
28860 ret.s = sig.signature.slice(
32,
64)
28861 ret.v = sig.recovery +
27
28866 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
28867 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
28868 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
28869 * used to produce the signature.
28871 * @returns {Buffer} hash
28873 exports.hashPersonalMessage = function (message) {
28874 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
28875 return exports.sha3(Buffer.concat([prefix, message]))
28879 * ECDSA public key recovery from signature
28880 * @param {Buffer} msgHash
28881 * @param {Number} v
28882 * @param {Buffer} r
28883 * @param {Buffer} s
28884 * @return {Buffer} publicKey
28886 exports.ecrecover = function (msgHash, v, r, s) {
28887 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
28888 var recovery = v -
27
28889 if (recovery !==
0 && recovery !==
1) {
28890 throw new Error('Invalid signature v value')
28892 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
28893 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
28897 * Convert signature parameters into the format of `eth_sign` RPC method
28898 * @param {Number} v
28899 * @param {Buffer} r
28900 * @param {Buffer} s
28901 * @return {String} sig
28903 exports.toRpcSig = function (v, r, s) {
28904 // NOTE: with potential introduction of chainId this might need to be updated
28905 if (v !==
27 && v !==
28) {
28906 throw new Error('Invalid recovery id')
28909 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
28910 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
28911 return exports.bufferToHex(Buffer.concat([
28912 exports.setLengthLeft(r,
32),
28913 exports.setLengthLeft(s,
32),
28914 exports.toBuffer(v -
27)
28919 * Convert signature format of the `eth_sign` RPC method to signature parameters
28920 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
28921 * @param {String} sig
28924 exports.fromRpcSig = function (sig) {
28925 sig = exports.toBuffer(sig)
28927 // NOTE: with potential introduction of chainId this might need to be updated
28928 if (sig.length !==
65) {
28929 throw new Error('Invalid signature length')
28933 // support both versions of `eth_sign` responses
28940 r: sig.slice(
0,
32),
28941 s: sig.slice(
32,
64)
28946 * Returns the ethereum address of a given private key
28947 * @param {Buffer} privateKey A private key must be
256 bits wide
28950 exports.privateToAddress = function (privateKey) {
28951 return exports.publicToAddress(privateToPublic(privateKey))
28955 * Checks if the address is a valid. Accepts checksummed addresses too
28956 * @param {String} address
28957 * @return {Boolean}
28959 exports.isValidAddress = function (address) {
28960 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
28964 * Returns a checksummed address
28965 * @param {String} address
28968 exports.toChecksumAddress = function (address) {
28969 address = exports.stripHexPrefix(address).toLowerCase()
28970 var hash = exports.sha3(address).toString('hex')
28973 for (var i =
0; i < address.length; i++) {
28974 if (parseInt(hash[i],
16)
>=
8) {
28975 ret += address[i].toUpperCase()
28985 * Checks if the address is a valid checksummed address
28986 * @param {Buffer} address
28987 * @return {Boolean}
28989 exports.isValidChecksumAddress = function (address) {
28990 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
28994 * Generates an address of a newly created contract
28995 * @param {Buffer} from the address which is creating this new address
28996 * @param {Buffer} nonce the nonce of the from account
28999 exports.generateAddress = function (from, nonce) {
29000 from = exports.toBuffer(from)
29001 nonce = new BN(nonce)
29003 if (nonce.isZero()) {
29004 // in RLP we want to encode null in the case of zero nonce
29005 // read the RLP documentation for an answer if you dare
29008 nonce = Buffer.from(nonce.toArray())
29011 // Only take the lower
160bits of the hash
29012 return exports.rlphash([from, nonce]).slice(-
20)
29016 * Returns true if the supplied address belongs to a precompiled account
29017 * @param {Buffer|String} address
29018 * @return {Boolean}
29020 exports.isPrecompiled = function (address) {
29021 var a = exports.unpad(address)
29022 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
29026 * Adds
"0x" to a given `String` if it does not already start with
"0x"
29027 * @param {String} str
29030 exports.addHexPrefix = function (str) {
29031 if (typeof str !== 'string') {
29035 return exports.isHexPrefixed(str) ? str : '
0x' + str
29039 * Validate ECDSA signature
29040 * @method isValidSignature
29041 * @param {Buffer} v
29042 * @param {Buffer} r
29043 * @param {Buffer} s
29044 * @param {Boolean} [homestead=true]
29045 * @return {Boolean}
29048 exports.isValidSignature = function (v, r, s, homestead) {
29049 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
29050 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
29052 if (r.length !==
32 || s.length !==
32) {
29056 if (v !==
27 && v !==
28) {
29063 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
29067 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
29075 * Converts a `Buffer` or `Array` to JSON
29076 * @param {Buffer|Array} ba
29077 * @return {Array|String|null}
29079 exports.baToJSON = function (ba) {
29080 if (Buffer.isBuffer(ba)) {
29081 return '
0x' + ba.toString('hex')
29082 } else if (ba instanceof Array) {
29084 for (var i =
0; i < ba.length; i++) {
29085 array.push(exports.baToJSON(ba[i]))
29092 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
29093 * @param {Object} self the `Object` to define properties on
29094 * @param {Array} fields an array fields to define. Fields can contain:
29095 * * `name` - the name of the properties
29096 * * `length` - the number of bytes the field can have
29097 * * `allowLess` - if the field can be less than the length
29099 * @param {*} data data to be validated against the definitions
29101 exports.defineProperties = function (self, fields, data) {
29105 // attach the `toJSON`
29106 self.toJSON = function (label) {
29109 self._fields.forEach(function (field) {
29110 obj[field] = '
0x' + self[field].toString('hex')
29114 return exports.baToJSON(this.raw)
29117 self.serialize = function serialize () {
29118 return rlp.encode(self.raw)
29121 fields.forEach(function (field, i) {
29122 self._fields.push(field.name)
29123 function getter () {
29126 function setter (v) {
29127 v = exports.toBuffer(v)
29129 if (v.toString('hex') === '
00' && !field.allowZero) {
29130 v = Buffer.allocUnsafe(
0)
29133 if (field.allowLess && field.length) {
29134 v = exports.stripZeros(v)
29135 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
29136 } else if (!(field.allowZero && v.length ===
0) && field.length) {
29137 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
29143 Object.defineProperty(self, field.name, {
29145 configurable: true,
29150 if (field.default) {
29151 self[field.name] = field.default
29156 Object.defineProperty(self, field.alias, {
29158 configurable: true,
29165 // if the constuctor is passed data
29167 if (typeof data === 'string') {
29168 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
29171 if (Buffer.isBuffer(data)) {
29172 data = rlp.decode(data)
29175 if (Array.isArray(data)) {
29176 if (data.length
> self._fields.length) {
29177 throw (new Error('wrong number of fields in data'))
29180 // make sure all the items are buffers
29181 data.forEach(function (d, i) {
29182 self[self._fields[i]] = exports.toBuffer(d)
29184 } else if (typeof data === 'object') {
29185 const keys = Object.keys(data)
29186 fields.forEach(function (field) {
29187 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
29188 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
29191 throw new Error('invalid data')
29196 }).call(this,require("buffer").Buffer)
29197 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
29198 (function (Buffer){
29199 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
29200 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29201 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
29203 function check (buffer) {
29204 if (buffer.length <
8) return false
29205 if (buffer.length
> 72) return false
29206 if (buffer[
0] !==
0x30) return false
29207 if (buffer[
1] !== buffer.length -
2) return false
29208 if (buffer[
2] !==
0x02) return false
29210 var lenR = buffer[
3]
29211 if (lenR ===
0) return false
29212 if (
5 + lenR
>= buffer.length) return false
29213 if (buffer[
4 + lenR] !==
0x02) return false
29215 var lenS = buffer[
5 + lenR]
29216 if (lenS ===
0) return false
29217 if ((
6 + lenR + lenS) !== buffer.length) return false
29219 if (buffer[
4] &
0x80) return false
29220 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
29222 if (buffer[lenR +
6] &
0x80) return false
29223 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
29227 function decode (buffer) {
29228 if (buffer.length <
8) throw new Error('DER sequence length is too short')
29229 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
29230 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
29231 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
29232 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
29234 var lenR = buffer[
3]
29235 if (lenR ===
0) throw new Error('R length is zero')
29236 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
29237 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
29239 var lenS = buffer[
5 + lenR]
29240 if (lenS ===
0) throw new Error('S length is zero')
29241 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
29243 if (buffer[
4] &
0x80) throw new Error('R value is negative')
29244 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
29246 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
29247 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
29249 // non-BIP66 - extract R, S values
29251 r: buffer.slice(
4,
4 + lenR),
29252 s: buffer.slice(
6 + lenR)
29257 * Expects r and s to be positive DER integers.
29259 * The DER format uses the most significant bit as a sign bit (&
0x80).
29260 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
29275 *
62300 =
> 0x00f35c
29276 * -
62300 =
> 0xff0ca4
29278 function encode (r, s) {
29279 var lenR = r.length
29280 var lenS = s.length
29281 if (lenR ===
0) throw new Error('R length is zero')
29282 if (lenS ===
0) throw new Error('S length is zero')
29283 if (lenR
> 33) throw new Error('R length is too long')
29284 if (lenS
> 33) throw new Error('S length is too long')
29285 if (r[
0] &
0x80) throw new Error('R value is negative')
29286 if (s[
0] &
0x80) throw new Error('S value is negative')
29287 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
29288 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
29290 var signature = new Buffer(
6 + lenR + lenS)
29292 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29293 signature[
0] =
0x30
29294 signature[
1] = signature.length -
2
29295 signature[
2] =
0x02
29296 signature[
3] = r.length
29297 r.copy(signature,
4)
29298 signature[
4 + lenR] =
0x02
29299 signature[
5 + lenR] = s.length
29300 s.copy(signature,
6 + lenR)
29311 }).call(this,require(
"buffer").Buffer)
29312 },{
"buffer":
5}],
33:[function(require,module,exports){
29313 (function (module, exports) {
29317 function assert (val, msg) {
29318 if (!val) throw new Error(msg || 'Assertion failed');
29321 // Could use `inherits` module, but don't want to move from single file
29322 // architecture yet.
29323 function inherits (ctor, superCtor) {
29324 ctor.super_ = superCtor;
29325 var TempCtor = function () {};
29326 TempCtor.prototype = superCtor.prototype;
29327 ctor.prototype = new TempCtor();
29328 ctor.prototype.constructor = ctor;
29333 function BN (number, base, endian) {
29334 if (BN.isBN(number)) {
29342 // Reduction context
29345 if (number !== null) {
29346 if (base === 'le' || base === 'be') {
29351 this._init(number ||
0, base ||
10, endian || 'be');
29354 if (typeof module === 'object') {
29355 module.exports = BN;
29365 Buffer = require('buf' + 'fer').Buffer;
29369 BN.isBN = function isBN (num) {
29370 if (num instanceof BN) {
29374 return num !== null && typeof num === 'object' &&
29375 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
29378 BN.max = function max (left, right) {
29379 if (left.cmp(right)
> 0) return left;
29383 BN.min = function min (left, right) {
29384 if (left.cmp(right) <
0) return left;
29388 BN.prototype._init = function init (number, base, endian) {
29389 if (typeof number === 'number') {
29390 return this._initNumber(number, base, endian);
29393 if (typeof number === 'object') {
29394 return this._initArray(number, base, endian);
29397 if (base === 'hex') {
29400 assert(base === (base |
0) && base
>=
2 && base <=
36);
29402 number = number.toString().replace(/\s+/g, '');
29404 if (number[
0] === '-') {
29409 this._parseHex(number, start);
29411 this._parseBase(number, base, start);
29414 if (number[
0] === '-') {
29420 if (endian !== 'le') return;
29422 this._initArray(this.toArray(), base, endian);
29425 BN.prototype._initNumber = function _initNumber (number, base, endian) {
29430 if (number <
0x4000000) {
29431 this.words = [ number &
0x3ffffff ];
29433 } else if (number <
0x10000000000000) {
29435 number &
0x3ffffff,
29436 (number /
0x4000000) &
0x3ffffff
29440 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
29442 number &
0x3ffffff,
29443 (number /
0x4000000) &
0x3ffffff,
29449 if (endian !== 'le') return;
29451 // Reverse the bytes
29452 this._initArray(this.toArray(), base, endian);
29455 BN.prototype._initArray = function _initArray (number, base, endian) {
29456 // Perhaps a Uint8Array
29457 assert(typeof number.length === 'number');
29458 if (number.length <=
0) {
29459 this.words = [
0 ];
29464 this.length = Math.ceil(number.length /
3);
29465 this.words = new Array(this.length);
29466 for (var i =
0; i < this.length; i++) {
29472 if (endian === 'be') {
29473 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
29474 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
29475 this.words[j] |= (w << off) &
0x3ffffff;
29476 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29483 } else if (endian === 'le') {
29484 for (i =
0, j =
0; i < number.length; i +=
3) {
29485 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
29486 this.words[j] |= (w << off) &
0x3ffffff;
29487 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29495 return this.strip();
29498 function parseHex (str, start, end) {
29500 var len = Math.min(str.length, end);
29501 for (var i = start; i < len; i++) {
29502 var c = str.charCodeAt(i) -
48;
29507 if (c
>=
49 && c <=
54) {
29511 } else if (c
>=
17 && c <=
22) {
29522 BN.prototype._parseHex = function _parseHex (number, start) {
29523 // Create possibly bigger array to ensure that it fits the number
29524 this.length = Math.ceil((number.length - start) /
6);
29525 this.words = new Array(this.length);
29526 for (var i =
0; i < this.length; i++) {
29531 // Scan
24-bit chunks and add them to the number
29533 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
29534 w = parseHex(number, i, i +
6);
29535 this.words[j] |= (w << off) &
0x3ffffff;
29536 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
29537 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29544 if (i +
6 !== start) {
29545 w = parseHex(number, start, i +
6);
29546 this.words[j] |= (w << off) &
0x3ffffff;
29547 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29552 function parseBase (str, start, end, mul) {
29554 var len = Math.min(str.length, end);
29555 for (var i = start; i < len; i++) {
29556 var c = str.charCodeAt(i) -
48;
29565 } else if (c
>=
17) {
29576 BN.prototype._parseBase = function _parseBase (number, base, start) {
29577 // Initialize as zero
29578 this.words = [
0 ];
29581 // Find length of limb in base
29582 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
29586 limbPow = (limbPow / base) |
0;
29588 var total = number.length - start;
29589 var mod = total % limbLen;
29590 var end = Math.min(total, total - mod) + start;
29593 for (var i = start; i < end; i += limbLen) {
29594 word = parseBase(number, i, i + limbLen, base);
29596 this.imuln(limbPow);
29597 if (this.words[
0] + word <
0x4000000) {
29598 this.words[
0] += word;
29606 word = parseBase(number, i, number.length, base);
29608 for (i =
0; i < mod; i++) {
29613 if (this.words[
0] + word <
0x4000000) {
29614 this.words[
0] += word;
29621 BN.prototype.copy = function copy (dest) {
29622 dest.words = new Array(this.length);
29623 for (var i =
0; i < this.length; i++) {
29624 dest.words[i] = this.words[i];
29626 dest.length = this.length;
29627 dest.negative = this.negative;
29628 dest.red = this.red;
29631 BN.prototype.clone = function clone () {
29632 var r = new BN(null);
29637 BN.prototype._expand = function _expand (size) {
29638 while (this.length < size) {
29639 this.words[this.length++] =
0;
29644 // Remove leading `
0` from `this`
29645 BN.prototype.strip = function strip () {
29646 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
29649 return this._normSign();
29652 BN.prototype._normSign = function _normSign () {
29654 if (this.length ===
1 && this.words[
0] ===
0) {
29660 BN.prototype.inspect = function inspect () {
29661 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
29667 var groupSizes = [];
29668 var groupBases = [];
29672 while (++i < BN.wordSize) {
29681 while (++base <
36 +
1) {
29684 while (groupBase < (
1 << BN.wordSize) / base) {
29688 groupSizes[base] = groupSize;
29689 groupBases[base] = groupBase;
29711 '
0000000000000000',
29712 '
00000000000000000',
29713 '
000000000000000000',
29714 '
0000000000000000000',
29715 '
00000000000000000000',
29716 '
000000000000000000000',
29717 '
0000000000000000000000',
29718 '
00000000000000000000000',
29719 '
000000000000000000000000',
29720 '
0000000000000000000000000'
29725 25,
16,
12,
11,
10,
9,
8,
29726 8,
7,
7,
7,
7,
6,
6,
29727 6,
6,
6,
6,
6,
5,
5,
29728 5,
5,
5,
5,
5,
5,
5,
29729 5,
5,
5,
5,
5,
5,
5
29734 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
29735 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
29736 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
29737 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
29738 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
29741 BN.prototype.toString = function toString (base, padding) {
29743 padding = padding |
0 ||
1;
29746 if (base ===
16 || base === 'hex') {
29750 for (var i =
0; i < this.length; i++) {
29751 var w = this.words[i];
29752 var word = (((w << off) | carry) &
0xffffff).toString(
16);
29753 carry = (w
>>> (
24 - off)) &
0xffffff;
29754 if (carry !==
0 || i !== this.length -
1) {
29755 out = zeros[
6 - word.length] + word + out;
29766 out = carry.toString(
16) + out;
29768 while (out.length % padding !==
0) {
29771 if (this.negative !==
0) {
29777 if (base === (base |
0) && base
>=
2 && base <=
36) {
29778 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
29779 var groupSize = groupSizes[base];
29780 // var groupBase = Math.pow(base, groupSize);
29781 var groupBase = groupBases[base];
29783 var c = this.clone();
29785 while (!c.isZero()) {
29786 var r = c.modn(groupBase).toString(base);
29787 c = c.idivn(groupBase);
29790 out = zeros[groupSize - r.length] + r + out;
29795 if (this.isZero()) {
29798 while (out.length % padding !==
0) {
29801 if (this.negative !==
0) {
29807 assert(false, 'Base should be between
2 and
36');
29810 BN.prototype.toNumber = function toNumber () {
29811 var ret = this.words[
0];
29812 if (this.length ===
2) {
29813 ret += this.words[
1] *
0x4000000;
29814 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
29815 // NOTE: at this stage it is known that the top bit is set
29816 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
29817 } else if (this.length
> 2) {
29818 assert(false, 'Number can only safely store up to
53 bits');
29820 return (this.negative !==
0) ? -ret : ret;
29823 BN.prototype.toJSON = function toJSON () {
29824 return this.toString(
16);
29827 BN.prototype.toBuffer = function toBuffer (endian, length) {
29828 assert(typeof Buffer !== 'undefined');
29829 return this.toArrayLike(Buffer, endian, length);
29832 BN.prototype.toArray = function toArray (endian, length) {
29833 return this.toArrayLike(Array, endian, length);
29836 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
29837 var byteLength = this.byteLength();
29838 var reqLength = length || Math.max(
1, byteLength);
29839 assert(byteLength <= reqLength, 'byte array longer than desired length');
29840 assert(reqLength
> 0, 'Requested array length <=
0');
29843 var littleEndian = endian === 'le';
29844 var res = new ArrayType(reqLength);
29847 var q = this.clone();
29848 if (!littleEndian) {
29849 // Assume big-endian
29850 for (i =
0; i < reqLength - byteLength; i++) {
29854 for (i =
0; !q.isZero(); i++) {
29858 res[reqLength - i -
1] = b;
29861 for (i =
0; !q.isZero(); i++) {
29868 for (; i < reqLength; i++) {
29877 BN.prototype._countBits = function _countBits (w) {
29878 return
32 - Math.clz32(w);
29881 BN.prototype._countBits = function _countBits (w) {
29904 BN.prototype._zeroBits = function _zeroBits (w) {
29906 if (w ===
0) return
26;
29910 if ((t &
0x1fff) ===
0) {
29914 if ((t &
0x7f) ===
0) {
29918 if ((t &
0xf) ===
0) {
29922 if ((t &
0x3) ===
0) {
29926 if ((t &
0x1) ===
0) {
29932 // Return number of used bits in a BN
29933 BN.prototype.bitLength = function bitLength () {
29934 var w = this.words[this.length -
1];
29935 var hi = this._countBits(w);
29936 return (this.length -
1) *
26 + hi;
29939 function toBitArray (num) {
29940 var w = new Array(num.bitLength());
29942 for (var bit =
0; bit < w.length; bit++) {
29943 var off = (bit /
26) |
0;
29944 var wbit = bit %
26;
29946 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
29952 // Number of trailing zero bits
29953 BN.prototype.zeroBits = function zeroBits () {
29954 if (this.isZero()) return
0;
29957 for (var i =
0; i < this.length; i++) {
29958 var b = this._zeroBits(this.words[i]);
29960 if (b !==
26) break;
29965 BN.prototype.byteLength = function byteLength () {
29966 return Math.ceil(this.bitLength() /
8);
29969 BN.prototype.toTwos = function toTwos (width) {
29970 if (this.negative !==
0) {
29971 return this.abs().inotn(width).iaddn(
1);
29973 return this.clone();
29976 BN.prototype.fromTwos = function fromTwos (width) {
29977 if (this.testn(width -
1)) {
29978 return this.notn(width).iaddn(
1).ineg();
29980 return this.clone();
29983 BN.prototype.isNeg = function isNeg () {
29984 return this.negative !==
0;
29987 // Return negative clone of `this`
29988 BN.prototype.neg = function neg () {
29989 return this.clone().ineg();
29992 BN.prototype.ineg = function ineg () {
29993 if (!this.isZero()) {
29994 this.negative ^=
1;
30000 // Or `num` with `this` in-place
30001 BN.prototype.iuor = function iuor (num) {
30002 while (this.length < num.length) {
30003 this.words[this.length++] =
0;
30006 for (var i =
0; i < num.length; i++) {
30007 this.words[i] = this.words[i] | num.words[i];
30010 return this.strip();
30013 BN.prototype.ior = function ior (num) {
30014 assert((this.negative | num.negative) ===
0);
30015 return this.iuor(num);
30018 // Or `num` with `this`
30019 BN.prototype.or = function or (num) {
30020 if (this.length
> num.length) return this.clone().ior(num);
30021 return num.clone().ior(this);
30024 BN.prototype.uor = function uor (num) {
30025 if (this.length
> num.length) return this.clone().iuor(num);
30026 return num.clone().iuor(this);
30029 // And `num` with `this` in-place
30030 BN.prototype.iuand = function iuand (num) {
30031 // b = min-length(num, this)
30033 if (this.length
> num.length) {
30039 for (var i =
0; i < b.length; i++) {
30040 this.words[i] = this.words[i] & num.words[i];
30043 this.length = b.length;
30045 return this.strip();
30048 BN.prototype.iand = function iand (num) {
30049 assert((this.negative | num.negative) ===
0);
30050 return this.iuand(num);
30053 // And `num` with `this`
30054 BN.prototype.and = function and (num) {
30055 if (this.length
> num.length) return this.clone().iand(num);
30056 return num.clone().iand(this);
30059 BN.prototype.uand = function uand (num) {
30060 if (this.length
> num.length) return this.clone().iuand(num);
30061 return num.clone().iuand(this);
30064 // Xor `num` with `this` in-place
30065 BN.prototype.iuxor = function iuxor (num) {
30066 // a.length
> b.length
30069 if (this.length
> num.length) {
30077 for (var i =
0; i < b.length; i++) {
30078 this.words[i] = a.words[i] ^ b.words[i];
30082 for (; i < a.length; i++) {
30083 this.words[i] = a.words[i];
30087 this.length = a.length;
30089 return this.strip();
30092 BN.prototype.ixor = function ixor (num) {
30093 assert((this.negative | num.negative) ===
0);
30094 return this.iuxor(num);
30097 // Xor `num` with `this`
30098 BN.prototype.xor = function xor (num) {
30099 if (this.length
> num.length) return this.clone().ixor(num);
30100 return num.clone().ixor(this);
30103 BN.prototype.uxor = function uxor (num) {
30104 if (this.length
> num.length) return this.clone().iuxor(num);
30105 return num.clone().iuxor(this);
30108 // Not ``this`` with ``width`` bitwidth
30109 BN.prototype.inotn = function inotn (width) {
30110 assert(typeof width === 'number' && width
>=
0);
30112 var bytesNeeded = Math.ceil(width /
26) |
0;
30113 var bitsLeft = width %
26;
30115 // Extend the buffer with leading zeroes
30116 this._expand(bytesNeeded);
30118 if (bitsLeft
> 0) {
30122 // Handle complete words
30123 for (var i =
0; i < bytesNeeded; i++) {
30124 this.words[i] = ~this.words[i] &
0x3ffffff;
30127 // Handle the residue
30128 if (bitsLeft
> 0) {
30129 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
30132 // And remove leading zeroes
30133 return this.strip();
30136 BN.prototype.notn = function notn (width) {
30137 return this.clone().inotn(width);
30140 // Set `bit` of `this`
30141 BN.prototype.setn = function setn (bit, val) {
30142 assert(typeof bit === 'number' && bit
>=
0);
30144 var off = (bit /
26) |
0;
30145 var wbit = bit %
26;
30147 this._expand(off +
1);
30150 this.words[off] = this.words[off] | (
1 << wbit);
30152 this.words[off] = this.words[off] & ~(
1 << wbit);
30155 return this.strip();
30158 // Add `num` to `this` in-place
30159 BN.prototype.iadd = function iadd (num) {
30162 // negative + positive
30163 if (this.negative !==
0 && num.negative ===
0) {
30165 r = this.isub(num);
30166 this.negative ^=
1;
30167 return this._normSign();
30169 // positive + negative
30170 } else if (this.negative ===
0 && num.negative !==
0) {
30172 r = this.isub(num);
30174 return r._normSign();
30177 // a.length
> b.length
30179 if (this.length
> num.length) {
30188 for (var i =
0; i < b.length; i++) {
30189 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
30190 this.words[i] = r &
0x3ffffff;
30193 for (; carry !==
0 && i < a.length; i++) {
30194 r = (a.words[i] |
0) + carry;
30195 this.words[i] = r &
0x3ffffff;
30199 this.length = a.length;
30201 this.words[this.length] = carry;
30203 // Copy the rest of the words
30204 } else if (a !== this) {
30205 for (; i < a.length; i++) {
30206 this.words[i] = a.words[i];
30213 // Add `num` to `this`
30214 BN.prototype.add = function add (num) {
30216 if (num.negative !==
0 && this.negative ===
0) {
30218 res = this.sub(num);
30221 } else if (num.negative ===
0 && this.negative !==
0) {
30223 res = num.sub(this);
30228 if (this.length
> num.length) return this.clone().iadd(num);
30230 return num.clone().iadd(this);
30233 // Subtract `num` from `this` in-place
30234 BN.prototype.isub = function isub (num) {
30235 // this - (-num) = this + num
30236 if (num.negative !==
0) {
30238 var r = this.iadd(num);
30240 return r._normSign();
30242 // -this - num = -(this + num)
30243 } else if (this.negative !==
0) {
30247 return this._normSign();
30250 // At this point both numbers are positive
30251 var cmp = this.cmp(num);
30253 // Optimization - zeroify
30272 for (var i =
0; i < b.length; i++) {
30273 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
30275 this.words[i] = r &
0x3ffffff;
30277 for (; carry !==
0 && i < a.length; i++) {
30278 r = (a.words[i] |
0) + carry;
30280 this.words[i] = r &
0x3ffffff;
30283 // Copy rest of the words
30284 if (carry ===
0 && i < a.length && a !== this) {
30285 for (; i < a.length; i++) {
30286 this.words[i] = a.words[i];
30290 this.length = Math.max(this.length, i);
30296 return this.strip();
30299 // Subtract `num` from `this`
30300 BN.prototype.sub = function sub (num) {
30301 return this.clone().isub(num);
30304 function smallMulTo (self, num, out) {
30305 out.negative = num.negative ^ self.negative;
30306 var len = (self.length + num.length) |
0;
30308 len = (len -
1) |
0;
30310 // Peel one iteration (compiler can't do it, because of code complexity)
30311 var a = self.words[
0] |
0;
30312 var b = num.words[
0] |
0;
30315 var lo = r &
0x3ffffff;
30316 var carry = (r /
0x4000000) |
0;
30319 for (var k =
1; k < len; k++) {
30320 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30321 // note that ncarry could be
>=
0x3ffffff
30322 var ncarry = carry
>>> 26;
30323 var rword = carry &
0x3ffffff;
30324 var maxJ = Math.min(k, num.length -
1);
30325 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30326 var i = (k - j) |
0;
30327 a = self.words[i] |
0;
30328 b = num.words[j] |
0;
30330 ncarry += (r /
0x4000000) |
0;
30331 rword = r &
0x3ffffff;
30333 out.words[k] = rword |
0;
30334 carry = ncarry |
0;
30337 out.words[k] = carry |
0;
30342 return out.strip();
30345 // TODO(indutny): it may be reasonable to omit it for users who don't need
30346 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
30347 // multiplication (like elliptic secp256k1).
30348 var comb10MulTo = function comb10MulTo (self, num, out) {
30349 var a = self.words;
30357 var al0 = a0 &
0x1fff;
30358 var ah0 = a0
>>> 13;
30360 var al1 = a1 &
0x1fff;
30361 var ah1 = a1
>>> 13;
30363 var al2 = a2 &
0x1fff;
30364 var ah2 = a2
>>> 13;
30366 var al3 = a3 &
0x1fff;
30367 var ah3 = a3
>>> 13;
30369 var al4 = a4 &
0x1fff;
30370 var ah4 = a4
>>> 13;
30372 var al5 = a5 &
0x1fff;
30373 var ah5 = a5
>>> 13;
30375 var al6 = a6 &
0x1fff;
30376 var ah6 = a6
>>> 13;
30378 var al7 = a7 &
0x1fff;
30379 var ah7 = a7
>>> 13;
30381 var al8 = a8 &
0x1fff;
30382 var ah8 = a8
>>> 13;
30384 var al9 = a9 &
0x1fff;
30385 var ah9 = a9
>>> 13;
30387 var bl0 = b0 &
0x1fff;
30388 var bh0 = b0
>>> 13;
30390 var bl1 = b1 &
0x1fff;
30391 var bh1 = b1
>>> 13;
30393 var bl2 = b2 &
0x1fff;
30394 var bh2 = b2
>>> 13;
30396 var bl3 = b3 &
0x1fff;
30397 var bh3 = b3
>>> 13;
30399 var bl4 = b4 &
0x1fff;
30400 var bh4 = b4
>>> 13;
30402 var bl5 = b5 &
0x1fff;
30403 var bh5 = b5
>>> 13;
30405 var bl6 = b6 &
0x1fff;
30406 var bh6 = b6
>>> 13;
30408 var bl7 = b7 &
0x1fff;
30409 var bh7 = b7
>>> 13;
30411 var bl8 = b8 &
0x1fff;
30412 var bh8 = b8
>>> 13;
30414 var bl9 = b9 &
0x1fff;
30415 var bh9 = b9
>>> 13;
30417 out.negative = self.negative ^ num.negative;
30420 lo = Math.imul(al0, bl0);
30421 mid = Math.imul(al0, bh0);
30422 mid = (mid + Math.imul(ah0, bl0)) |
0;
30423 hi = Math.imul(ah0, bh0);
30424 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30425 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
30428 lo = Math.imul(al1, bl0);
30429 mid = Math.imul(al1, bh0);
30430 mid = (mid + Math.imul(ah1, bl0)) |
0;
30431 hi = Math.imul(ah1, bh0);
30432 lo = (lo + Math.imul(al0, bl1)) |
0;
30433 mid = (mid + Math.imul(al0, bh1)) |
0;
30434 mid = (mid + Math.imul(ah0, bl1)) |
0;
30435 hi = (hi + Math.imul(ah0, bh1)) |
0;
30436 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30437 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
30440 lo = Math.imul(al2, bl0);
30441 mid = Math.imul(al2, bh0);
30442 mid = (mid + Math.imul(ah2, bl0)) |
0;
30443 hi = Math.imul(ah2, bh0);
30444 lo = (lo + Math.imul(al1, bl1)) |
0;
30445 mid = (mid + Math.imul(al1, bh1)) |
0;
30446 mid = (mid + Math.imul(ah1, bl1)) |
0;
30447 hi = (hi + Math.imul(ah1, bh1)) |
0;
30448 lo = (lo + Math.imul(al0, bl2)) |
0;
30449 mid = (mid + Math.imul(al0, bh2)) |
0;
30450 mid = (mid + Math.imul(ah0, bl2)) |
0;
30451 hi = (hi + Math.imul(ah0, bh2)) |
0;
30452 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30453 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
30456 lo = Math.imul(al3, bl0);
30457 mid = Math.imul(al3, bh0);
30458 mid = (mid + Math.imul(ah3, bl0)) |
0;
30459 hi = Math.imul(ah3, bh0);
30460 lo = (lo + Math.imul(al2, bl1)) |
0;
30461 mid = (mid + Math.imul(al2, bh1)) |
0;
30462 mid = (mid + Math.imul(ah2, bl1)) |
0;
30463 hi = (hi + Math.imul(ah2, bh1)) |
0;
30464 lo = (lo + Math.imul(al1, bl2)) |
0;
30465 mid = (mid + Math.imul(al1, bh2)) |
0;
30466 mid = (mid + Math.imul(ah1, bl2)) |
0;
30467 hi = (hi + Math.imul(ah1, bh2)) |
0;
30468 lo = (lo + Math.imul(al0, bl3)) |
0;
30469 mid = (mid + Math.imul(al0, bh3)) |
0;
30470 mid = (mid + Math.imul(ah0, bl3)) |
0;
30471 hi = (hi + Math.imul(ah0, bh3)) |
0;
30472 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30473 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
30476 lo = Math.imul(al4, bl0);
30477 mid = Math.imul(al4, bh0);
30478 mid = (mid + Math.imul(ah4, bl0)) |
0;
30479 hi = Math.imul(ah4, bh0);
30480 lo = (lo + Math.imul(al3, bl1)) |
0;
30481 mid = (mid + Math.imul(al3, bh1)) |
0;
30482 mid = (mid + Math.imul(ah3, bl1)) |
0;
30483 hi = (hi + Math.imul(ah3, bh1)) |
0;
30484 lo = (lo + Math.imul(al2, bl2)) |
0;
30485 mid = (mid + Math.imul(al2, bh2)) |
0;
30486 mid = (mid + Math.imul(ah2, bl2)) |
0;
30487 hi = (hi + Math.imul(ah2, bh2)) |
0;
30488 lo = (lo + Math.imul(al1, bl3)) |
0;
30489 mid = (mid + Math.imul(al1, bh3)) |
0;
30490 mid = (mid + Math.imul(ah1, bl3)) |
0;
30491 hi = (hi + Math.imul(ah1, bh3)) |
0;
30492 lo = (lo + Math.imul(al0, bl4)) |
0;
30493 mid = (mid + Math.imul(al0, bh4)) |
0;
30494 mid = (mid + Math.imul(ah0, bl4)) |
0;
30495 hi = (hi + Math.imul(ah0, bh4)) |
0;
30496 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30497 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
30500 lo = Math.imul(al5, bl0);
30501 mid = Math.imul(al5, bh0);
30502 mid = (mid + Math.imul(ah5, bl0)) |
0;
30503 hi = Math.imul(ah5, bh0);
30504 lo = (lo + Math.imul(al4, bl1)) |
0;
30505 mid = (mid + Math.imul(al4, bh1)) |
0;
30506 mid = (mid + Math.imul(ah4, bl1)) |
0;
30507 hi = (hi + Math.imul(ah4, bh1)) |
0;
30508 lo = (lo + Math.imul(al3, bl2)) |
0;
30509 mid = (mid + Math.imul(al3, bh2)) |
0;
30510 mid = (mid + Math.imul(ah3, bl2)) |
0;
30511 hi = (hi + Math.imul(ah3, bh2)) |
0;
30512 lo = (lo + Math.imul(al2, bl3)) |
0;
30513 mid = (mid + Math.imul(al2, bh3)) |
0;
30514 mid = (mid + Math.imul(ah2, bl3)) |
0;
30515 hi = (hi + Math.imul(ah2, bh3)) |
0;
30516 lo = (lo + Math.imul(al1, bl4)) |
0;
30517 mid = (mid + Math.imul(al1, bh4)) |
0;
30518 mid = (mid + Math.imul(ah1, bl4)) |
0;
30519 hi = (hi + Math.imul(ah1, bh4)) |
0;
30520 lo = (lo + Math.imul(al0, bl5)) |
0;
30521 mid = (mid + Math.imul(al0, bh5)) |
0;
30522 mid = (mid + Math.imul(ah0, bl5)) |
0;
30523 hi = (hi + Math.imul(ah0, bh5)) |
0;
30524 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30525 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
30528 lo = Math.imul(al6, bl0);
30529 mid = Math.imul(al6, bh0);
30530 mid = (mid + Math.imul(ah6, bl0)) |
0;
30531 hi = Math.imul(ah6, bh0);
30532 lo = (lo + Math.imul(al5, bl1)) |
0;
30533 mid = (mid + Math.imul(al5, bh1)) |
0;
30534 mid = (mid + Math.imul(ah5, bl1)) |
0;
30535 hi = (hi + Math.imul(ah5, bh1)) |
0;
30536 lo = (lo + Math.imul(al4, bl2)) |
0;
30537 mid = (mid + Math.imul(al4, bh2)) |
0;
30538 mid = (mid + Math.imul(ah4, bl2)) |
0;
30539 hi = (hi + Math.imul(ah4, bh2)) |
0;
30540 lo = (lo + Math.imul(al3, bl3)) |
0;
30541 mid = (mid + Math.imul(al3, bh3)) |
0;
30542 mid = (mid + Math.imul(ah3, bl3)) |
0;
30543 hi = (hi + Math.imul(ah3, bh3)) |
0;
30544 lo = (lo + Math.imul(al2, bl4)) |
0;
30545 mid = (mid + Math.imul(al2, bh4)) |
0;
30546 mid = (mid + Math.imul(ah2, bl4)) |
0;
30547 hi = (hi + Math.imul(ah2, bh4)) |
0;
30548 lo = (lo + Math.imul(al1, bl5)) |
0;
30549 mid = (mid + Math.imul(al1, bh5)) |
0;
30550 mid = (mid + Math.imul(ah1, bl5)) |
0;
30551 hi = (hi + Math.imul(ah1, bh5)) |
0;
30552 lo = (lo + Math.imul(al0, bl6)) |
0;
30553 mid = (mid + Math.imul(al0, bh6)) |
0;
30554 mid = (mid + Math.imul(ah0, bl6)) |
0;
30555 hi = (hi + Math.imul(ah0, bh6)) |
0;
30556 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30557 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
30560 lo = Math.imul(al7, bl0);
30561 mid = Math.imul(al7, bh0);
30562 mid = (mid + Math.imul(ah7, bl0)) |
0;
30563 hi = Math.imul(ah7, bh0);
30564 lo = (lo + Math.imul(al6, bl1)) |
0;
30565 mid = (mid + Math.imul(al6, bh1)) |
0;
30566 mid = (mid + Math.imul(ah6, bl1)) |
0;
30567 hi = (hi + Math.imul(ah6, bh1)) |
0;
30568 lo = (lo + Math.imul(al5, bl2)) |
0;
30569 mid = (mid + Math.imul(al5, bh2)) |
0;
30570 mid = (mid + Math.imul(ah5, bl2)) |
0;
30571 hi = (hi + Math.imul(ah5, bh2)) |
0;
30572 lo = (lo + Math.imul(al4, bl3)) |
0;
30573 mid = (mid + Math.imul(al4, bh3)) |
0;
30574 mid = (mid + Math.imul(ah4, bl3)) |
0;
30575 hi = (hi + Math.imul(ah4, bh3)) |
0;
30576 lo = (lo + Math.imul(al3, bl4)) |
0;
30577 mid = (mid + Math.imul(al3, bh4)) |
0;
30578 mid = (mid + Math.imul(ah3, bl4)) |
0;
30579 hi = (hi + Math.imul(ah3, bh4)) |
0;
30580 lo = (lo + Math.imul(al2, bl5)) |
0;
30581 mid = (mid + Math.imul(al2, bh5)) |
0;
30582 mid = (mid + Math.imul(ah2, bl5)) |
0;
30583 hi = (hi + Math.imul(ah2, bh5)) |
0;
30584 lo = (lo + Math.imul(al1, bl6)) |
0;
30585 mid = (mid + Math.imul(al1, bh6)) |
0;
30586 mid = (mid + Math.imul(ah1, bl6)) |
0;
30587 hi = (hi + Math.imul(ah1, bh6)) |
0;
30588 lo = (lo + Math.imul(al0, bl7)) |
0;
30589 mid = (mid + Math.imul(al0, bh7)) |
0;
30590 mid = (mid + Math.imul(ah0, bl7)) |
0;
30591 hi = (hi + Math.imul(ah0, bh7)) |
0;
30592 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30593 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
30596 lo = Math.imul(al8, bl0);
30597 mid = Math.imul(al8, bh0);
30598 mid = (mid + Math.imul(ah8, bl0)) |
0;
30599 hi = Math.imul(ah8, bh0);
30600 lo = (lo + Math.imul(al7, bl1)) |
0;
30601 mid = (mid + Math.imul(al7, bh1)) |
0;
30602 mid = (mid + Math.imul(ah7, bl1)) |
0;
30603 hi = (hi + Math.imul(ah7, bh1)) |
0;
30604 lo = (lo + Math.imul(al6, bl2)) |
0;
30605 mid = (mid + Math.imul(al6, bh2)) |
0;
30606 mid = (mid + Math.imul(ah6, bl2)) |
0;
30607 hi = (hi + Math.imul(ah6, bh2)) |
0;
30608 lo = (lo + Math.imul(al5, bl3)) |
0;
30609 mid = (mid + Math.imul(al5, bh3)) |
0;
30610 mid = (mid + Math.imul(ah5, bl3)) |
0;
30611 hi = (hi + Math.imul(ah5, bh3)) |
0;
30612 lo = (lo + Math.imul(al4, bl4)) |
0;
30613 mid = (mid + Math.imul(al4, bh4)) |
0;
30614 mid = (mid + Math.imul(ah4, bl4)) |
0;
30615 hi = (hi + Math.imul(ah4, bh4)) |
0;
30616 lo = (lo + Math.imul(al3, bl5)) |
0;
30617 mid = (mid + Math.imul(al3, bh5)) |
0;
30618 mid = (mid + Math.imul(ah3, bl5)) |
0;
30619 hi = (hi + Math.imul(ah3, bh5)) |
0;
30620 lo = (lo + Math.imul(al2, bl6)) |
0;
30621 mid = (mid + Math.imul(al2, bh6)) |
0;
30622 mid = (mid + Math.imul(ah2, bl6)) |
0;
30623 hi = (hi + Math.imul(ah2, bh6)) |
0;
30624 lo = (lo + Math.imul(al1, bl7)) |
0;
30625 mid = (mid + Math.imul(al1, bh7)) |
0;
30626 mid = (mid + Math.imul(ah1, bl7)) |
0;
30627 hi = (hi + Math.imul(ah1, bh7)) |
0;
30628 lo = (lo + Math.imul(al0, bl8)) |
0;
30629 mid = (mid + Math.imul(al0, bh8)) |
0;
30630 mid = (mid + Math.imul(ah0, bl8)) |
0;
30631 hi = (hi + Math.imul(ah0, bh8)) |
0;
30632 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30633 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
30636 lo = Math.imul(al9, bl0);
30637 mid = Math.imul(al9, bh0);
30638 mid = (mid + Math.imul(ah9, bl0)) |
0;
30639 hi = Math.imul(ah9, bh0);
30640 lo = (lo + Math.imul(al8, bl1)) |
0;
30641 mid = (mid + Math.imul(al8, bh1)) |
0;
30642 mid = (mid + Math.imul(ah8, bl1)) |
0;
30643 hi = (hi + Math.imul(ah8, bh1)) |
0;
30644 lo = (lo + Math.imul(al7, bl2)) |
0;
30645 mid = (mid + Math.imul(al7, bh2)) |
0;
30646 mid = (mid + Math.imul(ah7, bl2)) |
0;
30647 hi = (hi + Math.imul(ah7, bh2)) |
0;
30648 lo = (lo + Math.imul(al6, bl3)) |
0;
30649 mid = (mid + Math.imul(al6, bh3)) |
0;
30650 mid = (mid + Math.imul(ah6, bl3)) |
0;
30651 hi = (hi + Math.imul(ah6, bh3)) |
0;
30652 lo = (lo + Math.imul(al5, bl4)) |
0;
30653 mid = (mid + Math.imul(al5, bh4)) |
0;
30654 mid = (mid + Math.imul(ah5, bl4)) |
0;
30655 hi = (hi + Math.imul(ah5, bh4)) |
0;
30656 lo = (lo + Math.imul(al4, bl5)) |
0;
30657 mid = (mid + Math.imul(al4, bh5)) |
0;
30658 mid = (mid + Math.imul(ah4, bl5)) |
0;
30659 hi = (hi + Math.imul(ah4, bh5)) |
0;
30660 lo = (lo + Math.imul(al3, bl6)) |
0;
30661 mid = (mid + Math.imul(al3, bh6)) |
0;
30662 mid = (mid + Math.imul(ah3, bl6)) |
0;
30663 hi = (hi + Math.imul(ah3, bh6)) |
0;
30664 lo = (lo + Math.imul(al2, bl7)) |
0;
30665 mid = (mid + Math.imul(al2, bh7)) |
0;
30666 mid = (mid + Math.imul(ah2, bl7)) |
0;
30667 hi = (hi + Math.imul(ah2, bh7)) |
0;
30668 lo = (lo + Math.imul(al1, bl8)) |
0;
30669 mid = (mid + Math.imul(al1, bh8)) |
0;
30670 mid = (mid + Math.imul(ah1, bl8)) |
0;
30671 hi = (hi + Math.imul(ah1, bh8)) |
0;
30672 lo = (lo + Math.imul(al0, bl9)) |
0;
30673 mid = (mid + Math.imul(al0, bh9)) |
0;
30674 mid = (mid + Math.imul(ah0, bl9)) |
0;
30675 hi = (hi + Math.imul(ah0, bh9)) |
0;
30676 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30677 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
30680 lo = Math.imul(al9, bl1);
30681 mid = Math.imul(al9, bh1);
30682 mid = (mid + Math.imul(ah9, bl1)) |
0;
30683 hi = Math.imul(ah9, bh1);
30684 lo = (lo + Math.imul(al8, bl2)) |
0;
30685 mid = (mid + Math.imul(al8, bh2)) |
0;
30686 mid = (mid + Math.imul(ah8, bl2)) |
0;
30687 hi = (hi + Math.imul(ah8, bh2)) |
0;
30688 lo = (lo + Math.imul(al7, bl3)) |
0;
30689 mid = (mid + Math.imul(al7, bh3)) |
0;
30690 mid = (mid + Math.imul(ah7, bl3)) |
0;
30691 hi = (hi + Math.imul(ah7, bh3)) |
0;
30692 lo = (lo + Math.imul(al6, bl4)) |
0;
30693 mid = (mid + Math.imul(al6, bh4)) |
0;
30694 mid = (mid + Math.imul(ah6, bl4)) |
0;
30695 hi = (hi + Math.imul(ah6, bh4)) |
0;
30696 lo = (lo + Math.imul(al5, bl5)) |
0;
30697 mid = (mid + Math.imul(al5, bh5)) |
0;
30698 mid = (mid + Math.imul(ah5, bl5)) |
0;
30699 hi = (hi + Math.imul(ah5, bh5)) |
0;
30700 lo = (lo + Math.imul(al4, bl6)) |
0;
30701 mid = (mid + Math.imul(al4, bh6)) |
0;
30702 mid = (mid + Math.imul(ah4, bl6)) |
0;
30703 hi = (hi + Math.imul(ah4, bh6)) |
0;
30704 lo = (lo + Math.imul(al3, bl7)) |
0;
30705 mid = (mid + Math.imul(al3, bh7)) |
0;
30706 mid = (mid + Math.imul(ah3, bl7)) |
0;
30707 hi = (hi + Math.imul(ah3, bh7)) |
0;
30708 lo = (lo + Math.imul(al2, bl8)) |
0;
30709 mid = (mid + Math.imul(al2, bh8)) |
0;
30710 mid = (mid + Math.imul(ah2, bl8)) |
0;
30711 hi = (hi + Math.imul(ah2, bh8)) |
0;
30712 lo = (lo + Math.imul(al1, bl9)) |
0;
30713 mid = (mid + Math.imul(al1, bh9)) |
0;
30714 mid = (mid + Math.imul(ah1, bl9)) |
0;
30715 hi = (hi + Math.imul(ah1, bh9)) |
0;
30716 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30717 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
30720 lo = Math.imul(al9, bl2);
30721 mid = Math.imul(al9, bh2);
30722 mid = (mid + Math.imul(ah9, bl2)) |
0;
30723 hi = Math.imul(ah9, bh2);
30724 lo = (lo + Math.imul(al8, bl3)) |
0;
30725 mid = (mid + Math.imul(al8, bh3)) |
0;
30726 mid = (mid + Math.imul(ah8, bl3)) |
0;
30727 hi = (hi + Math.imul(ah8, bh3)) |
0;
30728 lo = (lo + Math.imul(al7, bl4)) |
0;
30729 mid = (mid + Math.imul(al7, bh4)) |
0;
30730 mid = (mid + Math.imul(ah7, bl4)) |
0;
30731 hi = (hi + Math.imul(ah7, bh4)) |
0;
30732 lo = (lo + Math.imul(al6, bl5)) |
0;
30733 mid = (mid + Math.imul(al6, bh5)) |
0;
30734 mid = (mid + Math.imul(ah6, bl5)) |
0;
30735 hi = (hi + Math.imul(ah6, bh5)) |
0;
30736 lo = (lo + Math.imul(al5, bl6)) |
0;
30737 mid = (mid + Math.imul(al5, bh6)) |
0;
30738 mid = (mid + Math.imul(ah5, bl6)) |
0;
30739 hi = (hi + Math.imul(ah5, bh6)) |
0;
30740 lo = (lo + Math.imul(al4, bl7)) |
0;
30741 mid = (mid + Math.imul(al4, bh7)) |
0;
30742 mid = (mid + Math.imul(ah4, bl7)) |
0;
30743 hi = (hi + Math.imul(ah4, bh7)) |
0;
30744 lo = (lo + Math.imul(al3, bl8)) |
0;
30745 mid = (mid + Math.imul(al3, bh8)) |
0;
30746 mid = (mid + Math.imul(ah3, bl8)) |
0;
30747 hi = (hi + Math.imul(ah3, bh8)) |
0;
30748 lo = (lo + Math.imul(al2, bl9)) |
0;
30749 mid = (mid + Math.imul(al2, bh9)) |
0;
30750 mid = (mid + Math.imul(ah2, bl9)) |
0;
30751 hi = (hi + Math.imul(ah2, bh9)) |
0;
30752 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30753 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
30756 lo = Math.imul(al9, bl3);
30757 mid = Math.imul(al9, bh3);
30758 mid = (mid + Math.imul(ah9, bl3)) |
0;
30759 hi = Math.imul(ah9, bh3);
30760 lo = (lo + Math.imul(al8, bl4)) |
0;
30761 mid = (mid + Math.imul(al8, bh4)) |
0;
30762 mid = (mid + Math.imul(ah8, bl4)) |
0;
30763 hi = (hi + Math.imul(ah8, bh4)) |
0;
30764 lo = (lo + Math.imul(al7, bl5)) |
0;
30765 mid = (mid + Math.imul(al7, bh5)) |
0;
30766 mid = (mid + Math.imul(ah7, bl5)) |
0;
30767 hi = (hi + Math.imul(ah7, bh5)) |
0;
30768 lo = (lo + Math.imul(al6, bl6)) |
0;
30769 mid = (mid + Math.imul(al6, bh6)) |
0;
30770 mid = (mid + Math.imul(ah6, bl6)) |
0;
30771 hi = (hi + Math.imul(ah6, bh6)) |
0;
30772 lo = (lo + Math.imul(al5, bl7)) |
0;
30773 mid = (mid + Math.imul(al5, bh7)) |
0;
30774 mid = (mid + Math.imul(ah5, bl7)) |
0;
30775 hi = (hi + Math.imul(ah5, bh7)) |
0;
30776 lo = (lo + Math.imul(al4, bl8)) |
0;
30777 mid = (mid + Math.imul(al4, bh8)) |
0;
30778 mid = (mid + Math.imul(ah4, bl8)) |
0;
30779 hi = (hi + Math.imul(ah4, bh8)) |
0;
30780 lo = (lo + Math.imul(al3, bl9)) |
0;
30781 mid = (mid + Math.imul(al3, bh9)) |
0;
30782 mid = (mid + Math.imul(ah3, bl9)) |
0;
30783 hi = (hi + Math.imul(ah3, bh9)) |
0;
30784 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30785 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
30788 lo = Math.imul(al9, bl4);
30789 mid = Math.imul(al9, bh4);
30790 mid = (mid + Math.imul(ah9, bl4)) |
0;
30791 hi = Math.imul(ah9, bh4);
30792 lo = (lo + Math.imul(al8, bl5)) |
0;
30793 mid = (mid + Math.imul(al8, bh5)) |
0;
30794 mid = (mid + Math.imul(ah8, bl5)) |
0;
30795 hi = (hi + Math.imul(ah8, bh5)) |
0;
30796 lo = (lo + Math.imul(al7, bl6)) |
0;
30797 mid = (mid + Math.imul(al7, bh6)) |
0;
30798 mid = (mid + Math.imul(ah7, bl6)) |
0;
30799 hi = (hi + Math.imul(ah7, bh6)) |
0;
30800 lo = (lo + Math.imul(al6, bl7)) |
0;
30801 mid = (mid + Math.imul(al6, bh7)) |
0;
30802 mid = (mid + Math.imul(ah6, bl7)) |
0;
30803 hi = (hi + Math.imul(ah6, bh7)) |
0;
30804 lo = (lo + Math.imul(al5, bl8)) |
0;
30805 mid = (mid + Math.imul(al5, bh8)) |
0;
30806 mid = (mid + Math.imul(ah5, bl8)) |
0;
30807 hi = (hi + Math.imul(ah5, bh8)) |
0;
30808 lo = (lo + Math.imul(al4, bl9)) |
0;
30809 mid = (mid + Math.imul(al4, bh9)) |
0;
30810 mid = (mid + Math.imul(ah4, bl9)) |
0;
30811 hi = (hi + Math.imul(ah4, bh9)) |
0;
30812 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30813 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
30816 lo = Math.imul(al9, bl5);
30817 mid = Math.imul(al9, bh5);
30818 mid = (mid + Math.imul(ah9, bl5)) |
0;
30819 hi = Math.imul(ah9, bh5);
30820 lo = (lo + Math.imul(al8, bl6)) |
0;
30821 mid = (mid + Math.imul(al8, bh6)) |
0;
30822 mid = (mid + Math.imul(ah8, bl6)) |
0;
30823 hi = (hi + Math.imul(ah8, bh6)) |
0;
30824 lo = (lo + Math.imul(al7, bl7)) |
0;
30825 mid = (mid + Math.imul(al7, bh7)) |
0;
30826 mid = (mid + Math.imul(ah7, bl7)) |
0;
30827 hi = (hi + Math.imul(ah7, bh7)) |
0;
30828 lo = (lo + Math.imul(al6, bl8)) |
0;
30829 mid = (mid + Math.imul(al6, bh8)) |
0;
30830 mid = (mid + Math.imul(ah6, bl8)) |
0;
30831 hi = (hi + Math.imul(ah6, bh8)) |
0;
30832 lo = (lo + Math.imul(al5, bl9)) |
0;
30833 mid = (mid + Math.imul(al5, bh9)) |
0;
30834 mid = (mid + Math.imul(ah5, bl9)) |
0;
30835 hi = (hi + Math.imul(ah5, bh9)) |
0;
30836 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30837 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
30840 lo = Math.imul(al9, bl6);
30841 mid = Math.imul(al9, bh6);
30842 mid = (mid + Math.imul(ah9, bl6)) |
0;
30843 hi = Math.imul(ah9, bh6);
30844 lo = (lo + Math.imul(al8, bl7)) |
0;
30845 mid = (mid + Math.imul(al8, bh7)) |
0;
30846 mid = (mid + Math.imul(ah8, bl7)) |
0;
30847 hi = (hi + Math.imul(ah8, bh7)) |
0;
30848 lo = (lo + Math.imul(al7, bl8)) |
0;
30849 mid = (mid + Math.imul(al7, bh8)) |
0;
30850 mid = (mid + Math.imul(ah7, bl8)) |
0;
30851 hi = (hi + Math.imul(ah7, bh8)) |
0;
30852 lo = (lo + Math.imul(al6, bl9)) |
0;
30853 mid = (mid + Math.imul(al6, bh9)) |
0;
30854 mid = (mid + Math.imul(ah6, bl9)) |
0;
30855 hi = (hi + Math.imul(ah6, bh9)) |
0;
30856 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30857 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
30860 lo = Math.imul(al9, bl7);
30861 mid = Math.imul(al9, bh7);
30862 mid = (mid + Math.imul(ah9, bl7)) |
0;
30863 hi = Math.imul(ah9, bh7);
30864 lo = (lo + Math.imul(al8, bl8)) |
0;
30865 mid = (mid + Math.imul(al8, bh8)) |
0;
30866 mid = (mid + Math.imul(ah8, bl8)) |
0;
30867 hi = (hi + Math.imul(ah8, bh8)) |
0;
30868 lo = (lo + Math.imul(al7, bl9)) |
0;
30869 mid = (mid + Math.imul(al7, bh9)) |
0;
30870 mid = (mid + Math.imul(ah7, bl9)) |
0;
30871 hi = (hi + Math.imul(ah7, bh9)) |
0;
30872 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30873 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
30876 lo = Math.imul(al9, bl8);
30877 mid = Math.imul(al9, bh8);
30878 mid = (mid + Math.imul(ah9, bl8)) |
0;
30879 hi = Math.imul(ah9, bh8);
30880 lo = (lo + Math.imul(al8, bl9)) |
0;
30881 mid = (mid + Math.imul(al8, bh9)) |
0;
30882 mid = (mid + Math.imul(ah8, bl9)) |
0;
30883 hi = (hi + Math.imul(ah8, bh9)) |
0;
30884 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30885 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
30888 lo = Math.imul(al9, bl9);
30889 mid = Math.imul(al9, bh9);
30890 mid = (mid + Math.imul(ah9, bl9)) |
0;
30891 hi = Math.imul(ah9, bh9);
30892 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30893 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
30923 comb10MulTo = smallMulTo;
30926 function bigMulTo (self, num, out) {
30927 out.negative = num.negative ^ self.negative;
30928 out.length = self.length + num.length;
30932 for (var k =
0; k < out.length -
1; k++) {
30933 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30934 // note that ncarry could be
>=
0x3ffffff
30935 var ncarry = hncarry;
30937 var rword = carry &
0x3ffffff;
30938 var maxJ = Math.min(k, num.length -
1);
30939 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30941 var a = self.words[i] |
0;
30942 var b = num.words[j] |
0;
30945 var lo = r &
0x3ffffff;
30946 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
30947 lo = (lo + rword) |
0;
30948 rword = lo &
0x3ffffff;
30949 ncarry = (ncarry + (lo
>>> 26)) |
0;
30951 hncarry += ncarry
>>> 26;
30952 ncarry &=
0x3ffffff;
30954 out.words[k] = rword;
30959 out.words[k] = carry;
30964 return out.strip();
30967 function jumboMulTo (self, num, out) {
30968 var fftm = new FFTM();
30969 return fftm.mulp(self, num, out);
30972 BN.prototype.mulTo = function mulTo (num, out) {
30974 var len = this.length + num.length;
30975 if (this.length ===
10 && num.length ===
10) {
30976 res = comb10MulTo(this, num, out);
30977 } else if (len <
63) {
30978 res = smallMulTo(this, num, out);
30979 } else if (len <
1024) {
30980 res = bigMulTo(this, num, out);
30982 res = jumboMulTo(this, num, out);
30988 // Cooley-Tukey algorithm for FFT
30989 // slightly revisited to rely on looping instead of recursion
30991 function FFTM (x, y) {
30996 FFTM.prototype.makeRBT = function makeRBT (N) {
30997 var t = new Array(N);
30998 var l = BN.prototype._countBits(N) -
1;
30999 for (var i =
0; i < N; i++) {
31000 t[i] = this.revBin(i, l, N);
31006 // Returns binary-reversed representation of `x`
31007 FFTM.prototype.revBin = function revBin (x, l, N) {
31008 if (x ===
0 || x === N -
1) return x;
31011 for (var i =
0; i < l; i++) {
31012 rb |= (x &
1) << (l - i -
1);
31019 // Performs "tweedling" phase, therefore 'emulating'
31020 // behaviour of the recursive algorithm
31021 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
31022 for (var i =
0; i < N; i++) {
31023 rtws[i] = rws[rbt[i]];
31024 itws[i] = iws[rbt[i]];
31028 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
31029 this.permute(rbt, rws, iws, rtws, itws, N);
31031 for (var s =
1; s < N; s <<=
1) {
31034 var rtwdf = Math.cos(
2 * Math.PI / l);
31035 var itwdf = Math.sin(
2 * Math.PI / l);
31037 for (var p =
0; p < N; p += l) {
31038 var rtwdf_ = rtwdf;
31039 var itwdf_ = itwdf;
31041 for (var j =
0; j < s; j++) {
31042 var re = rtws[p + j];
31043 var ie = itws[p + j];
31045 var ro = rtws[p + j + s];
31046 var io = itws[p + j + s];
31048 var rx = rtwdf_ * ro - itwdf_ * io;
31050 io = rtwdf_ * io + itwdf_ * ro;
31053 rtws[p + j] = re + ro;
31054 itws[p + j] = ie + io;
31056 rtws[p + j + s] = re - ro;
31057 itws[p + j + s] = ie - io;
31059 /* jshint maxdepth : false */
31061 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
31063 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
31071 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
31072 var N = Math.max(m, n) |
1;
31075 for (N = N /
2 |
0; N; N = N
>>> 1) {
31079 return
1 << i +
1 + odd;
31082 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
31083 if (N <=
1) return;
31085 for (var i =
0; i < N /
2; i++) {
31088 rws[i] = rws[N - i -
1];
31089 rws[N - i -
1] = t;
31093 iws[i] = -iws[N - i -
1];
31094 iws[N - i -
1] = -t;
31098 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
31100 for (var i =
0; i < N /
2; i++) {
31101 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
31102 Math.round(ws[
2 * i] / N) +
31105 ws[i] = w &
0x3ffffff;
31107 if (w <
0x4000000) {
31110 carry = w /
0x4000000 |
0;
31117 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
31119 for (var i =
0; i < len; i++) {
31120 carry = carry + (ws[i] |
0);
31122 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
31123 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
31127 for (i =
2 * len; i < N; ++i) {
31131 assert(carry ===
0);
31132 assert((carry & ~
0x1fff) ===
0);
31135 FFTM.prototype.stub = function stub (N) {
31136 var ph = new Array(N);
31137 for (var i =
0; i < N; i++) {
31144 FFTM.prototype.mulp = function mulp (x, y, out) {
31145 var N =
2 * this.guessLen13b(x.length, y.length);
31147 var rbt = this.makeRBT(N);
31149 var _ = this.stub(N);
31151 var rws = new Array(N);
31152 var rwst = new Array(N);
31153 var iwst = new Array(N);
31155 var nrws = new Array(N);
31156 var nrwst = new Array(N);
31157 var niwst = new Array(N);
31159 var rmws = out.words;
31162 this.convert13b(x.words, x.length, rws, N);
31163 this.convert13b(y.words, y.length, nrws, N);
31165 this.transform(rws, _, rwst, iwst, N, rbt);
31166 this.transform(nrws, _, nrwst, niwst, N, rbt);
31168 for (var i =
0; i < N; i++) {
31169 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
31170 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
31174 this.conjugate(rwst, iwst, N);
31175 this.transform(rwst, iwst, rmws, _, N, rbt);
31176 this.conjugate(rmws, _, N);
31177 this.normalize13b(rmws, N);
31179 out.negative = x.negative ^ y.negative;
31180 out.length = x.length + y.length;
31181 return out.strip();
31184 // Multiply `this` by `num`
31185 BN.prototype.mul = function mul (num) {
31186 var out = new BN(null);
31187 out.words = new Array(this.length + num.length);
31188 return this.mulTo(num, out);
31191 // Multiply employing FFT
31192 BN.prototype.mulf = function mulf (num) {
31193 var out = new BN(null);
31194 out.words = new Array(this.length + num.length);
31195 return jumboMulTo(this, num, out);
31198 // In-place Multiplication
31199 BN.prototype.imul = function imul (num) {
31200 return this.clone().mulTo(num, this);
31203 BN.prototype.imuln = function imuln (num) {
31204 assert(typeof num === 'number');
31205 assert(num <
0x4000000);
31209 for (var i =
0; i < this.length; i++) {
31210 var w = (this.words[i] |
0) * num;
31211 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
31213 carry += (w /
0x4000000) |
0;
31214 // NOTE: lo is
27bit maximum
31215 carry += lo
>>> 26;
31216 this.words[i] = lo &
0x3ffffff;
31220 this.words[i] = carry;
31227 BN.prototype.muln = function muln (num) {
31228 return this.clone().imuln(num);
31232 BN.prototype.sqr = function sqr () {
31233 return this.mul(this);
31236 // `this` * `this` in-place
31237 BN.prototype.isqr = function isqr () {
31238 return this.imul(this.clone());
31241 // Math.pow(`this`, `num`)
31242 BN.prototype.pow = function pow (num) {
31243 var w = toBitArray(num);
31244 if (w.length ===
0) return new BN(
1);
31246 // Skip leading zeroes
31248 for (var i =
0; i < w.length; i++, res = res.sqr()) {
31249 if (w[i] !==
0) break;
31252 if (++i < w.length) {
31253 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
31254 if (w[i] ===
0) continue;
31263 // Shift-left in-place
31264 BN.prototype.iushln = function iushln (bits) {
31265 assert(typeof bits === 'number' && bits
>=
0);
31267 var s = (bits - r) /
26;
31268 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
31274 for (i =
0; i < this.length; i++) {
31275 var newCarry = this.words[i] & carryMask;
31276 var c = ((this.words[i] |
0) - newCarry) << r;
31277 this.words[i] = c | carry;
31278 carry = newCarry
>>> (
26 - r);
31282 this.words[i] = carry;
31288 for (i = this.length -
1; i
>=
0; i--) {
31289 this.words[i + s] = this.words[i];
31292 for (i =
0; i < s; i++) {
31299 return this.strip();
31302 BN.prototype.ishln = function ishln (bits) {
31303 // TODO(indutny): implement me
31304 assert(this.negative ===
0);
31305 return this.iushln(bits);
31308 // Shift-right in-place
31309 // NOTE: `hint` is a lowest bit before trailing zeroes
31310 // NOTE: if `extended` is present - it will be filled with destroyed bits
31311 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
31312 assert(typeof bits === 'number' && bits
>=
0);
31315 h = (hint - (hint %
26)) /
26;
31321 var s = Math.min((bits - r) /
26, this.length);
31322 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31323 var maskedWords = extended;
31326 h = Math.max(
0, h);
31328 // Extended mode, copy masked part
31330 for (var i =
0; i < s; i++) {
31331 maskedWords.words[i] = this.words[i];
31333 maskedWords.length = s;
31337 // No-op, we should not move anything at all
31338 } else if (this.length
> s) {
31340 for (i =
0; i < this.length; i++) {
31341 this.words[i] = this.words[i + s];
31349 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
31350 var word = this.words[i] |
0;
31351 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
31352 carry = word & mask;
31355 // Push carried bits as a mask
31356 if (maskedWords && carry !==
0) {
31357 maskedWords.words[maskedWords.length++] = carry;
31360 if (this.length ===
0) {
31365 return this.strip();
31368 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
31369 // TODO(indutny): implement me
31370 assert(this.negative ===
0);
31371 return this.iushrn(bits, hint, extended);
31375 BN.prototype.shln = function shln (bits) {
31376 return this.clone().ishln(bits);
31379 BN.prototype.ushln = function ushln (bits) {
31380 return this.clone().iushln(bits);
31384 BN.prototype.shrn = function shrn (bits) {
31385 return this.clone().ishrn(bits);
31388 BN.prototype.ushrn = function ushrn (bits) {
31389 return this.clone().iushrn(bits);
31392 // Test if n bit is set
31393 BN.prototype.testn = function testn (bit) {
31394 assert(typeof bit === 'number' && bit
>=
0);
31396 var s = (bit - r) /
26;
31399 // Fast case: bit is much higher than all existing words
31400 if (this.length <= s) return false;
31402 // Check bit and return
31403 var w = this.words[s];
31408 // Return only lowers bits of number (in-place)
31409 BN.prototype.imaskn = function imaskn (bits) {
31410 assert(typeof bits === 'number' && bits
>=
0);
31412 var s = (bits - r) /
26;
31414 assert(this.negative ===
0, 'imaskn works only with positive numbers');
31416 if (this.length <= s) {
31423 this.length = Math.min(s, this.length);
31426 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31427 this.words[this.length -
1] &= mask;
31430 return this.strip();
31433 // Return only lowers bits of number
31434 BN.prototype.maskn = function maskn (bits) {
31435 return this.clone().imaskn(bits);
31438 // Add plain number `num` to `this`
31439 BN.prototype.iaddn = function iaddn (num) {
31440 assert(typeof num === 'number');
31441 assert(num <
0x4000000);
31442 if (num <
0) return this.isubn(-num);
31444 // Possible sign change
31445 if (this.negative !==
0) {
31446 if (this.length ===
1 && (this.words[
0] |
0) < num) {
31447 this.words[
0] = num - (this.words[
0] |
0);
31458 // Add without checks
31459 return this._iaddn(num);
31462 BN.prototype._iaddn = function _iaddn (num) {
31463 this.words[
0] += num;
31466 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
31467 this.words[i] -=
0x4000000;
31468 if (i === this.length -
1) {
31469 this.words[i +
1] =
1;
31471 this.words[i +
1]++;
31474 this.length = Math.max(this.length, i +
1);
31479 // Subtract plain number `num` from `this`
31480 BN.prototype.isubn = function isubn (num) {
31481 assert(typeof num === 'number');
31482 assert(num <
0x4000000);
31483 if (num <
0) return this.iaddn(-num);
31485 if (this.negative !==
0) {
31492 this.words[
0] -= num;
31494 if (this.length ===
1 && this.words[
0] <
0) {
31495 this.words[
0] = -this.words[
0];
31499 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
31500 this.words[i] +=
0x4000000;
31501 this.words[i +
1] -=
1;
31505 return this.strip();
31508 BN.prototype.addn = function addn (num) {
31509 return this.clone().iaddn(num);
31512 BN.prototype.subn = function subn (num) {
31513 return this.clone().isubn(num);
31516 BN.prototype.iabs = function iabs () {
31522 BN.prototype.abs = function abs () {
31523 return this.clone().iabs();
31526 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
31527 var len = num.length + shift;
31534 for (i =
0; i < num.length; i++) {
31535 w = (this.words[i + shift] |
0) + carry;
31536 var right = (num.words[i] |
0) * mul;
31537 w -= right &
0x3ffffff;
31538 carry = (w
>> 26) - ((right /
0x4000000) |
0);
31539 this.words[i + shift] = w &
0x3ffffff;
31541 for (; i < this.length - shift; i++) {
31542 w = (this.words[i + shift] |
0) + carry;
31544 this.words[i + shift] = w &
0x3ffffff;
31547 if (carry ===
0) return this.strip();
31549 // Subtraction overflow
31550 assert(carry === -
1);
31552 for (i =
0; i < this.length; i++) {
31553 w = -(this.words[i] |
0) + carry;
31555 this.words[i] = w &
0x3ffffff;
31559 return this.strip();
31562 BN.prototype._wordDiv = function _wordDiv (num, mode) {
31563 var shift = this.length - num.length;
31565 var a = this.clone();
31569 var bhi = b.words[b.length -
1] |
0;
31570 var bhiBits = this._countBits(bhi);
31571 shift =
26 - bhiBits;
31573 b = b.ushln(shift);
31575 bhi = b.words[b.length -
1] |
0;
31578 // Initialize quotient
31579 var m = a.length - b.length;
31582 if (mode !== 'mod') {
31585 q.words = new Array(q.length);
31586 for (var i =
0; i < q.length; i++) {
31591 var diff = a.clone()._ishlnsubmul(b,
1, m);
31592 if (diff.negative ===
0) {
31599 for (var j = m -
1; j
>=
0; j--) {
31600 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
31601 (a.words[b.length + j -
1] |
0);
31603 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
31605 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
31607 a._ishlnsubmul(b, qj, j);
31608 while (a.negative !==
0) {
31611 a._ishlnsubmul(b,
1, j);
31626 if (mode !== 'div' && shift !==
0) {
31636 // NOTE:
1) `mode` can be set to `mod` to request mod only,
31637 // to `div` to request div only, or be absent to
31638 // request both div & mod
31639 //
2) `positive` is true if unsigned mod is requested
31640 BN.prototype.divmod = function divmod (num, mode, positive) {
31641 assert(!num.isZero());
31643 if (this.isZero()) {
31651 if (this.negative !==
0 && num.negative ===
0) {
31652 res = this.neg().divmod(num, mode);
31654 if (mode !== 'mod') {
31655 div = res.div.neg();
31658 if (mode !== 'div') {
31659 mod = res.mod.neg();
31660 if (positive && mod.negative !==
0) {
31671 if (this.negative ===
0 && num.negative !==
0) {
31672 res = this.divmod(num.neg(), mode);
31674 if (mode !== 'mod') {
31675 div = res.div.neg();
31684 if ((this.negative & num.negative) !==
0) {
31685 res = this.neg().divmod(num.neg(), mode);
31687 if (mode !== 'div') {
31688 mod = res.mod.neg();
31689 if (positive && mod.negative !==
0) {
31700 // Both numbers are positive at this point
31702 // Strip both numbers to approximate shift value
31703 if (num.length
> this.length || this.cmp(num) <
0) {
31710 // Very short reduction
31711 if (num.length ===
1) {
31712 if (mode === 'div') {
31714 div: this.divn(num.words[
0]),
31719 if (mode === 'mod') {
31722 mod: new BN(this.modn(num.words[
0]))
31727 div: this.divn(num.words[
0]),
31728 mod: new BN(this.modn(num.words[
0]))
31732 return this._wordDiv(num, mode);
31735 // Find `this` / `num`
31736 BN.prototype.div = function div (num) {
31737 return this.divmod(num, 'div', false).div;
31740 // Find `this` % `num`
31741 BN.prototype.mod = function mod (num) {
31742 return this.divmod(num, 'mod', false).mod;
31745 BN.prototype.umod = function umod (num) {
31746 return this.divmod(num, 'mod', true).mod;
31749 // Find Round(`this` / `num`)
31750 BN.prototype.divRound = function divRound (num) {
31751 var dm = this.divmod(num);
31753 // Fast case - exact division
31754 if (dm.mod.isZero()) return dm.div;
31756 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
31758 var half = num.ushrn(
1);
31759 var r2 = num.andln(
1);
31760 var cmp = mod.cmp(half);
31763 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
31766 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
31769 BN.prototype.modn = function modn (num) {
31770 assert(num <=
0x3ffffff);
31771 var p = (
1 <<
26) % num;
31774 for (var i = this.length -
1; i
>=
0; i--) {
31775 acc = (p * acc + (this.words[i] |
0)) % num;
31781 // In-place division by number
31782 BN.prototype.idivn = function idivn (num) {
31783 assert(num <=
0x3ffffff);
31786 for (var i = this.length -
1; i
>=
0; i--) {
31787 var w = (this.words[i] |
0) + carry *
0x4000000;
31788 this.words[i] = (w / num) |
0;
31792 return this.strip();
31795 BN.prototype.divn = function divn (num) {
31796 return this.clone().idivn(num);
31799 BN.prototype.egcd = function egcd (p) {
31800 assert(p.negative ===
0);
31801 assert(!p.isZero());
31806 if (x.negative !==
0) {
31812 // A * x + B * y = x
31816 // C * x + D * y = y
31822 while (x.isEven() && y.isEven()) {
31828 var yp = y.clone();
31829 var xp = x.clone();
31831 while (!x.isZero()) {
31832 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31836 if (A.isOdd() || B.isOdd()) {
31846 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31850 if (C.isOdd() || D.isOdd()) {
31860 if (x.cmp(y)
>=
0) {
31878 // This is reduced incarnation of the binary EEA
31879 // above, designated to invert members of the
31880 // _prime_ fields F(p) at a maximal speed
31881 BN.prototype._invmp = function _invmp (p) {
31882 assert(p.negative ===
0);
31883 assert(!p.isZero());
31888 if (a.negative !==
0) {
31894 var x1 = new BN(
1);
31895 var x2 = new BN(
0);
31897 var delta = b.clone();
31899 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
31900 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31912 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31924 if (a.cmp(b)
>=
0) {
31934 if (a.cmpn(
1) ===
0) {
31940 if (res.cmpn(
0) <
0) {
31947 BN.prototype.gcd = function gcd (num) {
31948 if (this.isZero()) return num.abs();
31949 if (num.isZero()) return this.abs();
31951 var a = this.clone();
31952 var b = num.clone();
31956 // Remove common factor of two
31957 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
31963 while (a.isEven()) {
31966 while (b.isEven()) {
31972 // Swap `a` and `b` to make `a` always bigger than `b`
31976 } else if (r ===
0 || b.cmpn(
1) ===
0) {
31983 return b.iushln(shift);
31986 // Invert number in the field F(num)
31987 BN.prototype.invm = function invm (num) {
31988 return this.egcd(num).a.umod(num);
31991 BN.prototype.isEven = function isEven () {
31992 return (this.words[
0] &
1) ===
0;
31995 BN.prototype.isOdd = function isOdd () {
31996 return (this.words[
0] &
1) ===
1;
31999 // And first word and num
32000 BN.prototype.andln = function andln (num) {
32001 return this.words[
0] & num;
32004 // Increment at the bit position in-line
32005 BN.prototype.bincn = function bincn (bit) {
32006 assert(typeof bit === 'number');
32008 var s = (bit - r) /
26;
32011 // Fast case: bit is much higher than all existing words
32012 if (this.length <= s) {
32013 this._expand(s +
1);
32014 this.words[s] |= q;
32018 // Add bit and propagate, if needed
32020 for (var i = s; carry !==
0 && i < this.length; i++) {
32021 var w = this.words[i] |
0;
32028 this.words[i] = carry;
32034 BN.prototype.isZero = function isZero () {
32035 return this.length ===
1 && this.words[
0] ===
0;
32038 BN.prototype.cmpn = function cmpn (num) {
32039 var negative = num <
0;
32041 if (this.negative !==
0 && !negative) return -
1;
32042 if (this.negative ===
0 && negative) return
1;
32047 if (this.length
> 1) {
32054 assert(num <=
0x3ffffff, 'Number is too big');
32056 var w = this.words[
0] |
0;
32057 res = w === num ?
0 : w < num ? -
1 :
1;
32059 if (this.negative !==
0) return -res |
0;
32063 // Compare two numbers and return:
32064 //
1 - if `this`
> `num`
32065 //
0 - if `this` == `num`
32066 // -
1 - if `this` < `num`
32067 BN.prototype.cmp = function cmp (num) {
32068 if (this.negative !==
0 && num.negative ===
0) return -
1;
32069 if (this.negative ===
0 && num.negative !==
0) return
1;
32071 var res = this.ucmp(num);
32072 if (this.negative !==
0) return -res |
0;
32076 // Unsigned comparison
32077 BN.prototype.ucmp = function ucmp (num) {
32078 // At this point both numbers have the same sign
32079 if (this.length
> num.length) return
1;
32080 if (this.length < num.length) return -
1;
32083 for (var i = this.length -
1; i
>=
0; i--) {
32084 var a = this.words[i] |
0;
32085 var b = num.words[i] |
0;
32087 if (a === b) continue;
32090 } else if (a
> b) {
32098 BN.prototype.gtn = function gtn (num) {
32099 return this.cmpn(num) ===
1;
32102 BN.prototype.gt = function gt (num) {
32103 return this.cmp(num) ===
1;
32106 BN.prototype.gten = function gten (num) {
32107 return this.cmpn(num)
>=
0;
32110 BN.prototype.gte = function gte (num) {
32111 return this.cmp(num)
>=
0;
32114 BN.prototype.ltn = function ltn (num) {
32115 return this.cmpn(num) === -
1;
32118 BN.prototype.lt = function lt (num) {
32119 return this.cmp(num) === -
1;
32122 BN.prototype.lten = function lten (num) {
32123 return this.cmpn(num) <=
0;
32126 BN.prototype.lte = function lte (num) {
32127 return this.cmp(num) <=
0;
32130 BN.prototype.eqn = function eqn (num) {
32131 return this.cmpn(num) ===
0;
32134 BN.prototype.eq = function eq (num) {
32135 return this.cmp(num) ===
0;
32139 // A reduce context, could be using montgomery or something better, depending
32140 // on the `m` itself.
32142 BN.red = function red (num) {
32143 return new Red(num);
32146 BN.prototype.toRed = function toRed (ctx) {
32147 assert(!this.red, 'Already a number in reduction context');
32148 assert(this.negative ===
0, 'red works only with positives');
32149 return ctx.convertTo(this)._forceRed(ctx);
32152 BN.prototype.fromRed = function fromRed () {
32153 assert(this.red, 'fromRed works only with numbers in reduction context');
32154 return this.red.convertFrom(this);
32157 BN.prototype._forceRed = function _forceRed (ctx) {
32162 BN.prototype.forceRed = function forceRed (ctx) {
32163 assert(!this.red, 'Already a number in reduction context');
32164 return this._forceRed(ctx);
32167 BN.prototype.redAdd = function redAdd (num) {
32168 assert(this.red, 'redAdd works only with red numbers');
32169 return this.red.add(this, num);
32172 BN.prototype.redIAdd = function redIAdd (num) {
32173 assert(this.red, 'redIAdd works only with red numbers');
32174 return this.red.iadd(this, num);
32177 BN.prototype.redSub = function redSub (num) {
32178 assert(this.red, 'redSub works only with red numbers');
32179 return this.red.sub(this, num);
32182 BN.prototype.redISub = function redISub (num) {
32183 assert(this.red, 'redISub works only with red numbers');
32184 return this.red.isub(this, num);
32187 BN.prototype.redShl = function redShl (num) {
32188 assert(this.red, 'redShl works only with red numbers');
32189 return this.red.shl(this, num);
32192 BN.prototype.redMul = function redMul (num) {
32193 assert(this.red, 'redMul works only with red numbers');
32194 this.red._verify2(this, num);
32195 return this.red.mul(this, num);
32198 BN.prototype.redIMul = function redIMul (num) {
32199 assert(this.red, 'redMul works only with red numbers');
32200 this.red._verify2(this, num);
32201 return this.red.imul(this, num);
32204 BN.prototype.redSqr = function redSqr () {
32205 assert(this.red, 'redSqr works only with red numbers');
32206 this.red._verify1(this);
32207 return this.red.sqr(this);
32210 BN.prototype.redISqr = function redISqr () {
32211 assert(this.red, 'redISqr works only with red numbers');
32212 this.red._verify1(this);
32213 return this.red.isqr(this);
32216 // Square root over p
32217 BN.prototype.redSqrt = function redSqrt () {
32218 assert(this.red, 'redSqrt works only with red numbers');
32219 this.red._verify1(this);
32220 return this.red.sqrt(this);
32223 BN.prototype.redInvm = function redInvm () {
32224 assert(this.red, 'redInvm works only with red numbers');
32225 this.red._verify1(this);
32226 return this.red.invm(this);
32229 // Return negative clone of `this` % `red modulo`
32230 BN.prototype.redNeg = function redNeg () {
32231 assert(this.red, 'redNeg works only with red numbers');
32232 this.red._verify1(this);
32233 return this.red.neg(this);
32236 BN.prototype.redPow = function redPow (num) {
32237 assert(this.red && !num.red, 'redPow(normalNum)');
32238 this.red._verify1(this);
32239 return this.red.pow(this, num);
32242 // Prime numbers with efficient reduction
32250 // Pseudo-Mersenne prime
32251 function MPrime (name, p) {
32254 this.p = new BN(p,
16);
32255 this.n = this.p.bitLength();
32256 this.k = new BN(
1).iushln(this.n).isub(this.p);
32258 this.tmp = this._tmp();
32261 MPrime.prototype._tmp = function _tmp () {
32262 var tmp = new BN(null);
32263 tmp.words = new Array(Math.ceil(this.n /
13));
32267 MPrime.prototype.ireduce = function ireduce (num) {
32268 // Assumes that `num` is less than `P^
2`
32269 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
32274 this.split(r, this.tmp);
32276 r = r.iadd(this.tmp);
32277 rlen = r.bitLength();
32278 } while (rlen
> this.n);
32280 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
32284 } else if (cmp
> 0) {
32293 MPrime.prototype.split = function split (input, out) {
32294 input.iushrn(this.n,
0, out);
32297 MPrime.prototype.imulK = function imulK (num) {
32298 return num.imul(this.k);
32305 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
32307 inherits(K256, MPrime);
32309 K256.prototype.split = function split (input, output) {
32310 //
256 =
9 *
26 +
22
32311 var mask =
0x3fffff;
32313 var outLen = Math.min(input.length,
9);
32314 for (var i =
0; i < outLen; i++) {
32315 output.words[i] = input.words[i];
32317 output.length = outLen;
32319 if (input.length <=
9) {
32320 input.words[
0] =
0;
32325 // Shift by
9 limbs
32326 var prev = input.words[
9];
32327 output.words[output.length++] = prev & mask;
32329 for (i =
10; i < input.length; i++) {
32330 var next = input.words[i] |
0;
32331 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
32335 input.words[i -
10] = prev;
32336 if (prev ===
0 && input.length
> 10) {
32337 input.length -=
10;
32343 K256.prototype.imulK = function imulK (num) {
32344 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
32345 num.words[num.length] =
0;
32346 num.words[num.length +
1] =
0;
32349 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
32351 for (var i =
0; i < num.length; i++) {
32352 var w = num.words[i] |
0;
32354 num.words[i] = lo &
0x3ffffff;
32355 lo = w *
0x40 + ((lo /
0x4000000) |
0);
32358 // Fast length reduction
32359 if (num.words[num.length -
1] ===
0) {
32361 if (num.words[num.length -
1] ===
0) {
32372 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
32374 inherits(P224, MPrime);
32380 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
32382 inherits(P192, MPrime);
32384 function P25519 () {
32389 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
32391 inherits(P25519, MPrime);
32393 P25519.prototype.imulK = function imulK (num) {
32396 for (var i =
0; i < num.length; i++) {
32397 var hi = (num.words[i] |
0) *
0x13 + carry;
32398 var lo = hi &
0x3ffffff;
32405 num.words[num.length++] = carry;
32410 // Exported mostly for testing purposes, use plain name instead
32411 BN._prime = function prime (name) {
32412 // Cached version of prime
32413 if (primes[name]) return primes[name];
32416 if (name === 'k256') {
32417 prime = new K256();
32418 } else if (name === 'p224') {
32419 prime = new P224();
32420 } else if (name === 'p192') {
32421 prime = new P192();
32422 } else if (name === 'p25519') {
32423 prime = new P25519();
32425 throw new Error('Unknown prime ' + name);
32427 primes[name] = prime;
32433 // Base reduction engine
32436 if (typeof m === 'string') {
32437 var prime = BN._prime(m);
32439 this.prime = prime;
32441 assert(m.gtn(
1), 'modulus must be greater than
1');
32447 Red.prototype._verify1 = function _verify1 (a) {
32448 assert(a.negative ===
0, 'red works only with positives');
32449 assert(a.red, 'red works only with red numbers');
32452 Red.prototype._verify2 = function _verify2 (a, b) {
32453 assert((a.negative | b.negative) ===
0, 'red works only with positives');
32454 assert(a.red && a.red === b.red,
32455 'red works only with red numbers');
32458 Red.prototype.imod = function imod (a) {
32459 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
32460 return a.umod(this.m)._forceRed(this);
32463 Red.prototype.neg = function neg (a) {
32468 return this.m.sub(a)._forceRed(this);
32471 Red.prototype.add = function add (a, b) {
32472 this._verify2(a, b);
32474 var res = a.add(b);
32475 if (res.cmp(this.m)
>=
0) {
32478 return res._forceRed(this);
32481 Red.prototype.iadd = function iadd (a, b) {
32482 this._verify2(a, b);
32484 var res = a.iadd(b);
32485 if (res.cmp(this.m)
>=
0) {
32491 Red.prototype.sub = function sub (a, b) {
32492 this._verify2(a, b);
32494 var res = a.sub(b);
32495 if (res.cmpn(
0) <
0) {
32498 return res._forceRed(this);
32501 Red.prototype.isub = function isub (a, b) {
32502 this._verify2(a, b);
32504 var res = a.isub(b);
32505 if (res.cmpn(
0) <
0) {
32511 Red.prototype.shl = function shl (a, num) {
32513 return this.imod(a.ushln(num));
32516 Red.prototype.imul = function imul (a, b) {
32517 this._verify2(a, b);
32518 return this.imod(a.imul(b));
32521 Red.prototype.mul = function mul (a, b) {
32522 this._verify2(a, b);
32523 return this.imod(a.mul(b));
32526 Red.prototype.isqr = function isqr (a) {
32527 return this.imul(a, a.clone());
32530 Red.prototype.sqr = function sqr (a) {
32531 return this.mul(a, a);
32534 Red.prototype.sqrt = function sqrt (a) {
32535 if (a.isZero()) return a.clone();
32537 var mod3 = this.m.andln(
3);
32538 assert(mod3 %
2 ===
1);
32542 var pow = this.m.add(new BN(
1)).iushrn(
2);
32543 return this.pow(a, pow);
32546 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
32548 // Find Q and S, that Q *
2 ^ S = (P -
1)
32549 var q = this.m.subn(
1);
32551 while (!q.isZero() && q.andln(
1) ===
0) {
32555 assert(!q.isZero());
32557 var one = new BN(
1).toRed(this);
32558 var nOne = one.redNeg();
32560 // Find quadratic non-residue
32561 // NOTE: Max is such because of generalized Riemann hypothesis.
32562 var lpow = this.m.subn(
1).iushrn(
1);
32563 var z = this.m.bitLength();
32564 z = new BN(
2 * z * z).toRed(this);
32566 while (this.pow(z, lpow).cmp(nOne) !==
0) {
32570 var c = this.pow(z, q);
32571 var r = this.pow(a, q.addn(
1).iushrn(
1));
32572 var t = this.pow(a, q);
32574 while (t.cmp(one) !==
0) {
32576 for (var i =
0; tmp.cmp(one) !==
0; i++) {
32577 tmp = tmp.redSqr();
32580 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
32591 Red.prototype.invm = function invm (a) {
32592 var inv = a._invmp(this.m);
32593 if (inv.negative !==
0) {
32595 return this.imod(inv).redNeg();
32597 return this.imod(inv);
32601 Red.prototype.pow = function pow (a, num) {
32602 if (num.isZero()) return new BN(
1);
32603 if (num.cmpn(
1) ===
0) return a.clone();
32605 var windowSize =
4;
32606 var wnd = new Array(
1 << windowSize);
32607 wnd[
0] = new BN(
1).toRed(this);
32609 for (var i =
2; i < wnd.length; i++) {
32610 wnd[i] = this.mul(wnd[i -
1], a);
32615 var currentLen =
0;
32616 var start = num.bitLength() %
26;
32621 for (i = num.length -
1; i
>=
0; i--) {
32622 var word = num.words[i];
32623 for (var j = start -
1; j
>=
0; j--) {
32624 var bit = (word
>> j) &
1;
32625 if (res !== wnd[
0]) {
32626 res = this.sqr(res);
32629 if (bit ===
0 && current ===
0) {
32637 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
32639 res = this.mul(res, wnd[current]);
32649 Red.prototype.convertTo = function convertTo (num) {
32650 var r = num.umod(this.m);
32652 return r === num ? r.clone() : r;
32655 Red.prototype.convertFrom = function convertFrom (num) {
32656 var res = num.clone();
32662 // Montgomery method engine
32665 BN.mont = function mont (num) {
32666 return new Mont(num);
32669 function Mont (m) {
32672 this.shift = this.m.bitLength();
32673 if (this.shift %
26 !==
0) {
32674 this.shift +=
26 - (this.shift %
26);
32677 this.r = new BN(
1).iushln(this.shift);
32678 this.r2 = this.imod(this.r.sqr());
32679 this.rinv = this.r._invmp(this.m);
32681 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
32682 this.minv = this.minv.umod(this.r);
32683 this.minv = this.r.sub(this.minv);
32685 inherits(Mont, Red);
32687 Mont.prototype.convertTo = function convertTo (num) {
32688 return this.imod(num.ushln(this.shift));
32691 Mont.prototype.convertFrom = function convertFrom (num) {
32692 var r = this.imod(num.mul(this.rinv));
32697 Mont.prototype.imul = function imul (a, b) {
32698 if (a.isZero() || b.isZero()) {
32705 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32706 var u = t.isub(c).iushrn(this.shift);
32709 if (u.cmp(this.m)
>=
0) {
32710 res = u.isub(this.m);
32711 } else if (u.cmpn(
0) <
0) {
32712 res = u.iadd(this.m);
32715 return res._forceRed(this);
32718 Mont.prototype.mul = function mul (a, b) {
32719 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
32722 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32723 var u = t.isub(c).iushrn(this.shift);
32725 if (u.cmp(this.m)
>=
0) {
32726 res = u.isub(this.m);
32727 } else if (u.cmpn(
0) <
0) {
32728 res = u.iadd(this.m);
32731 return res._forceRed(this);
32734 Mont.prototype.invm = function invm (a) {
32735 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
32736 var res = this.imod(a._invmp(this.m).mul(this.r2));
32737 return res._forceRed(this);
32739 })(typeof module === 'undefined' || module, this);
32741 },{}],
34:[function(require,module,exports){
32744 module.exports = function rand(len) {
32746 r = new Rand(null);
32748 return r.generate(len);
32751 function Rand(rand) {
32754 module.exports.Rand = Rand;
32756 Rand.prototype.generate = function generate(len) {
32757 return this._rand(len);
32760 if (typeof self === 'object') {
32761 if (self.crypto && self.crypto.getRandomValues) {
32763 Rand.prototype._rand = function _rand(n) {
32764 var arr = new Uint8Array(n);
32765 self.crypto.getRandomValues(arr);
32768 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
32770 Rand.prototype._rand = function _rand(n) {
32771 var arr = new Uint8Array(n);
32772 self.msCrypto.getRandomValues(arr);
32777 Rand.prototype._rand = function() {
32778 throw new Error('Not implemented yet');
32782 // Node.js or Web worker with no crypto support
32784 var crypto = require('crypto');
32786 Rand.prototype._rand = function _rand(n) {
32787 return crypto.randomBytes(n);
32790 // Emulate crypto API using randy
32791 Rand.prototype._rand = function _rand(n) {
32792 var res = new Uint8Array(n);
32793 for (var i =
0; i < res.length; i++)
32794 res[i] = this.rand.getByte();
32800 },{"crypto":
3}],
35:[function(require,module,exports){
32801 (function (Buffer){
32802 var Transform = require('stream').Transform
32803 var inherits = require('inherits')
32804 var StringDecoder = require('string_decoder').StringDecoder
32805 module.exports = CipherBase
32806 inherits(CipherBase, Transform)
32807 function CipherBase (hashMode) {
32808 Transform.call(this)
32809 this.hashMode = typeof hashMode === 'string'
32810 if (this.hashMode) {
32811 this[hashMode] = this._finalOrDigest
32813 this.final = this._finalOrDigest
32815 this._decoder = null
32816 this._encoding = null
32818 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
32819 if (typeof data === 'string') {
32820 data = new Buffer(data, inputEnc)
32822 var outData = this._update(data)
32823 if (this.hashMode) {
32827 outData = this._toString(outData, outputEnc)
32832 CipherBase.prototype.setAutoPadding = function () {}
32834 CipherBase.prototype.getAuthTag = function () {
32835 throw new Error('trying to get auth tag in unsupported state')
32838 CipherBase.prototype.setAuthTag = function () {
32839 throw new Error('trying to set auth tag in unsupported state')
32842 CipherBase.prototype.setAAD = function () {
32843 throw new Error('trying to set aad in unsupported state')
32846 CipherBase.prototype._transform = function (data, _, next) {
32849 if (this.hashMode) {
32852 this.push(this._update(data))
32860 CipherBase.prototype._flush = function (done) {
32863 this.push(this._final())
32870 CipherBase.prototype._finalOrDigest = function (outputEnc) {
32871 var outData = this._final() || new Buffer('')
32873 outData = this._toString(outData, outputEnc, true)
32878 CipherBase.prototype._toString = function (value, enc, fin) {
32879 if (!this._decoder) {
32880 this._decoder = new StringDecoder(enc)
32881 this._encoding = enc
32883 if (this._encoding !== enc) {
32884 throw new Error('can\'t switch encodings')
32886 var out = this._decoder.write(value)
32888 out += this._decoder.end()
32893 }).call(this,require("buffer").Buffer)
32894 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
32895 (function (Buffer){
32897 var inherits = require('inherits')
32898 var md5 = require('./md5')
32899 var rmd160 = require('ripemd160')
32900 var sha = require('sha.js')
32902 var Base = require('cipher-base')
32904 function HashNoConstructor(hash) {
32905 Base.call(this, 'digest')
32911 inherits(HashNoConstructor, Base)
32913 HashNoConstructor.prototype._update = function (data) {
32914 this.buffers.push(data)
32917 HashNoConstructor.prototype._final = function () {
32918 var buf = Buffer.concat(this.buffers)
32919 var r = this._hash(buf)
32920 this.buffers = null
32925 function Hash(hash) {
32926 Base.call(this, 'digest')
32931 inherits(Hash, Base)
32933 Hash.prototype._update = function (data) {
32934 this._hash.update(data)
32937 Hash.prototype._final = function () {
32938 return this._hash.digest()
32941 module.exports = function createHash (alg) {
32942 alg = alg.toLowerCase()
32943 if ('md5' === alg) return new HashNoConstructor(md5)
32944 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
32946 return new Hash(sha(alg))
32949 }).call(this,require("buffer").Buffer)
32950 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
32951 (function (Buffer){
32954 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
32957 function toArray(buf, bigEndian) {
32958 if ((buf.length % intSize) !==
0) {
32959 var len = buf.length + (intSize - (buf.length % intSize));
32960 buf = Buffer.concat([buf, zeroBuffer], len);
32964 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
32965 for (var i =
0; i < buf.length; i += intSize) {
32966 arr.push(fn.call(buf, i));
32971 function toBuffer(arr, size, bigEndian) {
32972 var buf = new Buffer(size);
32973 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
32974 for (var i =
0; i < arr.length; i++) {
32975 fn.call(buf, arr[i], i *
4, true);
32980 function hash(buf, fn, hashSize, bigEndian) {
32981 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
32982 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
32983 return toBuffer(arr, hashSize, bigEndian);
32985 exports.hash = hash;
32986 }).call(this,require("buffer").Buffer)
32987 },{"buffer":
5}],
38:[function(require,module,exports){
32990 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
32991 * Digest Algorithm, as defined in RFC
1321.
32992 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
32993 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
32994 * Distributed under the BSD License
32995 * See http://pajhome.org.uk/crypt/md5 for more info.
32998 var helpers = require('./helpers');
33001 * Calculate the MD5 of an array of little-endian words, and a bit length
33003 function core_md5(x, len)
33005 /* append padding */
33006 x[len
>> 5] |=
0x80 << ((len) %
32);
33007 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
33009 var a =
1732584193;
33010 var b = -
271733879;
33011 var c = -
1732584194;
33014 for(var i =
0; i < x.length; i +=
16)
33021 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
33022 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
33023 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
33024 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
33025 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
33026 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
33027 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
33028 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
33029 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
33030 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
33031 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
33032 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
33033 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
33034 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
33035 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
33036 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
33038 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
33039 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
33040 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
33041 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
33042 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
33043 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
33044 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
33045 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
33046 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
33047 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
33048 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
33049 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
33050 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
33051 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
33052 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
33053 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
33055 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
33056 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
33057 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
33058 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
33059 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
33060 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
33061 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
33062 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
33063 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
33064 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
33065 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
33066 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
33067 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
33068 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
33069 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
33070 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
33072 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
33073 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
33074 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
33075 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
33076 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
33077 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
33078 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
33079 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
33080 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
33081 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
33082 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
33083 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
33084 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
33085 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
33086 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
33087 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
33089 a = safe_add(a, olda);
33090 b = safe_add(b, oldb);
33091 c = safe_add(c, oldc);
33092 d = safe_add(d, oldd);
33094 return Array(a, b, c, d);
33099 * These functions implement the four basic operations the algorithm uses.
33101 function md5_cmn(q, a, b, x, s, t)
33103 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
33105 function md5_ff(a, b, c, d, x, s, t)
33107 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
33109 function md5_gg(a, b, c, d, x, s, t)
33111 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
33113 function md5_hh(a, b, c, d, x, s, t)
33115 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
33117 function md5_ii(a, b, c, d, x, s, t)
33119 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
33123 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
33124 * to work around bugs in some JS interpreters.
33126 function safe_add(x, y)
33128 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
33129 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
33130 return (msw <<
16) | (lsw &
0xFFFF);
33134 * Bitwise rotate a
32-bit number to the left.
33136 function bit_rol(num, cnt)
33138 return (num << cnt) | (num
>>> (
32 - cnt));
33141 module.exports = function md5(buf) {
33142 return helpers.hash(buf, core_md5,
16);
33144 },{"./helpers":
37}],
39:[function(require,module,exports){
33147 var elliptic = exports;
33149 elliptic.version = require('../package.json').version;
33150 elliptic.utils = require('./elliptic/utils');
33151 elliptic.rand = require('brorand');
33152 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
33153 elliptic.curve = require('./elliptic/curve');
33154 elliptic.curves = require('./elliptic/curves');
33157 elliptic.ec = require('./elliptic/ec');
33158 elliptic.eddsa = require('./elliptic/eddsa');
33160 },{"../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){
33163 var BN = require('bn.js');
33164 var elliptic = require('../../elliptic');
33165 var utils = elliptic.utils;
33166 var getNAF = utils.getNAF;
33167 var getJSF = utils.getJSF;
33168 var assert = utils.assert;
33170 function BaseCurve(type, conf) {
33172 this.p = new BN(conf.p,
16);
33174 // Use Montgomery, when there is no fast reduction for the prime
33175 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
33177 // Useful for many curves
33178 this.zero = new BN(
0).toRed(this.red);
33179 this.one = new BN(
1).toRed(this.red);
33180 this.two = new BN(
2).toRed(this.red);
33182 // Curve configuration, optional
33183 this.n = conf.n && new BN(conf.n,
16);
33184 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
33186 // Temporary arrays
33187 this._wnafT1 = new Array(
4);
33188 this._wnafT2 = new Array(
4);
33189 this._wnafT3 = new Array(
4);
33190 this._wnafT4 = new Array(
4);
33192 // Generalized Greg Maxwell's trick
33193 var adjustCount = this.n && this.p.div(this.n);
33194 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
33197 this._maxwellTrick = true;
33198 this.redN = this.n.toRed(this.red);
33201 module.exports = BaseCurve;
33203 BaseCurve.prototype.point = function point() {
33204 throw new Error('Not implemented');
33207 BaseCurve.prototype.validate = function validate() {
33208 throw new Error('Not implemented');
33211 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
33212 assert(p.precomputed);
33213 var doubles = p._getDoubles();
33215 var naf = getNAF(k,
1);
33216 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
33219 // Translate into more windowed form
33221 for (var j =
0; j < naf.length; j += doubles.step) {
33223 for (var k = j + doubles.step -
1; k
>= j; k--)
33224 nafW = (nafW <<
1) + naf[k];
33228 var a = this.jpoint(null, null, null);
33229 var b = this.jpoint(null, null, null);
33230 for (var i = I; i
> 0; i--) {
33231 for (var j =
0; j < repr.length; j++) {
33232 var nafW = repr[j];
33234 b = b.mixedAdd(doubles.points[j]);
33235 else if (nafW === -i)
33236 b = b.mixedAdd(doubles.points[j].neg());
33243 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
33246 // Precompute window
33247 var nafPoints = p._getNAFPoints(w);
33249 var wnd = nafPoints.points;
33252 var naf = getNAF(k, w);
33254 // Add `this`*(N+
1) for every w-NAF index
33255 var acc = this.jpoint(null, null, null);
33256 for (var i = naf.length -
1; i
>=
0; i--) {
33258 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
33268 if (p.type === 'affine') {
33271 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
33273 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
33277 acc = acc.add(wnd[(z -
1)
>> 1]);
33279 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
33282 return p.type === 'affine' ? acc.toP() : acc;
33285 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
33290 var wndWidth = this._wnafT1;
33291 var wnd = this._wnafT2;
33292 var naf = this._wnafT3;
33296 for (var i =
0; i < len; i++) {
33298 var nafPoints = p._getNAFPoints(defW);
33299 wndWidth[i] = nafPoints.wnd;
33300 wnd[i] = nafPoints.points;
33303 // Comb small window NAFs
33304 for (var i = len -
1; i
>=
1; i -=
2) {
33307 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
33308 naf[a] = getNAF(coeffs[a], wndWidth[a]);
33309 naf[b] = getNAF(coeffs[b], wndWidth[b]);
33310 max = Math.max(naf[a].length, max);
33311 max = Math.max(naf[b].length, max);
33322 // Try to avoid Projective points, if possible
33323 if (points[a].y.cmp(points[b].y) ===
0) {
33324 comb[
1] = points[a].add(points[b]);
33325 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33326 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
33327 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33328 comb[
2] = points[a].add(points[b].neg());
33330 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33331 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33346 var jsf = getJSF(coeffs[a], coeffs[b]);
33347 max = Math.max(jsf[
0].length, max);
33348 naf[a] = new Array(max);
33349 naf[b] = new Array(max);
33350 for (var j =
0; j < max; j++) {
33351 var ja = jsf[
0][j] |
0;
33352 var jb = jsf[
1][j] |
0;
33354 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
33360 var acc = this.jpoint(null, null, null);
33361 var tmp = this._wnafT4;
33362 for (var i = max; i
>=
0; i--) {
33367 for (var j =
0; j < len; j++) {
33368 tmp[j] = naf[j][i] |
0;
33383 for (var j =
0; j < len; j++) {
33389 p = wnd[j][(z -
1)
>> 1];
33391 p = wnd[j][(-z -
1)
>> 1].neg();
33393 if (p.type === 'affine')
33394 acc = acc.mixedAdd(p);
33399 // Zeroify references
33400 for (var i =
0; i < len; i++)
33403 if (jacobianResult)
33409 function BasePoint(curve, type) {
33410 this.curve = curve;
33412 this.precomputed = null;
33414 BaseCurve.BasePoint = BasePoint;
33416 BasePoint.prototype.eq = function eq(/*other*/) {
33417 throw new Error('Not implemented');
33420 BasePoint.prototype.validate = function validate() {
33421 return this.curve.validate(this);
33424 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33425 bytes = utils.toArray(bytes, enc);
33427 var len = this.p.byteLength();
33429 // uncompressed, hybrid-odd, hybrid-even
33430 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
33431 bytes.length -
1 ===
2 * len) {
33432 if (bytes[
0] ===
0x06)
33433 assert(bytes[bytes.length -
1] %
2 ===
0);
33434 else if (bytes[
0] ===
0x07)
33435 assert(bytes[bytes.length -
1] %
2 ===
1);
33437 var res = this.point(bytes.slice(
1,
1 + len),
33438 bytes.slice(
1 + len,
1 +
2 * len));
33441 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
33442 bytes.length -
1 === len) {
33443 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
33445 throw new Error('Unknown point format');
33448 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
33449 return this.encode(enc, true);
33452 BasePoint.prototype._encode = function _encode(compact) {
33453 var len = this.curve.p.byteLength();
33454 var x = this.getX().toArray('be', len);
33457 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
33459 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
33462 BasePoint.prototype.encode = function encode(enc, compact) {
33463 return utils.encode(this._encode(compact), enc);
33466 BasePoint.prototype.precompute = function precompute(power) {
33467 if (this.precomputed)
33470 var precomputed = {
33475 precomputed.naf = this._getNAFPoints(
8);
33476 precomputed.doubles = this._getDoubles(
4, power);
33477 precomputed.beta = this._getBeta();
33478 this.precomputed = precomputed;
33483 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
33484 if (!this.precomputed)
33487 var doubles = this.precomputed.doubles;
33491 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
33494 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
33495 if (this.precomputed && this.precomputed.doubles)
33496 return this.precomputed.doubles;
33498 var doubles = [ this ];
33500 for (var i =
0; i < power; i += step) {
33501 for (var j =
0; j < step; j++)
33511 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
33512 if (this.precomputed && this.precomputed.naf)
33513 return this.precomputed.naf;
33515 var res = [ this ];
33516 var max = (
1 << wnd) -
1;
33517 var dbl = max ===
1 ? null : this.dbl();
33518 for (var i =
1; i < max; i++)
33519 res[i] = res[i -
1].add(dbl);
33526 BasePoint.prototype._getBeta = function _getBeta() {
33530 BasePoint.prototype.dblp = function dblp(k) {
33532 for (var i =
0; i < k; i++)
33537 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
33540 var curve = require('../curve');
33541 var elliptic = require('../../elliptic');
33542 var BN = require('bn.js');
33543 var inherits = require('inherits');
33544 var Base = curve.base;
33546 var assert = elliptic.utils.assert;
33548 function EdwardsCurve(conf) {
33549 // NOTE: Important as we are creating point in Base.call()
33550 this.twisted = (conf.a |
0) !==
1;
33551 this.mOneA = this.twisted && (conf.a |
0) === -
1;
33552 this.extended = this.mOneA;
33554 Base.call(this, 'edwards', conf);
33556 this.a = new BN(conf.a,
16).umod(this.red.m);
33557 this.a = this.a.toRed(this.red);
33558 this.c = new BN(conf.c,
16).toRed(this.red);
33559 this.c2 = this.c.redSqr();
33560 this.d = new BN(conf.d,
16).toRed(this.red);
33561 this.dd = this.d.redAdd(this.d);
33563 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
33564 this.oneC = (conf.c |
0) ===
1;
33566 inherits(EdwardsCurve, Base);
33567 module.exports = EdwardsCurve;
33569 EdwardsCurve.prototype._mulA = function _mulA(num) {
33571 return num.redNeg();
33573 return this.a.redMul(num);
33576 EdwardsCurve.prototype._mulC = function _mulC(num) {
33580 return this.c.redMul(num);
33583 // Just for compatibility with Short curve
33584 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
33585 return this.point(x, y, z, t);
33588 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
33591 x = x.toRed(this.red);
33593 var x2 = x.redSqr();
33594 var rhs = this.c2.redSub(this.a.redMul(x2));
33595 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
33597 var y2 = rhs.redMul(lhs.redInvm());
33598 var y = y2.redSqrt();
33599 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
33600 throw new Error('invalid point');
33602 var isOdd = y.fromRed().isOdd();
33603 if (odd && !isOdd || !odd && isOdd)
33606 return this.point(x, y);
33609 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
33612 y = y.toRed(this.red);
33614 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
33615 var y2 = y.redSqr();
33616 var lhs = y2.redSub(this.one);
33617 var rhs = y2.redMul(this.d).redAdd(this.one);
33618 var x2 = lhs.redMul(rhs.redInvm());
33620 if (x2.cmp(this.zero) ===
0) {
33622 throw new Error('invalid point');
33624 return this.point(this.zero, y);
33627 var x = x2.redSqrt();
33628 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
33629 throw new Error('invalid point');
33631 if (x.isOdd() !== odd)
33634 return this.point(x, y);
33637 EdwardsCurve.prototype.validate = function validate(point) {
33638 if (point.isInfinity())
33641 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
33644 var x2 = point.x.redSqr();
33645 var y2 = point.y.redSqr();
33646 var lhs = x2.redMul(this.a).redAdd(y2);
33647 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
33649 return lhs.cmp(rhs) ===
0;
33652 function Point(curve, x, y, z, t) {
33653 Base.BasePoint.call(this, curve, 'projective');
33654 if (x === null && y === null && z === null) {
33655 this.x = this.curve.zero;
33656 this.y = this.curve.one;
33657 this.z = this.curve.one;
33658 this.t = this.curve.zero;
33661 this.x = new BN(x,
16);
33662 this.y = new BN(y,
16);
33663 this.z = z ? new BN(z,
16) : this.curve.one;
33664 this.t = t && new BN(t,
16);
33666 this.x = this.x.toRed(this.curve.red);
33668 this.y = this.y.toRed(this.curve.red);
33670 this.z = this.z.toRed(this.curve.red);
33671 if (this.t && !this.t.red)
33672 this.t = this.t.toRed(this.curve.red);
33673 this.zOne = this.z === this.curve.one;
33675 // Use extended coordinates
33676 if (this.curve.extended && !this.t) {
33677 this.t = this.x.redMul(this.y);
33679 this.t = this.t.redMul(this.z.redInvm());
33683 inherits(Point, Base.BasePoint);
33685 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
33686 return Point.fromJSON(this, obj);
33689 EdwardsCurve.prototype.point = function point(x, y, z, t) {
33690 return new Point(this, x, y, z, t);
33693 Point.fromJSON = function fromJSON(curve, obj) {
33694 return new Point(curve, obj[
0], obj[
1], obj[
2]);
33697 Point.prototype.inspect = function inspect() {
33698 if (this.isInfinity())
33699 return '
<EC Point Infinity
>';
33700 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
33701 ' y: ' + this.y.fromRed().toString(
16,
2) +
33702 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
33705 Point.prototype.isInfinity = function isInfinity() {
33706 // XXX This code assumes that zero is always zero in red
33707 return this.x.cmpn(
0) ===
0 &&
33708 this.y.cmp(this.z) ===
0;
33711 Point.prototype._extDbl = function _extDbl() {
33712 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33713 // #doubling-dbl-
2008-hwcd
33717 var a = this.x.redSqr();
33719 var b = this.y.redSqr();
33721 var c = this.z.redSqr();
33724 var d = this.curve._mulA(a);
33725 // E = (X1 + Y1)^
2 - A - B
33726 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
33728 var g = d.redAdd(b);
33730 var f = g.redSub(c);
33732 var h = d.redSub(b);
33734 var nx = e.redMul(f);
33736 var ny = g.redMul(h);
33738 var nt = e.redMul(h);
33740 var nz = f.redMul(g);
33741 return this.curve.point(nx, ny, nz, nt);
33744 Point.prototype._projDbl = function _projDbl() {
33745 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33746 // #doubling-dbl-
2008-bbjlp
33747 // #doubling-dbl-
2007-bl
33749 // Generally
3M +
4S or
2M +
4S
33752 var b = this.x.redAdd(this.y).redSqr();
33754 var c = this.x.redSqr();
33756 var d = this.y.redSqr();
33761 if (this.curve.twisted) {
33763 var e = this.curve._mulA(c);
33765 var f = e.redAdd(d);
33767 // X3 = (B - C - D) * (F -
2)
33768 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
33769 // Y3 = F * (E - D)
33770 ny = f.redMul(e.redSub(d));
33771 // Z3 = F^
2 -
2 * F
33772 nz = f.redSqr().redSub(f).redSub(f);
33775 var h = this.z.redSqr();
33777 var j = f.redSub(h).redISub(h);
33779 nx = b.redSub(c).redISub(d).redMul(j);
33780 // Y3 = F * (E - D)
33781 ny = f.redMul(e.redSub(d));
33787 var e = c.redAdd(d);
33789 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
33791 var j = e.redSub(h).redSub(h);
33792 // X3 = c * (B - E) * J
33793 nx = this.curve._mulC(b.redISub(e)).redMul(j);
33794 // Y3 = c * E * (C - D)
33795 ny = this.curve._mulC(e).redMul(c.redISub(d));
33799 return this.curve.point(nx, ny, nz);
33802 Point.prototype.dbl = function dbl() {
33803 if (this.isInfinity())
33806 // Double in extended coordinates
33807 if (this.curve.extended)
33808 return this._extDbl();
33810 return this._projDbl();
33813 Point.prototype._extAdd = function _extAdd(p) {
33814 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33815 // #addition-add-
2008-hwcd-
3
33818 // A = (Y1 - X1) * (Y2 - X2)
33819 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
33820 // B = (Y1 + X1) * (Y2 + X2)
33821 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
33823 var c = this.t.redMul(this.curve.dd).redMul(p.t);
33825 var d = this.z.redMul(p.z.redAdd(p.z));
33827 var e = b.redSub(a);
33829 var f = d.redSub(c);
33831 var g = d.redAdd(c);
33833 var h = b.redAdd(a);
33835 var nx = e.redMul(f);
33837 var ny = g.redMul(h);
33839 var nt = e.redMul(h);
33841 var nz = f.redMul(g);
33842 return this.curve.point(nx, ny, nz, nt);
33845 Point.prototype._projAdd = function _projAdd(p) {
33846 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33847 // #addition-add-
2008-bbjlp
33848 // #addition-add-
2007-bl
33852 var a = this.z.redMul(p.z);
33854 var b = a.redSqr();
33856 var c = this.x.redMul(p.x);
33858 var d = this.y.redMul(p.y);
33860 var e = this.curve.d.redMul(c).redMul(d);
33862 var f = b.redSub(e);
33864 var g = b.redAdd(e);
33865 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
33866 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
33867 var nx = a.redMul(f).redMul(tmp);
33870 if (this.curve.twisted) {
33871 // Y3 = A * G * (D - a * C)
33872 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
33876 // Y3 = A * G * (D - C)
33877 ny = a.redMul(g).redMul(d.redSub(c));
33879 nz = this.curve._mulC(f).redMul(g);
33881 return this.curve.point(nx, ny, nz);
33884 Point.prototype.add = function add(p) {
33885 if (this.isInfinity())
33887 if (p.isInfinity())
33890 if (this.curve.extended)
33891 return this._extAdd(p);
33893 return this._projAdd(p);
33896 Point.prototype.mul = function mul(k) {
33897 if (this._hasDoubles(k))
33898 return this.curve._fixedNafMul(this, k);
33900 return this.curve._wnafMul(this, k);
33903 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
33904 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
33907 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
33908 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
33911 Point.prototype.normalize = function normalize() {
33915 // Normalize coordinates
33916 var zi = this.z.redInvm();
33917 this.x = this.x.redMul(zi);
33918 this.y = this.y.redMul(zi);
33920 this.t = this.t.redMul(zi);
33921 this.z = this.curve.one;
33926 Point.prototype.neg = function neg() {
33927 return this.curve.point(this.x.redNeg(),
33930 this.t && this.t.redNeg());
33933 Point.prototype.getX = function getX() {
33935 return this.x.fromRed();
33938 Point.prototype.getY = function getY() {
33940 return this.y.fromRed();
33943 Point.prototype.eq = function eq(other) {
33944 return this === other ||
33945 this.getX().cmp(other.getX()) ===
0 &&
33946 this.getY().cmp(other.getY()) ===
0;
33949 Point.prototype.eqXToP = function eqXToP(x) {
33950 var rx = x.toRed(this.curve.red).redMul(this.z);
33951 if (this.x.cmp(rx) ===
0)
33954 var xc = x.clone();
33955 var t = this.curve.redN.redMul(this.z);
33957 xc.iadd(this.curve.n);
33958 if (xc.cmp(this.curve.p)
>=
0)
33962 if (this.x.cmp(rx) ===
0)
33968 // Compatibility with BaseCurve
33969 Point.prototype.toP = Point.prototype.normalize;
33970 Point.prototype.mixedAdd = Point.prototype.add;
33972 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
33975 var curve = exports;
33977 curve.base = require('./base');
33978 curve.short = require('./short');
33979 curve.mont = require('./mont');
33980 curve.edwards = require('./edwards');
33982 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
33985 var curve = require('../curve');
33986 var BN = require('bn.js');
33987 var inherits = require('inherits');
33988 var Base = curve.base;
33990 var elliptic = require('../../elliptic');
33991 var utils = elliptic.utils;
33993 function MontCurve(conf) {
33994 Base.call(this, 'mont', conf);
33996 this.a = new BN(conf.a,
16).toRed(this.red);
33997 this.b = new BN(conf.b,
16).toRed(this.red);
33998 this.i4 = new BN(
4).toRed(this.red).redInvm();
33999 this.two = new BN(
2).toRed(this.red);
34000 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
34002 inherits(MontCurve, Base);
34003 module.exports = MontCurve;
34005 MontCurve.prototype.validate = function validate(point) {
34006 var x = point.normalize().x;
34007 var x2 = x.redSqr();
34008 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
34009 var y = rhs.redSqrt();
34011 return y.redSqr().cmp(rhs) ===
0;
34014 function Point(curve, x, z) {
34015 Base.BasePoint.call(this, curve, 'projective');
34016 if (x === null && z === null) {
34017 this.x = this.curve.one;
34018 this.z = this.curve.zero;
34020 this.x = new BN(x,
16);
34021 this.z = new BN(z,
16);
34023 this.x = this.x.toRed(this.curve.red);
34025 this.z = this.z.toRed(this.curve.red);
34028 inherits(Point, Base.BasePoint);
34030 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
34031 return this.point(utils.toArray(bytes, enc),
1);
34034 MontCurve.prototype.point = function point(x, z) {
34035 return new Point(this, x, z);
34038 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
34039 return Point.fromJSON(this, obj);
34042 Point.prototype.precompute = function precompute() {
34046 Point.prototype._encode = function _encode() {
34047 return this.getX().toArray('be', this.curve.p.byteLength());
34050 Point.fromJSON = function fromJSON(curve, obj) {
34051 return new Point(curve, obj[
0], obj[
1] || curve.one);
34054 Point.prototype.inspect = function inspect() {
34055 if (this.isInfinity())
34056 return '
<EC Point Infinity
>';
34057 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34058 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
34061 Point.prototype.isInfinity = function isInfinity() {
34062 // XXX This code assumes that zero is always zero in red
34063 return this.z.cmpn(
0) ===
0;
34066 Point.prototype.dbl = function dbl() {
34067 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
34071 var a = this.x.redAdd(this.z);
34073 var aa = a.redSqr();
34075 var b = this.x.redSub(this.z);
34077 var bb = b.redSqr();
34079 var c = aa.redSub(bb);
34081 var nx = aa.redMul(bb);
34082 // Z3 = C * (BB + A24 * C)
34083 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
34084 return this.curve.point(nx, nz);
34087 Point.prototype.add = function add() {
34088 throw new Error('Not supported on Montgomery curve');
34091 Point.prototype.diffAdd = function diffAdd(p, diff) {
34092 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
34096 var a = this.x.redAdd(this.z);
34098 var b = this.x.redSub(this.z);
34100 var c = p.x.redAdd(p.z);
34102 var d = p.x.redSub(p.z);
34104 var da = d.redMul(a);
34106 var cb = c.redMul(b);
34107 // X5 = Z1 * (DA + CB)^
2
34108 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
34109 // Z5 = X1 * (DA - CB)^
2
34110 var nz = diff.x.redMul(da.redISub(cb).redSqr());
34111 return this.curve.point(nx, nz);
34114 Point.prototype.mul = function mul(k) {
34116 var a = this; // (N /
2) * Q + Q
34117 var b = this.curve.point(null, null); // (N /
2) * Q
34120 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
34121 bits.push(t.andln(
1));
34123 for (var i = bits.length -
1; i
>=
0; i--) {
34124 if (bits[i] ===
0) {
34125 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
34126 a = a.diffAdd(b, c);
34127 // N * Q =
2 * ((N /
2) * Q + Q))
34130 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
34131 b = a.diffAdd(b, c);
34132 // N * Q + Q =
2 * ((N /
2) * Q + Q)
34139 Point.prototype.mulAdd = function mulAdd() {
34140 throw new Error('Not supported on Montgomery curve');
34143 Point.prototype.jumlAdd = function jumlAdd() {
34144 throw new Error('Not supported on Montgomery curve');
34147 Point.prototype.eq = function eq(other) {
34148 return this.getX().cmp(other.getX()) ===
0;
34151 Point.prototype.normalize = function normalize() {
34152 this.x = this.x.redMul(this.z.redInvm());
34153 this.z = this.curve.one;
34157 Point.prototype.getX = function getX() {
34158 // Normalize coordinates
34161 return this.x.fromRed();
34164 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
34167 var curve = require('../curve');
34168 var elliptic = require('../../elliptic');
34169 var BN = require('bn.js');
34170 var inherits = require('inherits');
34171 var Base = curve.base;
34173 var assert = elliptic.utils.assert;
34175 function ShortCurve(conf) {
34176 Base.call(this, 'short', conf);
34178 this.a = new BN(conf.a,
16).toRed(this.red);
34179 this.b = new BN(conf.b,
16).toRed(this.red);
34180 this.tinv = this.two.redInvm();
34182 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
34183 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
34185 // If the curve is endomorphic, precalculate beta and lambda
34186 this.endo = this._getEndomorphism(conf);
34187 this._endoWnafT1 = new Array(
4);
34188 this._endoWnafT2 = new Array(
4);
34190 inherits(ShortCurve, Base);
34191 module.exports = ShortCurve;
34193 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
34194 // No efficient endomorphism
34195 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
34198 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
34202 beta = new BN(conf.beta,
16).toRed(this.red);
34204 var betas = this._getEndoRoots(this.p);
34205 // Choose the smallest beta
34206 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
34207 beta = beta.toRed(this.red);
34210 lambda = new BN(conf.lambda,
16);
34212 // Choose the lambda that is matching selected beta
34213 var lambdas = this._getEndoRoots(this.n);
34214 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
34215 lambda = lambdas[
0];
34217 lambda = lambdas[
1];
34218 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
34222 // Get basis vectors, used for balanced length-two representation
34225 basis = conf.basis.map(function(vec) {
34227 a: new BN(vec.a,
16),
34228 b: new BN(vec.b,
16)
34232 basis = this._getEndoBasis(lambda);
34242 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
34243 // Find roots of for x^
2 + x +
1 in F
34244 // Root = (-
1 +- Sqrt(-
3)) /
2
34246 var red = num === this.p ? this.red : BN.mont(num);
34247 var tinv = new BN(
2).toRed(red).redInvm();
34248 var ntinv = tinv.redNeg();
34250 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
34252 var l1 = ntinv.redAdd(s).fromRed();
34253 var l2 = ntinv.redSub(s).fromRed();
34257 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
34258 // aprxSqrt
>= sqrt(this.n)
34259 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
34262 // Run EGCD, until r(L +
1) < aprxSqrt
34264 var v = this.n.clone();
34265 var x1 = new BN(
1);
34266 var y1 = new BN(
0);
34267 var x2 = new BN(
0);
34268 var y2 = new BN(
1);
34270 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
34284 while (u.cmpn(
0) !==
0) {
34286 r = v.sub(q.mul(u));
34287 x = x2.sub(q.mul(x1));
34288 var y = y2.sub(q.mul(y1));
34290 if (!a1 && r.cmp(aprxSqrt) <
0) {
34295 } else if (a1 && ++i ===
2) {
34310 var len1 = a1.sqr().add(b1.sqr());
34311 var len2 = a2.sqr().add(b2.sqr());
34312 if (len2.cmp(len1)
>=
0) {
34333 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
34334 var basis = this.endo.basis;
34338 var c1 = v2.b.mul(k).divRound(this.n);
34339 var c2 = v1.b.neg().mul(k).divRound(this.n);
34341 var p1 = c1.mul(v1.a);
34342 var p2 = c2.mul(v2.a);
34343 var q1 = c1.mul(v1.b);
34344 var q2 = c2.mul(v2.b);
34346 // Calculate answer
34347 var k1 = k.sub(p1).sub(p2);
34348 var k2 = q1.add(q2).neg();
34349 return { k1: k1, k2: k2 };
34352 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
34355 x = x.toRed(this.red);
34357 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
34358 var y = y2.redSqrt();
34359 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
34360 throw new Error('invalid point');
34362 // XXX Is there any way to tell if the number is odd without converting it
34363 // to non-red form?
34364 var isOdd = y.fromRed().isOdd();
34365 if (odd && !isOdd || !odd && isOdd)
34368 return this.point(x, y);
34371 ShortCurve.prototype.validate = function validate(point) {
34378 var ax = this.a.redMul(x);
34379 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
34380 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
34383 ShortCurve.prototype._endoWnafMulAdd =
34384 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
34385 var npoints = this._endoWnafT1;
34386 var ncoeffs = this._endoWnafT2;
34387 for (var i =
0; i < points.length; i++) {
34388 var split = this._endoSplit(coeffs[i]);
34390 var beta = p._getBeta();
34392 if (split.k1.negative) {
34396 if (split.k2.negative) {
34398 beta = beta.neg(true);
34401 npoints[i *
2] = p;
34402 npoints[i *
2 +
1] = beta;
34403 ncoeffs[i *
2] = split.k1;
34404 ncoeffs[i *
2 +
1] = split.k2;
34406 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
34408 // Clean-up references to points and coefficients
34409 for (var j =
0; j < i *
2; j++) {
34416 function Point(curve, x, y, isRed) {
34417 Base.BasePoint.call(this, curve, 'affine');
34418 if (x === null && y === null) {
34423 this.x = new BN(x,
16);
34424 this.y = new BN(y,
16);
34425 // Force redgomery representation when loading from JSON
34427 this.x.forceRed(this.curve.red);
34428 this.y.forceRed(this.curve.red);
34431 this.x = this.x.toRed(this.curve.red);
34433 this.y = this.y.toRed(this.curve.red);
34437 inherits(Point, Base.BasePoint);
34439 ShortCurve.prototype.point = function point(x, y, isRed) {
34440 return new Point(this, x, y, isRed);
34443 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
34444 return Point.fromJSON(this, obj, red);
34447 Point.prototype._getBeta = function _getBeta() {
34448 if (!this.curve.endo)
34451 var pre = this.precomputed;
34452 if (pre && pre.beta)
34455 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
34457 var curve = this.curve;
34458 var endoMul = function(p) {
34459 return curve.point(p.x.redMul(curve.endo.beta), p.y);
34462 beta.precomputed = {
34466 points: pre.naf.points.map(endoMul)
34468 doubles: pre.doubles && {
34469 step: pre.doubles.step,
34470 points: pre.doubles.points.map(endoMul)
34477 Point.prototype.toJSON = function toJSON() {
34478 if (!this.precomputed)
34479 return [ this.x, this.y ];
34481 return [ this.x, this.y, this.precomputed && {
34482 doubles: this.precomputed.doubles && {
34483 step: this.precomputed.doubles.step,
34484 points: this.precomputed.doubles.points.slice(
1)
34486 naf: this.precomputed.naf && {
34487 wnd: this.precomputed.naf.wnd,
34488 points: this.precomputed.naf.points.slice(
1)
34493 Point.fromJSON = function fromJSON(curve, obj, red) {
34494 if (typeof obj === 'string')
34495 obj = JSON.parse(obj);
34496 var res = curve.point(obj[
0], obj[
1], red);
34500 function obj2point(obj) {
34501 return curve.point(obj[
0], obj[
1], red);
34505 res.precomputed = {
34507 doubles: pre.doubles && {
34508 step: pre.doubles.step,
34509 points: [ res ].concat(pre.doubles.points.map(obj2point))
34513 points: [ res ].concat(pre.naf.points.map(obj2point))
34519 Point.prototype.inspect = function inspect() {
34520 if (this.isInfinity())
34521 return '
<EC Point Infinity
>';
34522 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34523 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
34526 Point.prototype.isInfinity = function isInfinity() {
34530 Point.prototype.add = function add(p) {
34544 if (this.neg().eq(p))
34545 return this.curve.point(null, null);
34548 if (this.x.cmp(p.x) ===
0)
34549 return this.curve.point(null, null);
34551 var c = this.y.redSub(p.y);
34552 if (c.cmpn(
0) !==
0)
34553 c = c.redMul(this.x.redSub(p.x).redInvm());
34554 var nx = c.redSqr().redISub(this.x).redISub(p.x);
34555 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34556 return this.curve.point(nx, ny);
34559 Point.prototype.dbl = function dbl() {
34564 var ys1 = this.y.redAdd(this.y);
34565 if (ys1.cmpn(
0) ===
0)
34566 return this.curve.point(null, null);
34568 var a = this.curve.a;
34570 var x2 = this.x.redSqr();
34571 var dyinv = ys1.redInvm();
34572 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
34574 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
34575 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34576 return this.curve.point(nx, ny);
34579 Point.prototype.getX = function getX() {
34580 return this.x.fromRed();
34583 Point.prototype.getY = function getY() {
34584 return this.y.fromRed();
34587 Point.prototype.mul = function mul(k) {
34590 if (this._hasDoubles(k))
34591 return this.curve._fixedNafMul(this, k);
34592 else if (this.curve.endo)
34593 return this.curve._endoWnafMulAdd([ this ], [ k ]);
34595 return this.curve._wnafMul(this, k);
34598 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
34599 var points = [ this, p2 ];
34600 var coeffs = [ k1, k2 ];
34601 if (this.curve.endo)
34602 return this.curve._endoWnafMulAdd(points, coeffs);
34604 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
34607 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
34608 var points = [ this, p2 ];
34609 var coeffs = [ k1, k2 ];
34610 if (this.curve.endo)
34611 return this.curve._endoWnafMulAdd(points, coeffs, true);
34613 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
34616 Point.prototype.eq = function eq(p) {
34617 return this === p ||
34618 this.inf === p.inf &&
34619 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
34622 Point.prototype.neg = function neg(_precompute) {
34626 var res = this.curve.point(this.x, this.y.redNeg());
34627 if (_precompute && this.precomputed) {
34628 var pre = this.precomputed;
34629 var negate = function(p) {
34632 res.precomputed = {
34635 points: pre.naf.points.map(negate)
34637 doubles: pre.doubles && {
34638 step: pre.doubles.step,
34639 points: pre.doubles.points.map(negate)
34646 Point.prototype.toJ = function toJ() {
34648 return this.curve.jpoint(null, null, null);
34650 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
34654 function JPoint(curve, x, y, z) {
34655 Base.BasePoint.call(this, curve, 'jacobian');
34656 if (x === null && y === null && z === null) {
34657 this.x = this.curve.one;
34658 this.y = this.curve.one;
34659 this.z = new BN(
0);
34661 this.x = new BN(x,
16);
34662 this.y = new BN(y,
16);
34663 this.z = new BN(z,
16);
34666 this.x = this.x.toRed(this.curve.red);
34668 this.y = this.y.toRed(this.curve.red);
34670 this.z = this.z.toRed(this.curve.red);
34672 this.zOne = this.z === this.curve.one;
34674 inherits(JPoint, Base.BasePoint);
34676 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
34677 return new JPoint(this, x, y, z);
34680 JPoint.prototype.toP = function toP() {
34681 if (this.isInfinity())
34682 return this.curve.point(null, null);
34684 var zinv = this.z.redInvm();
34685 var zinv2 = zinv.redSqr();
34686 var ax = this.x.redMul(zinv2);
34687 var ay = this.y.redMul(zinv2).redMul(zinv);
34689 return this.curve.point(ax, ay);
34692 JPoint.prototype.neg = function neg() {
34693 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
34696 JPoint.prototype.add = function add(p) {
34698 if (this.isInfinity())
34702 if (p.isInfinity())
34706 var pz2 = p.z.redSqr();
34707 var z2 = this.z.redSqr();
34708 var u1 = this.x.redMul(pz2);
34709 var u2 = p.x.redMul(z2);
34710 var s1 = this.y.redMul(pz2.redMul(p.z));
34711 var s2 = p.y.redMul(z2.redMul(this.z));
34713 var h = u1.redSub(u2);
34714 var r = s1.redSub(s2);
34715 if (h.cmpn(
0) ===
0) {
34716 if (r.cmpn(
0) !==
0)
34717 return this.curve.jpoint(null, null, null);
34722 var h2 = h.redSqr();
34723 var h3 = h2.redMul(h);
34724 var v = u1.redMul(h2);
34726 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34727 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34728 var nz = this.z.redMul(p.z).redMul(h);
34730 return this.curve.jpoint(nx, ny, nz);
34733 JPoint.prototype.mixedAdd = function mixedAdd(p) {
34735 if (this.isInfinity())
34739 if (p.isInfinity())
34743 var z2 = this.z.redSqr();
34745 var u2 = p.x.redMul(z2);
34747 var s2 = p.y.redMul(z2).redMul(this.z);
34749 var h = u1.redSub(u2);
34750 var r = s1.redSub(s2);
34751 if (h.cmpn(
0) ===
0) {
34752 if (r.cmpn(
0) !==
0)
34753 return this.curve.jpoint(null, null, null);
34758 var h2 = h.redSqr();
34759 var h3 = h2.redMul(h);
34760 var v = u1.redMul(h2);
34762 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34763 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34764 var nz = this.z.redMul(h);
34766 return this.curve.jpoint(nx, ny, nz);
34769 JPoint.prototype.dblp = function dblp(pow) {
34772 if (this.isInfinity())
34777 if (this.curve.zeroA || this.curve.threeA) {
34779 for (var i =
0; i < pow; i++)
34784 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
34785 // N =
1 =
> 6M +
6S +
9A
34786 var a = this.curve.a;
34787 var tinv = this.curve.tinv;
34792 var jz4 = jz.redSqr().redSqr();
34795 var jyd = jy.redAdd(jy);
34796 for (var i =
0; i < pow; i++) {
34797 var jx2 = jx.redSqr();
34798 var jyd2 = jyd.redSqr();
34799 var jyd4 = jyd2.redSqr();
34800 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34802 var t1 = jx.redMul(jyd2);
34803 var nx = c.redSqr().redISub(t1.redAdd(t1));
34804 var t2 = t1.redISub(nx);
34805 var dny = c.redMul(t2);
34806 dny = dny.redIAdd(dny).redISub(jyd4);
34807 var nz = jyd.redMul(jz);
34809 jz4 = jz4.redMul(jyd4);
34816 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
34819 JPoint.prototype.dbl = function dbl() {
34820 if (this.isInfinity())
34823 if (this.curve.zeroA)
34824 return this._zeroDbl();
34825 else if (this.curve.threeA)
34826 return this._threeDbl();
34828 return this._dbl();
34831 JPoint.prototype._zeroDbl = function _zeroDbl() {
34837 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34838 // #doubling-mdbl-
2007-bl
34842 var xx = this.x.redSqr();
34844 var yy = this.y.redSqr();
34846 var yyyy = yy.redSqr();
34847 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34848 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34850 // M =
3 * XX + a; a =
0
34851 var m = xx.redAdd(xx).redIAdd(xx);
34853 var t = m.redSqr().redISub(s).redISub(s);
34856 var yyyy8 = yyyy.redIAdd(yyyy);
34857 yyyy8 = yyyy8.redIAdd(yyyy8);
34858 yyyy8 = yyyy8.redIAdd(yyyy8);
34862 // Y3 = M * (S - T) -
8 * YYYY
34863 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34865 nz = this.y.redAdd(this.y);
34867 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34868 // #doubling-dbl-
2009-l
34872 var a = this.x.redSqr();
34874 var b = this.y.redSqr();
34876 var c = b.redSqr();
34877 // D =
2 * ((X1 + B)^
2 - A - C)
34878 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
34881 var e = a.redAdd(a).redIAdd(a);
34883 var f = e.redSqr();
34886 var c8 = c.redIAdd(c);
34887 c8 = c8.redIAdd(c8);
34888 c8 = c8.redIAdd(c8);
34891 nx = f.redISub(d).redISub(d);
34892 // Y3 = E * (D - X3) -
8 * C
34893 ny = e.redMul(d.redISub(nx)).redISub(c8);
34894 // Z3 =
2 * Y1 * Z1
34895 nz = this.y.redMul(this.z);
34896 nz = nz.redIAdd(nz);
34899 return this.curve.jpoint(nx, ny, nz);
34902 JPoint.prototype._threeDbl = function _threeDbl() {
34908 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
34909 // #doubling-mdbl-
2007-bl
34913 var xx = this.x.redSqr();
34915 var yy = this.y.redSqr();
34917 var yyyy = yy.redSqr();
34918 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34919 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34922 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
34924 var t = m.redSqr().redISub(s).redISub(s);
34927 // Y3 = M * (S - T) -
8 * YYYY
34928 var yyyy8 = yyyy.redIAdd(yyyy);
34929 yyyy8 = yyyy8.redIAdd(yyyy8);
34930 yyyy8 = yyyy8.redIAdd(yyyy8);
34931 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34933 nz = this.y.redAdd(this.y);
34935 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
34939 var delta = this.z.redSqr();
34941 var gamma = this.y.redSqr();
34942 // beta = X1 * gamma
34943 var beta = this.x.redMul(gamma);
34944 // alpha =
3 * (X1 - delta) * (X1 + delta)
34945 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
34946 alpha = alpha.redAdd(alpha).redIAdd(alpha);
34947 // X3 = alpha^
2 -
8 * beta
34948 var beta4 = beta.redIAdd(beta);
34949 beta4 = beta4.redIAdd(beta4);
34950 var beta8 = beta4.redAdd(beta4);
34951 nx = alpha.redSqr().redISub(beta8);
34952 // Z3 = (Y1 + Z1)^
2 - gamma - delta
34953 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
34954 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
34955 var ggamma8 = gamma.redSqr();
34956 ggamma8 = ggamma8.redIAdd(ggamma8);
34957 ggamma8 = ggamma8.redIAdd(ggamma8);
34958 ggamma8 = ggamma8.redIAdd(ggamma8);
34959 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
34962 return this.curve.jpoint(nx, ny, nz);
34965 JPoint.prototype._dbl = function _dbl() {
34966 var a = this.curve.a;
34972 var jz4 = jz.redSqr().redSqr();
34974 var jx2 = jx.redSqr();
34975 var jy2 = jy.redSqr();
34977 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34979 var jxd4 = jx.redAdd(jx);
34980 jxd4 = jxd4.redIAdd(jxd4);
34981 var t1 = jxd4.redMul(jy2);
34982 var nx = c.redSqr().redISub(t1.redAdd(t1));
34983 var t2 = t1.redISub(nx);
34985 var jyd8 = jy2.redSqr();
34986 jyd8 = jyd8.redIAdd(jyd8);
34987 jyd8 = jyd8.redIAdd(jyd8);
34988 jyd8 = jyd8.redIAdd(jyd8);
34989 var ny = c.redMul(t2).redISub(jyd8);
34990 var nz = jy.redAdd(jy).redMul(jz);
34992 return this.curve.jpoint(nx, ny, nz);
34995 JPoint.prototype.trpl = function trpl() {
34996 if (!this.curve.zeroA)
34997 return this.dbl().add(this);
34999 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
35003 var xx = this.x.redSqr();
35005 var yy = this.y.redSqr();
35007 var zz = this.z.redSqr();
35009 var yyyy = yy.redSqr();
35010 // M =
3 * XX + a * ZZ2; a =
0
35011 var m = xx.redAdd(xx).redIAdd(xx);
35013 var mm = m.redSqr();
35014 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
35015 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
35017 e = e.redAdd(e).redIAdd(e);
35020 var ee = e.redSqr();
35022 var t = yyyy.redIAdd(yyyy);
35026 // U = (M + E)^
2 - MM - EE - T
35027 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
35028 // X3 =
4 * (X1 * EE -
4 * YY * U)
35029 var yyu4 = yy.redMul(u);
35030 yyu4 = yyu4.redIAdd(yyu4);
35031 yyu4 = yyu4.redIAdd(yyu4);
35032 var nx = this.x.redMul(ee).redISub(yyu4);
35033 nx = nx.redIAdd(nx);
35034 nx = nx.redIAdd(nx);
35035 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
35036 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
35037 ny = ny.redIAdd(ny);
35038 ny = ny.redIAdd(ny);
35039 ny = ny.redIAdd(ny);
35040 // Z3 = (Z1 + E)^
2 - ZZ - EE
35041 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
35043 return this.curve.jpoint(nx, ny, nz);
35046 JPoint.prototype.mul = function mul(k, kbase) {
35047 k = new BN(k, kbase);
35049 return this.curve._wnafMul(this, k);
35052 JPoint.prototype.eq = function eq(p) {
35053 if (p.type === 'affine')
35054 return this.eq(p.toJ());
35059 // x1 * z2^
2 == x2 * z1^
2
35060 var z2 = this.z.redSqr();
35061 var pz2 = p.z.redSqr();
35062 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
35065 // y1 * z2^
3 == y2 * z1^
3
35066 var z3 = z2.redMul(this.z);
35067 var pz3 = pz2.redMul(p.z);
35068 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
35071 JPoint.prototype.eqXToP = function eqXToP(x) {
35072 var zs = this.z.redSqr();
35073 var rx = x.toRed(this.curve.red).redMul(zs);
35074 if (this.x.cmp(rx) ===
0)
35077 var xc = x.clone();
35078 var t = this.curve.redN.redMul(zs);
35080 xc.iadd(this.curve.n);
35081 if (xc.cmp(this.curve.p)
>=
0)
35085 if (this.x.cmp(rx) ===
0)
35091 JPoint.prototype.inspect = function inspect() {
35092 if (this.isInfinity())
35093 return '
<EC JPoint Infinity
>';
35094 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
35095 ' y: ' + this.y.toString(
16,
2) +
35096 ' z: ' + this.z.toString(
16,
2) + '
>';
35099 JPoint.prototype.isInfinity = function isInfinity() {
35100 // XXX This code assumes that zero is always zero in red
35101 return this.z.cmpn(
0) ===
0;
35104 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
35107 var curves = exports;
35109 var hash = require('hash.js');
35110 var elliptic = require('../elliptic');
35112 var assert = elliptic.utils.assert;
35114 function PresetCurve(options) {
35115 if (options.type === 'short')
35116 this.curve = new elliptic.curve.short(options);
35117 else if (options.type === 'edwards')
35118 this.curve = new elliptic.curve.edwards(options);
35120 this.curve = new elliptic.curve.mont(options);
35121 this.g = this.curve.g;
35122 this.n = this.curve.n;
35123 this.hash = options.hash;
35125 assert(this.g.validate(), 'Invalid curve');
35126 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
35128 curves.PresetCurve = PresetCurve;
35130 function defineCurve(name, options) {
35131 Object.defineProperty(curves, name, {
35132 configurable: true,
35135 var curve = new PresetCurve(options);
35136 Object.defineProperty(curves, name, {
35137 configurable: true,
35146 defineCurve('p192', {
35149 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
35150 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
35151 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
35152 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
35156 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
35157 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
35161 defineCurve('p224', {
35164 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
35165 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
35166 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
35167 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
35171 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
35172 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
35176 defineCurve('p256', {
35179 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
35180 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
35181 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
35182 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
35186 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
35187 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
35191 defineCurve('p384', {
35194 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35195 'fffffffe ffffffff
00000000 00000000 ffffffff',
35196 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35197 'fffffffe ffffffff
00000000 00000000 fffffffc',
35198 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
35199 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
35200 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
35201 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
35205 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
35206 '
5502f25d bf55296c
3a545e38
72760ab7',
35207 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
35208 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
35212 defineCurve('p521', {
35215 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35216 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35217 'ffffffff ffffffff ffffffff ffffffff ffffffff',
35218 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35219 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35220 'ffffffff ffffffff ffffffff ffffffff fffffffc',
35221 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
35222 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
35223 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
35224 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35225 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
35226 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
35230 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
35231 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
35232 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
35233 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
35234 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
35235 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
35239 defineCurve('curve25519', {
35242 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35245 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35253 defineCurve('ed25519', {
35256 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35259 // -
121665 * (
121666^(-
1)) (mod P)
35260 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
35261 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35265 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
35268 '
6666666666666666666666666666666666666666666666666666666666666658'
35274 pre = require('./precomputed/secp256k1');
35279 defineCurve('secp256k1', {
35282 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
35285 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
35289 // Precomputed endomorphism
35290 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
35291 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
35294 a: '
3086d221a7d46bcde86c90e49284eb15',
35295 b: '-e4437ed6010e88286f547fa90abfe4c3'
35298 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
35299 b: '
3086d221a7d46bcde86c90e49284eb15'
35305 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
35306 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
35311 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
35314 var BN = require('bn.js');
35315 var elliptic = require('../../elliptic');
35316 var utils = elliptic.utils;
35317 var assert = utils.assert;
35319 var KeyPair = require('./key');
35320 var Signature = require('./signature');
35322 function EC(options) {
35323 if (!(this instanceof EC))
35324 return new EC(options);
35326 // Shortcut `elliptic.ec(curve-name)`
35327 if (typeof options === 'string') {
35328 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
35330 options = elliptic.curves[options];
35333 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
35334 if (options instanceof elliptic.curves.PresetCurve)
35335 options = { curve: options };
35337 this.curve = options.curve.curve;
35338 this.n = this.curve.n;
35339 this.nh = this.n.ushrn(
1);
35340 this.g = this.curve.g;
35343 this.g = options.curve.g;
35344 this.g.precompute(options.curve.n.bitLength() +
1);
35346 // Hash for function for DRBG
35347 this.hash = options.hash || options.curve.hash;
35349 module.exports = EC;
35351 EC.prototype.keyPair = function keyPair(options) {
35352 return new KeyPair(this, options);
35355 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
35356 return KeyPair.fromPrivate(this, priv, enc);
35359 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
35360 return KeyPair.fromPublic(this, pub, enc);
35363 EC.prototype.genKeyPair = function genKeyPair(options) {
35367 // Instantiate Hmac_DRBG
35368 var drbg = new elliptic.hmacDRBG({
35370 pers: options.pers,
35371 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
35372 nonce: this.n.toArray()
35375 var bytes = this.n.byteLength();
35376 var ns2 = this.n.sub(new BN(
2));
35378 var priv = new BN(drbg.generate(bytes));
35379 if (priv.cmp(ns2)
> 0)
35383 return this.keyFromPrivate(priv);
35387 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
35388 var delta = msg.byteLength() *
8 - this.n.bitLength();
35390 msg = msg.ushrn(delta);
35391 if (!truncOnly && msg.cmp(this.n)
>=
0)
35392 return msg.sub(this.n);
35397 EC.prototype.sign = function sign(msg, key, enc, options) {
35398 if (typeof enc === 'object') {
35405 key = this.keyFromPrivate(key, enc);
35406 msg = this._truncateToN(new BN(msg,
16));
35408 // Zero-extend key to provide enough entropy
35409 var bytes = this.n.byteLength();
35410 var bkey = key.getPrivate().toArray('be', bytes);
35412 // Zero-extend nonce to have the same byte size as N
35413 var nonce = msg.toArray('be', bytes);
35415 // Instantiate Hmac_DRBG
35416 var drbg = new elliptic.hmacDRBG({
35420 pers: options.pers,
35421 persEnc: options.persEnc
35424 // Number of bytes to generate
35425 var ns1 = this.n.sub(new BN(
1));
35427 for (var iter =
0; true; iter++) {
35428 var k = options.k ?
35430 new BN(drbg.generate(this.n.byteLength()));
35431 k = this._truncateToN(k, true);
35432 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
35435 var kp = this.g.mul(k);
35436 if (kp.isInfinity())
35439 var kpX = kp.getX();
35440 var r = kpX.umod(this.n);
35441 if (r.cmpn(
0) ===
0)
35444 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
35445 s = s.umod(this.n);
35446 if (s.cmpn(
0) ===
0)
35449 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
35450 (kpX.cmp(r) !==
0 ?
2 :
0);
35452 // Use complement of `s`, if it is
> `n /
2`
35453 if (options.canonical && s.cmp(this.nh)
> 0) {
35455 recoveryParam ^=
1;
35458 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
35462 EC.prototype.verify = function verify(msg, signature, key, enc) {
35463 msg = this._truncateToN(new BN(msg,
16));
35464 key = this.keyFromPublic(key, enc);
35465 signature = new Signature(signature, 'hex');
35467 // Perform primitive values validation
35468 var r = signature.r;
35469 var s = signature.s;
35470 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
35472 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
35475 // Validate signature
35476 var sinv = s.invm(this.n);
35477 var u1 = sinv.mul(msg).umod(this.n);
35478 var u2 = sinv.mul(r).umod(this.n);
35480 if (!this.curve._maxwellTrick) {
35481 var p = this.g.mulAdd(u1, key.getPublic(), u2);
35482 if (p.isInfinity())
35485 return p.getX().umod(this.n).cmp(r) ===
0;
35488 // NOTE: Greg Maxwell's trick, inspired by:
35489 // https://git.io/vad3K
35491 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
35492 if (p.isInfinity())
35495 // Compare `p.x` of Jacobian point with `r`,
35496 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
35497 // inverse of `p.z^
2`
35498 return p.eqXToP(r);
35501 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
35502 assert((
3 & j) === j, 'The recovery param is more than two bits');
35503 signature = new Signature(signature, enc);
35506 var e = new BN(msg);
35507 var r = signature.r;
35508 var s = signature.s;
35510 // A set LSB signifies that the y-coordinate is odd
35511 var isYOdd = j &
1;
35512 var isSecondKey = j
>> 1;
35513 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
35514 throw new Error('Unable to find sencond key candinate');
35516 //
1.1. Let x = r + jn.
35518 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
35520 r = this.curve.pointFromX(r, isYOdd);
35522 var rInv = signature.r.invm(n);
35523 var s1 = n.sub(e).mul(rInv).umod(n);
35524 var s2 = s.mul(rInv).umod(n);
35526 //
1.6.1 Compute Q = r^-
1 (sR - eG)
35527 // Q = r^-
1 (sR + -eG)
35528 return this.g.mulAdd(s1, r, s2);
35531 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
35532 signature = new Signature(signature, enc);
35533 if (signature.recoveryParam !== null)
35534 return signature.recoveryParam;
35536 for (var i =
0; i <
4; i++) {
35539 Qprime = this.recoverPubKey(e, signature, i);
35547 throw new Error('Unable to find valid recovery factor');
35550 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
35553 var BN = require('bn.js');
35554 var elliptic = require('../../elliptic');
35555 var utils = elliptic.utils;
35556 var assert = utils.assert;
35558 function KeyPair(ec, options) {
35563 // KeyPair(ec, { priv: ..., pub: ... })
35565 this._importPrivate(options.priv, options.privEnc);
35567 this._importPublic(options.pub, options.pubEnc);
35569 module.exports = KeyPair;
35571 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
35572 if (pub instanceof KeyPair)
35575 return new KeyPair(ec, {
35581 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
35582 if (priv instanceof KeyPair)
35585 return new KeyPair(ec, {
35591 KeyPair.prototype.validate = function validate() {
35592 var pub = this.getPublic();
35594 if (pub.isInfinity())
35595 return { result: false, reason: 'Invalid public key' };
35596 if (!pub.validate())
35597 return { result: false, reason: 'Public key is not a point' };
35598 if (!pub.mul(this.ec.curve.n).isInfinity())
35599 return { result: false, reason: 'Public key * N != O' };
35601 return { result: true, reason: null };
35604 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
35605 // compact is optional argument
35606 if (typeof compact === 'string') {
35612 this.pub = this.ec.g.mul(this.priv);
35617 return this.pub.encode(enc, compact);
35620 KeyPair.prototype.getPrivate = function getPrivate(enc) {
35622 return this.priv.toString(
16,
2);
35627 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
35628 this.priv = new BN(key, enc ||
16);
35630 // Ensure that the priv won't be bigger than n, otherwise we may fail
35631 // in fixed multiplication method
35632 this.priv = this.priv.umod(this.ec.curve.n);
35635 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
35636 if (key.x || key.y) {
35637 // Montgomery points only have an `x` coordinate.
35638 // Weierstrass/Edwards points on the other hand have both `x` and
35639 // `y` coordinates.
35640 if (this.ec.curve.type === 'mont') {
35641 assert(key.x, 'Need x coordinate');
35642 } else if (this.ec.curve.type === 'short' ||
35643 this.ec.curve.type === 'edwards') {
35644 assert(key.x && key.y, 'Need both x and y coordinate');
35646 this.pub = this.ec.curve.point(key.x, key.y);
35649 this.pub = this.ec.curve.decodePoint(key, enc);
35653 KeyPair.prototype.derive = function derive(pub) {
35654 return pub.mul(this.priv).getX();
35658 KeyPair.prototype.sign = function sign(msg, enc, options) {
35659 return this.ec.sign(msg, this, enc, options);
35662 KeyPair.prototype.verify = function verify(msg, signature) {
35663 return this.ec.verify(msg, signature, this);
35666 KeyPair.prototype.inspect = function inspect() {
35667 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
35668 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
35671 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
35674 var BN = require('bn.js');
35676 var elliptic = require('../../elliptic');
35677 var utils = elliptic.utils;
35678 var assert = utils.assert;
35680 function Signature(options, enc) {
35681 if (options instanceof Signature)
35684 if (this._importDER(options, enc))
35687 assert(options.r && options.s, 'Signature without r or s');
35688 this.r = new BN(options.r,
16);
35689 this.s = new BN(options.s,
16);
35690 if (options.recoveryParam === undefined)
35691 this.recoveryParam = null;
35693 this.recoveryParam = options.recoveryParam;
35695 module.exports = Signature;
35697 function Position() {
35701 function getLength(buf, p) {
35702 var initial = buf[p.place++];
35703 if (!(initial &
0x80)) {
35706 var octetLen = initial &
0xf;
35708 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
35716 function rmPadding(buf) {
35718 var len = buf.length -
1;
35719 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
35725 return buf.slice(i);
35728 Signature.prototype._importDER = function _importDER(data, enc) {
35729 data = utils.toArray(data, enc);
35730 var p = new Position();
35731 if (data[p.place++] !==
0x30) {
35734 var len = getLength(data, p);
35735 if ((len + p.place) !== data.length) {
35738 if (data[p.place++] !==
0x02) {
35741 var rlen = getLength(data, p);
35742 var r = data.slice(p.place, rlen + p.place);
35744 if (data[p.place++] !==
0x02) {
35747 var slen = getLength(data, p);
35748 if (data.length !== slen + p.place) {
35751 var s = data.slice(p.place, slen + p.place);
35752 if (r[
0] ===
0 && (r[
1] &
0x80)) {
35755 if (s[
0] ===
0 && (s[
1] &
0x80)) {
35759 this.r = new BN(r);
35760 this.s = new BN(s);
35761 this.recoveryParam = null;
35766 function constructLength(arr, len) {
35771 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
35772 arr.push(octets |
0x80);
35774 arr.push((len
>>> (octets <<
3)) &
0xff);
35779 Signature.prototype.toDER = function toDER(enc) {
35780 var r = this.r.toArray();
35781 var s = this.s.toArray();
35785 r = [
0 ].concat(r);
35788 s = [
0 ].concat(s);
35793 while (!s[
0] && !(s[
1] &
0x80)) {
35796 var arr = [
0x02 ];
35797 constructLength(arr, r.length);
35798 arr = arr.concat(r);
35800 constructLength(arr, s.length);
35801 var backHalf = arr.concat(s);
35802 var res = [
0x30 ];
35803 constructLength(res, backHalf.length);
35804 res = res.concat(backHalf);
35805 return utils.encode(res, enc);
35808 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
35811 var hash = require('hash.js');
35812 var elliptic = require('../../elliptic');
35813 var utils = elliptic.utils;
35814 var assert = utils.assert;
35815 var parseBytes = utils.parseBytes;
35816 var KeyPair = require('./key');
35817 var Signature = require('./signature');
35819 function EDDSA(curve) {
35820 assert(curve === 'ed25519', 'only tested with ed25519 so far');
35822 if (!(this instanceof EDDSA))
35823 return new EDDSA(curve);
35825 var curve = elliptic.curves[curve].curve;
35826 this.curve = curve;
35828 this.g.precompute(curve.n.bitLength() +
1);
35830 this.pointClass = curve.point().constructor;
35831 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
35832 this.hash = hash.sha512;
35835 module.exports = EDDSA;
35838 * @param {Array|String} message - message bytes
35839 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
35840 * @returns {Signature} - signature
35842 EDDSA.prototype.sign = function sign(message, secret) {
35843 message = parseBytes(message);
35844 var key = this.keyFromSecret(secret);
35845 var r = this.hashInt(key.messagePrefix(), message);
35846 var R = this.g.mul(r);
35847 var Rencoded = this.encodePoint(R);
35848 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
35850 var S = r.add(s_).umod(this.curve.n);
35851 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
35855 * @param {Array} message - message bytes
35856 * @param {Array|String|Signature} sig - sig bytes
35857 * @param {Array|String|Point|KeyPair} pub - public key
35858 * @returns {Boolean} - true if public key matches sig of message
35860 EDDSA.prototype.verify = function verify(message, sig, pub) {
35861 message = parseBytes(message);
35862 sig = this.makeSignature(sig);
35863 var key = this.keyFromPublic(pub);
35864 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
35865 var SG = this.g.mul(sig.S());
35866 var RplusAh = sig.R().add(key.pub().mul(h));
35867 return RplusAh.eq(SG);
35870 EDDSA.prototype.hashInt = function hashInt() {
35871 var hash = this.hash();
35872 for (var i =
0; i < arguments.length; i++)
35873 hash.update(arguments[i]);
35874 return utils.intFromLE(hash.digest()).umod(this.curve.n);
35877 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
35878 return KeyPair.fromPublic(this, pub);
35881 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
35882 return KeyPair.fromSecret(this, secret);
35885 EDDSA.prototype.makeSignature = function makeSignature(sig) {
35886 if (sig instanceof Signature)
35888 return new Signature(this, sig);
35892 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
35894 * EDDSA defines methods for encoding and decoding points and integers. These are
35895 * helper convenience methods, that pass along to utility functions implied
35899 EDDSA.prototype.encodePoint = function encodePoint(point) {
35900 var enc = point.getY().toArray('le', this.encodingLength);
35901 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
35905 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
35906 bytes = utils.parseBytes(bytes);
35908 var lastIx = bytes.length -
1;
35909 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
35910 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
35912 var y = utils.intFromLE(normed);
35913 return this.curve.pointFromY(y, xIsOdd);
35916 EDDSA.prototype.encodeInt = function encodeInt(num) {
35917 return num.toArray('le', this.encodingLength);
35920 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
35921 return utils.intFromLE(bytes);
35924 EDDSA.prototype.isPoint = function isPoint(val) {
35925 return val instanceof this.pointClass;
35928 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
35931 var elliptic = require('../../elliptic');
35932 var utils = elliptic.utils;
35933 var assert = utils.assert;
35934 var parseBytes = utils.parseBytes;
35935 var cachedProperty = utils.cachedProperty;
35938 * @param {EDDSA} eddsa - instance
35939 * @param {Object} params - public/private key parameters
35941 * @param {Array
<Byte>} [params.secret] - secret seed bytes
35942 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
35943 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
35946 function KeyPair(eddsa, params) {
35947 this.eddsa = eddsa;
35948 this._secret = parseBytes(params.secret);
35949 if (eddsa.isPoint(params.pub))
35950 this._pub = params.pub;
35952 this._pubBytes = parseBytes(params.pub);
35955 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
35956 if (pub instanceof KeyPair)
35958 return new KeyPair(eddsa, { pub: pub });
35961 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
35962 if (secret instanceof KeyPair)
35964 return new KeyPair(eddsa, { secret: secret });
35967 KeyPair.prototype.secret = function secret() {
35968 return this._secret;
35971 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
35972 return this.eddsa.encodePoint(this.pub());
35975 cachedProperty(KeyPair, 'pub', function pub() {
35976 if (this._pubBytes)
35977 return this.eddsa.decodePoint(this._pubBytes);
35978 return this.eddsa.g.mul(this.priv());
35981 cachedProperty(KeyPair, 'privBytes', function privBytes() {
35982 var eddsa = this.eddsa;
35983 var hash = this.hash();
35984 var lastIx = eddsa.encodingLength -
1;
35986 var a = hash.slice(
0, eddsa.encodingLength);
35994 cachedProperty(KeyPair, 'priv', function priv() {
35995 return this.eddsa.decodeInt(this.privBytes());
35998 cachedProperty(KeyPair, 'hash', function hash() {
35999 return this.eddsa.hash().update(this.secret()).digest();
36002 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
36003 return this.hash().slice(this.eddsa.encodingLength);
36006 KeyPair.prototype.sign = function sign(message) {
36007 assert(this._secret, 'KeyPair can only verify');
36008 return this.eddsa.sign(message, this);
36011 KeyPair.prototype.verify = function verify(message, sig) {
36012 return this.eddsa.verify(message, sig, this);
36015 KeyPair.prototype.getSecret = function getSecret(enc) {
36016 assert(this._secret, 'KeyPair is public only');
36017 return utils.encode(this.secret(), enc);
36020 KeyPair.prototype.getPublic = function getPublic(enc) {
36021 return utils.encode(this.pubBytes(), enc);
36024 module.exports = KeyPair;
36026 },{"../../elliptic":
39}],
51:[function(require,module,exports){
36029 var BN = require('bn.js');
36030 var elliptic = require('../../elliptic');
36031 var utils = elliptic.utils;
36032 var assert = utils.assert;
36033 var cachedProperty = utils.cachedProperty;
36034 var parseBytes = utils.parseBytes;
36037 * @param {EDDSA} eddsa - eddsa instance
36038 * @param {Array
<Bytes>|Object} sig -
36039 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
36040 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
36041 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
36042 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
36044 function Signature(eddsa, sig) {
36045 this.eddsa = eddsa;
36047 if (typeof sig !== 'object')
36048 sig = parseBytes(sig);
36050 if (Array.isArray(sig)) {
36052 R: sig.slice(
0, eddsa.encodingLength),
36053 S: sig.slice(eddsa.encodingLength)
36057 assert(sig.R && sig.S, 'Signature without R or S');
36059 if (eddsa.isPoint(sig.R))
36061 if (sig.S instanceof BN)
36064 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
36065 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
36068 cachedProperty(Signature, 'S', function S() {
36069 return this.eddsa.decodeInt(this.Sencoded());
36072 cachedProperty(Signature, 'R', function R() {
36073 return this.eddsa.decodePoint(this.Rencoded());
36076 cachedProperty(Signature, 'Rencoded', function Rencoded() {
36077 return this.eddsa.encodePoint(this.R());
36080 cachedProperty(Signature, 'Sencoded', function Sencoded() {
36081 return this.eddsa.encodeInt(this.S());
36084 Signature.prototype.toBytes = function toBytes() {
36085 return this.Rencoded().concat(this.Sencoded());
36088 Signature.prototype.toHex = function toHex() {
36089 return utils.encode(this.toBytes(), 'hex').toUpperCase();
36092 module.exports = Signature;
36094 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
36097 var hash = require('hash.js');
36098 var elliptic = require('../elliptic');
36099 var utils = elliptic.utils;
36100 var assert = utils.assert;
36102 function HmacDRBG(options) {
36103 if (!(this instanceof HmacDRBG))
36104 return new HmacDRBG(options);
36105 this.hash = options.hash;
36106 this.predResist = !!options.predResist;
36108 this.outLen = this.hash.outSize;
36109 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
36111 this.reseed = null;
36112 this.reseedInterval = null;
36116 var entropy = utils.toArray(options.entropy, options.entropyEnc);
36117 var nonce = utils.toArray(options.nonce, options.nonceEnc);
36118 var pers = utils.toArray(options.pers, options.persEnc);
36119 assert(entropy.length
>= (this.minEntropy /
8),
36120 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36121 this._init(entropy, nonce, pers);
36123 module.exports = HmacDRBG;
36125 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
36126 var seed = entropy.concat(nonce).concat(pers);
36128 this.K = new Array(this.outLen /
8);
36129 this.V = new Array(this.outLen /
8);
36130 for (var i =
0; i < this.V.length; i++) {
36135 this._update(seed);
36137 this.reseedInterval =
0x1000000000000; //
2^
48
36140 HmacDRBG.prototype._hmac = function hmac() {
36141 return new hash.hmac(this.hash, this.K);
36144 HmacDRBG.prototype._update = function update(seed) {
36145 var kmac = this._hmac()
36149 kmac = kmac.update(seed);
36150 this.K = kmac.digest();
36151 this.V = this._hmac().update(this.V).digest();
36155 this.K = this._hmac()
36160 this.V = this._hmac().update(this.V).digest();
36163 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
36164 // Optional entropy enc
36165 if (typeof entropyEnc !== 'string') {
36171 entropy = utils.toBuffer(entropy, entropyEnc);
36172 add = utils.toBuffer(add, addEnc);
36174 assert(entropy.length
>= (this.minEntropy /
8),
36175 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36177 this._update(entropy.concat(add || []));
36181 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
36182 if (this.reseed
> this.reseedInterval)
36183 throw new Error('Reseed is required');
36185 // Optional encoding
36186 if (typeof enc !== 'string') {
36192 // Optional additional data
36194 add = utils.toArray(add, addEnc);
36199 while (temp.length < len) {
36200 this.V = this._hmac().update(this.V).digest();
36201 temp = temp.concat(this.V);
36204 var res = temp.slice(
0, len);
36207 return utils.encode(res, enc);
36210 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
36216 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
36217 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
36220 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
36221 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
36224 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
36225 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
36228 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
36229 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
36232 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
36233 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
36236 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
36237 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
36240 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
36241 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
36244 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
36245 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
36248 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
36249 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
36252 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
36253 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
36256 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
36257 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
36260 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
36261 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
36264 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
36265 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
36268 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
36269 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
36272 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
36273 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
36276 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
36277 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
36280 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
36281 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
36284 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
36285 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
36288 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
36289 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
36292 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
36293 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
36296 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
36297 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
36300 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
36301 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
36304 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
36305 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
36308 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
36309 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
36312 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
36313 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
36316 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
36317 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
36320 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
36321 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
36324 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
36325 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
36328 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
36329 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
36332 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
36333 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
36336 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
36337 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
36340 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
36341 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
36344 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
36345 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
36348 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
36349 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
36352 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
36353 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
36356 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
36357 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
36360 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
36361 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
36364 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
36365 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
36368 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
36369 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
36372 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
36373 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
36376 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
36377 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
36380 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
36381 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
36384 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
36385 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
36388 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
36389 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
36392 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
36393 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
36396 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
36397 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
36400 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
36401 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
36404 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
36405 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
36408 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
36409 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
36412 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
36413 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
36416 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
36417 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
36420 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
36421 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
36424 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
36425 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
36428 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
36429 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
36432 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
36433 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
36436 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
36437 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
36440 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
36441 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
36444 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
36445 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
36448 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
36449 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
36452 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
36453 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
36456 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
36457 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
36460 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
36461 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
36464 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
36465 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
36468 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
36469 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
36472 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
36473 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
36481 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
36482 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
36485 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
36486 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
36489 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
36490 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
36493 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
36494 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
36497 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
36498 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
36501 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
36502 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
36505 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
36506 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
36509 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
36510 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
36513 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
36514 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
36517 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
36518 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
36521 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
36522 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
36525 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
36526 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
36529 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
36530 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
36533 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
36534 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
36537 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
36538 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
36541 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
36542 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
36545 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
36546 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
36549 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
36550 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
36553 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
36554 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
36557 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
36558 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
36561 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
36562 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
36565 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
36566 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
36569 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
36570 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
36573 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
36574 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
36577 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
36578 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
36581 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
36582 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
36585 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
36586 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
36589 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
36590 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
36593 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
36594 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
36597 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
36598 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
36601 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
36602 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
36605 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
36606 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
36609 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
36610 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
36613 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
36614 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
36617 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
36618 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
36621 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
36622 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
36625 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
36626 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
36629 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
36630 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
36633 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
36634 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
36637 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
36638 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
36641 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
36642 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
36645 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
36646 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
36649 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
36650 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
36653 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
36654 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
36657 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
36658 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
36661 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
36662 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
36665 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
36666 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
36669 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
36670 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
36673 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
36674 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
36677 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
36678 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
36681 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
36682 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
36685 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
36686 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
36689 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
36690 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
36693 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
36694 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
36697 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
36698 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
36701 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
36702 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
36705 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
36706 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
36709 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
36710 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
36713 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
36714 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
36717 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
36718 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
36721 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
36722 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
36725 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
36726 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
36729 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
36730 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
36733 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
36734 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
36737 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
36738 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
36741 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
36742 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
36745 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
36746 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
36749 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
36750 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
36753 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
36754 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
36757 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
36758 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
36761 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
36762 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
36765 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
36766 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
36769 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
36770 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
36773 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
36774 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
36777 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
36778 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
36781 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
36782 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
36785 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
36786 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
36789 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
36790 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
36793 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
36794 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
36797 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
36798 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
36801 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
36802 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
36805 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
36806 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
36809 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
36810 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
36813 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
36814 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
36817 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
36818 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
36821 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
36822 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
36825 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
36826 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
36829 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
36830 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
36833 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
36834 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
36837 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
36838 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
36841 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
36842 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
36845 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
36846 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
36849 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
36850 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
36853 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
36854 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
36857 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
36858 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
36861 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
36862 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
36865 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
36866 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
36869 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
36870 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
36873 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
36874 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
36877 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
36878 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
36881 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
36882 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
36885 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
36886 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
36889 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
36890 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
36893 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
36894 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
36897 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
36898 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
36901 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
36902 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
36905 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
36906 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
36909 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
36910 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
36913 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
36914 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
36917 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
36918 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
36921 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
36922 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
36925 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
36926 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
36929 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
36930 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
36933 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
36934 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
36937 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
36938 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
36941 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
36942 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
36945 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
36946 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
36949 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
36950 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
36953 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
36954 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
36957 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
36958 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
36961 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
36962 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
36965 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
36966 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
36969 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
36970 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
36973 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
36974 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
36977 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
36978 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
36981 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
36982 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
36985 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
36986 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
36992 },{}],
54:[function(require,module,exports){
36995 var utils = exports;
36996 var BN = require('bn.js');
36998 utils.assert = function assert(val, msg) {
37000 throw new Error(msg || 'Assertion failed');
37003 function toArray(msg, enc) {
37004 if (Array.isArray(msg))
37005 return msg.slice();
37009 if (typeof msg !== 'string') {
37010 for (var i =
0; i < msg.length; i++)
37011 res[i] = msg[i] |
0;
37015 for (var i =
0; i < msg.length; i++) {
37016 var c = msg.charCodeAt(i);
37024 } else if (enc === 'hex') {
37025 msg = msg.replace(/[^a-z0-
9]+/ig, '');
37026 if (msg.length %
2 !==
0)
37028 for (var i =
0; i < msg.length; i +=
2)
37029 res.push(parseInt(msg[i] + msg[i +
1],
16));
37033 utils.toArray = toArray;
37035 function zero2(word) {
37036 if (word.length ===
1)
37041 utils.zero2 = zero2;
37043 function toHex(msg) {
37045 for (var i =
0; i < msg.length; i++)
37046 res += zero2(msg[i].toString(
16));
37049 utils.toHex = toHex;
37051 utils.encode = function encode(arr, enc) {
37058 // Represent num in a w-NAF form
37059 function getNAF(num, w) {
37061 var ws =
1 << (w +
1);
37062 var k = num.clone();
37063 while (k.cmpn(
1)
>=
0) {
37066 var mod = k.andln(ws -
1);
37067 if (mod
> (ws
>> 1) -
1)
37068 z = (ws
>> 1) - mod;
37077 // Optimization, shift by word if possible
37078 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
37079 for (var i =
1; i < shift; i++)
37086 utils.getNAF = getNAF;
37088 // Represent k1, k2 in a Joint Sparse Form
37089 function getJSF(k1, k2) {
37099 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
37102 var m14 = (k1.andln(
3) + d1) &
3;
37103 var m24 = (k2.andln(
3) + d2) &
3;
37109 if ((m14 &
1) ===
0) {
37112 var m8 = (k1.andln(
7) + d1) &
7;
37113 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
37121 if ((m24 &
1) ===
0) {
37124 var m8 = (k2.andln(
7) + d2) &
7;
37125 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
37133 if (
2 * d1 === u1 +
1)
37135 if (
2 * d2 === u2 +
1)
37143 utils.getJSF = getJSF;
37145 function cachedProperty(obj, name, computer) {
37146 var key = '_' + name;
37147 obj.prototype[name] = function cachedProperty() {
37148 return this[key] !== undefined ? this[key] :
37149 this[key] = computer.call(this);
37152 utils.cachedProperty = cachedProperty;
37154 function parseBytes(bytes) {
37155 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
37158 utils.parseBytes = parseBytes;
37160 function intFromLE(bytes) {
37161 return new BN(bytes, 'hex', 'le');
37163 utils.intFromLE = intFromLE;
37166 },{
"bn.js":
33}],
55:[function(require,module,exports){
37171 "raw":
"elliptic@^6.2.3",
37173 "escapedName":
"elliptic",
37174 "name":
"elliptic",
37175 "rawSpec":
"^6.2.3",
37176 "spec":
">=6.2.3 <7.0.0",
37179 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
37182 "_from":
"elliptic@>=6.2.3 <7.0.0",
37183 "_id":
"elliptic@6.3.3",
37185 "_location":
"/elliptic",
37186 "_nodeVersion":
"7.0.0",
37187 "_npmOperationalInternal": {
37188 "host":
"packages-18-east.internal.npmjs.com",
37189 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
37193 "email":
"fedor@indutny.com"
37195 "_npmVersion":
"3.10.8",
37196 "_phantomChildren": {},
37198 "raw":
"elliptic@^6.2.3",
37200 "escapedName":
"elliptic",
37201 "name":
"elliptic",
37202 "rawSpec":
"^6.2.3",
37203 "spec":
">=6.2.3 <7.0.0",
37207 "/browserify-sign",
37211 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
37212 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37213 "_shrinkwrap": null,
37214 "_spec":
"elliptic@^6.2.3",
37215 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
37217 "name":
"Fedor Indutny",
37218 "email":
"fedor@indutny.com"
37221 "url":
"https://github.com/indutny/elliptic/issues"
37225 "brorand":
"^1.0.1",
37226 "hash.js":
"^1.0.0",
37227 "inherits":
"^2.0.1"
37229 "description":
"EC cryptography",
37230 "devDependencies": {
37232 "coveralls":
"^2.11.3",
37234 "grunt-browserify":
"^5.0.0",
37235 "grunt-cli":
"^1.2.0",
37236 "grunt-contrib-connect":
"^1.0.0",
37237 "grunt-contrib-copy":
"^1.0.0",
37238 "grunt-contrib-uglify":
"^1.0.1",
37239 "grunt-mocha-istanbul":
"^3.0.1",
37240 "grunt-saucelabs":
"^8.6.2",
37241 "istanbul":
"^0.4.2",
37243 "jshint":
"^2.6.0",
37248 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37249 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
37254 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
37255 "homepage":
"https://github.com/indutny/elliptic",
37263 "main":
"lib/elliptic.js",
37267 "email":
"fedor@indutny.com"
37270 "name":
"elliptic",
37271 "optionalDependencies": {},
37272 "readme":
"ERROR: No README data found!",
37275 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
37278 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37279 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37280 "lint":
"npm run jscs && npm run jshint",
37281 "test":
"npm run lint && npm run unit",
37282 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
37283 "version":
"grunt dist && git add dist/"
37288 },{}],
56:[function(require,module,exports){
37289 (function (Buffer){
37292 var isHexPrefixed = require('is-hex-prefixed');
37293 var stripHexPrefix = require('strip-hex-prefix');
37296 * Pads a `String` to have an even length
37297 * @param {String} value
37298 * @return {String} output
37300 function padToEven(value) {
37301 var a = value; // eslint-disable-line
37303 if (typeof a !== 'string') {
37304 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
37307 if (a.length %
2) {
37315 * Converts a `Number` into a hex `String`
37316 * @param {Number} i
37319 function intToHex(i) {
37320 var hex = i.toString(
16); // eslint-disable-line
37322 return '
0x' + padToEven(hex);
37326 * Converts an `Number` to a `Buffer`
37327 * @param {Number} i
37330 function intToBuffer(i) {
37331 var hex = intToHex(i);
37333 return new Buffer(hex.slice(
2), 'hex');
37337 * Get the binary size of a string
37338 * @param {String} str
37341 function getBinarySize(str) {
37342 if (typeof str !== 'string') {
37343 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
37346 return Buffer.byteLength(str, 'utf8');
37350 * Returns TRUE if the first specified array contains all elements
37351 * from the second one. FALSE otherwise.
37353 * @param {array} superset
37354 * @param {array} subset
37356 * @returns {boolean}
37358 function arrayContainsArray(superset, subset, some) {
37359 if (Array.isArray(superset) !== true) {
37360 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
37362 if (Array.isArray(subset) !== true) {
37363 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
37366 return subset[Boolean(some) && 'some' || 'every'](function (value) {
37367 return superset.indexOf(value)
>=
0;
37372 * Should be called to get utf8 from it's hex representation
37375 * @param {String} string in hex
37376 * @returns {String} ascii string representation of hex value
37378 function toUtf8(hex) {
37379 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
37381 return bufferValue.toString('utf8');
37385 * Should be called to get ascii from it's hex representation
37388 * @param {String} string in hex
37389 * @returns {String} ascii string representation of hex value
37391 function toAscii(hex) {
37392 var str = ''; // eslint-disable-line
37394 l = hex.length; // eslint-disable-line
37396 if (hex.substring(
0,
2) === '
0x') {
37400 for (; i < l; i +=
2) {
37401 var code = parseInt(hex.substr(i,
2),
16);
37402 str += String.fromCharCode(code);
37409 * Should be called to get hex representation (prefixed by
0x) of utf8 string
37412 * @param {String} string
37413 * @param {Number} optional padding
37414 * @returns {String} hex representation of input string
37416 function fromUtf8(stringValue) {
37417 var str = new Buffer(stringValue, 'utf8');
37419 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
37423 * Should be called to get hex representation (prefixed by
0x) of ascii string
37425 * @method fromAscii
37426 * @param {String} string
37427 * @param {Number} optional padding
37428 * @returns {String} hex representation of input string
37430 function fromAscii(stringValue) {
37431 var hex = ''; // eslint-disable-line
37432 for (var i =
0; i < stringValue.length; i++) {
37433 // eslint-disable-line
37434 var code = stringValue.charCodeAt(i);
37435 var n = code.toString(
16);
37436 hex += n.length <
2 ? '
0' + n : n;
37443 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
37445 * @method getKeys get specific key from inner object array of objects
37446 * @param {String} params
37447 * @param {String} key
37448 * @param {Boolean} allowEmpty
37449 * @returns {Array} output just a simple array of output keys
37451 function getKeys(params, key, allowEmpty) {
37452 if (!Array.isArray(params)) {
37453 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
37455 if (typeof key !== 'string') {
37456 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
37459 var result = []; // eslint-disable-line
37461 for (var i =
0; i < params.length; i++) {
37462 // eslint-disable-line
37463 var value = params[i][key]; // eslint-disable-line
37464 if (allowEmpty && !value) {
37466 } else if (typeof value !== 'string') {
37467 throw new Error('invalid abi');
37469 result.push(value);
37476 * Is the string a hex string.
37478 * @method check if string is hex string of specific length
37479 * @param {String} value
37480 * @param {Number} length
37481 * @returns {Boolean} output the string is a hex string
37483 function isHexString(value, length) {
37484 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
37488 if (length && value.length !==
2 +
2 * length) {
37496 arrayContainsArray: arrayContainsArray,
37497 intToBuffer: intToBuffer,
37498 getBinarySize: getBinarySize,
37499 isHexPrefixed: isHexPrefixed,
37500 stripHexPrefix: stripHexPrefix,
37501 padToEven: padToEven,
37502 intToHex: intToHex,
37503 fromAscii: fromAscii,
37504 fromUtf8: fromUtf8,
37508 isHexString: isHexString
37510 }).call(this,require("buffer").Buffer)
37511 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
37512 var hash = exports;
37514 hash.utils = require('./hash/utils');
37515 hash.common = require('./hash/common');
37516 hash.sha = require('./hash/sha');
37517 hash.ripemd = require('./hash/ripemd');
37518 hash.hmac = require('./hash/hmac');
37520 // Proxy hash functions to the main object
37521 hash.sha1 = hash.sha.sha1;
37522 hash.sha256 = hash.sha.sha256;
37523 hash.sha224 = hash.sha.sha224;
37524 hash.sha384 = hash.sha.sha384;
37525 hash.sha512 = hash.sha.sha512;
37526 hash.ripemd160 = hash.ripemd.ripemd160;
37528 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
37529 var hash = require('../hash');
37530 var utils = hash.utils;
37531 var assert = utils.assert;
37533 function BlockHash() {
37534 this.pending = null;
37535 this.pendingTotal =
0;
37536 this.blockSize = this.constructor.blockSize;
37537 this.outSize = this.constructor.outSize;
37538 this.hmacStrength = this.constructor.hmacStrength;
37539 this.padLength = this.constructor.padLength /
8;
37540 this.endian = 'big';
37542 this._delta8 = this.blockSize /
8;
37543 this._delta32 = this.blockSize /
32;
37545 exports.BlockHash = BlockHash;
37547 BlockHash.prototype.update = function update(msg, enc) {
37548 // Convert message to array, pad it, and join into
32bit blocks
37549 msg = utils.toArray(msg, enc);
37551 this.pending = msg;
37553 this.pending = this.pending.concat(msg);
37554 this.pendingTotal += msg.length;
37556 // Enough data, try updating
37557 if (this.pending.length
>= this._delta8) {
37558 msg = this.pending;
37560 // Process pending data in blocks
37561 var r = msg.length % this._delta8;
37562 this.pending = msg.slice(msg.length - r, msg.length);
37563 if (this.pending.length ===
0)
37564 this.pending = null;
37566 msg = utils.join32(msg,
0, msg.length - r, this.endian);
37567 for (var i =
0; i < msg.length; i += this._delta32)
37568 this._update(msg, i, i + this._delta32);
37574 BlockHash.prototype.digest = function digest(enc) {
37575 this.update(this._pad());
37576 assert(this.pending === null);
37578 return this._digest(enc);
37581 BlockHash.prototype._pad = function pad() {
37582 var len = this.pendingTotal;
37583 var bytes = this._delta8;
37584 var k = bytes - ((len + this.padLength) % bytes);
37585 var res = new Array(k + this.padLength);
37587 for (var i =
1; i < k; i++)
37592 if (this.endian === 'big') {
37593 for (var t =
8; t < this.padLength; t++)
37600 res[i++] = (len
>>> 24) &
0xff;
37601 res[i++] = (len
>>> 16) &
0xff;
37602 res[i++] = (len
>>> 8) &
0xff;
37603 res[i++] = len &
0xff;
37605 res[i++] = len &
0xff;
37606 res[i++] = (len
>>> 8) &
0xff;
37607 res[i++] = (len
>>> 16) &
0xff;
37608 res[i++] = (len
>>> 24) &
0xff;
37614 for (var t =
8; t < this.padLength; t++)
37621 },{
"../hash":
57}],
59:[function(require,module,exports){
37622 var hmac = exports;
37624 var hash = require('../hash');
37625 var utils = hash.utils;
37626 var assert = utils.assert;
37628 function Hmac(hash, key, enc) {
37629 if (!(this instanceof Hmac))
37630 return new Hmac(hash, key, enc);
37632 this.blockSize = hash.blockSize /
8;
37633 this.outSize = hash.outSize /
8;
37637 this._init(utils.toArray(key, enc));
37639 module.exports = Hmac;
37641 Hmac.prototype._init = function init(key) {
37642 // Shorten key, if needed
37643 if (key.length
> this.blockSize)
37644 key = new this.Hash().update(key).digest();
37645 assert(key.length <= this.blockSize);
37647 // Add padding to key
37648 for (var i = key.length; i < this.blockSize; i++)
37651 for (var i =
0; i < key.length; i++)
37653 this.inner = new this.Hash().update(key);
37655 //
0x36 ^
0x5c =
0x6a
37656 for (var i =
0; i < key.length; i++)
37658 this.outer = new this.Hash().update(key);
37661 Hmac.prototype.update = function update(msg, enc) {
37662 this.inner.update(msg, enc);
37666 Hmac.prototype.digest = function digest(enc) {
37667 this.outer.update(this.inner.digest());
37668 return this.outer.digest(enc);
37671 },{"../hash":
57}],
60:[function(require,module,exports){
37672 var hash = require('../hash');
37673 var utils = hash.utils;
37675 var rotl32 = utils.rotl32;
37676 var sum32 = utils.sum32;
37677 var sum32_3 = utils.sum32_3;
37678 var sum32_4 = utils.sum32_4;
37679 var BlockHash = hash.common.BlockHash;
37681 function RIPEMD160() {
37682 if (!(this instanceof RIPEMD160))
37683 return new RIPEMD160();
37685 BlockHash.call(this);
37687 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
37688 this.endian = 'little';
37690 utils.inherits(RIPEMD160, BlockHash);
37691 exports.ripemd160 = RIPEMD160;
37693 RIPEMD160.blockSize =
512;
37694 RIPEMD160.outSize =
160;
37695 RIPEMD160.hmacStrength =
192;
37696 RIPEMD160.padLength =
64;
37698 RIPEMD160.prototype._update = function update(msg, start) {
37709 for (var j =
0; j <
80; j++) {
37712 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
37722 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
37727 Dh = rotl32(Ch,
10);
37731 T = sum32_3(this.h[
1], C, Dh);
37732 this.h[
1] = sum32_3(this.h[
2], D, Eh);
37733 this.h[
2] = sum32_3(this.h[
3], E, Ah);
37734 this.h[
3] = sum32_3(this.h[
4], A, Bh);
37735 this.h[
4] = sum32_3(this.h[
0], B, Ch);
37739 RIPEMD160.prototype._digest = function digest(enc) {
37741 return utils.toHex32(this.h, 'little');
37743 return utils.split32(this.h, 'little');
37746 function f(j, x, y, z) {
37750 return (x & y) | ((~x) & z);
37752 return (x | (~y)) ^ z;
37754 return (x & z) | (y & (~z));
37756 return x ^ (y | (~z));
37786 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
37787 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
37788 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
37789 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
37790 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
37794 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
37795 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
37796 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
37797 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
37798 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
37802 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
37803 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
37804 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
37805 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
37806 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
37810 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
37811 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
37812 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
37813 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
37814 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
37817 },{"../hash":
57}],
61:[function(require,module,exports){
37818 var hash = require('../hash');
37819 var utils = hash.utils;
37820 var assert = utils.assert;
37822 var rotr32 = utils.rotr32;
37823 var rotl32 = utils.rotl32;
37824 var sum32 = utils.sum32;
37825 var sum32_4 = utils.sum32_4;
37826 var sum32_5 = utils.sum32_5;
37827 var rotr64_hi = utils.rotr64_hi;
37828 var rotr64_lo = utils.rotr64_lo;
37829 var shr64_hi = utils.shr64_hi;
37830 var shr64_lo = utils.shr64_lo;
37831 var sum64 = utils.sum64;
37832 var sum64_hi = utils.sum64_hi;
37833 var sum64_lo = utils.sum64_lo;
37834 var sum64_4_hi = utils.sum64_4_hi;
37835 var sum64_4_lo = utils.sum64_4_lo;
37836 var sum64_5_hi = utils.sum64_5_hi;
37837 var sum64_5_lo = utils.sum64_5_lo;
37838 var BlockHash = hash.common.BlockHash;
37841 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
37842 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37843 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
37844 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37845 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
37846 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37847 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
37848 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37849 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
37850 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37851 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
37852 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37853 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
37854 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37855 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
37856 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
37860 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
37861 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
37862 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
37863 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
37864 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
37865 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
37866 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
37867 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
37868 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
37869 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
37870 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
37871 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
37872 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
37873 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
37874 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
37875 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
37876 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
37877 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
37878 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
37879 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
37880 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
37881 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
37882 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
37883 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
37884 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
37885 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
37886 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
37887 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
37888 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
37889 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
37890 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
37891 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
37892 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
37893 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
37894 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
37895 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
37896 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
37897 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
37898 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
37899 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
37903 0x5A827999,
0x6ED9EBA1,
37904 0x8F1BBCDC,
0xCA62C1D6
37907 function SHA256() {
37908 if (!(this instanceof SHA256))
37909 return new SHA256();
37911 BlockHash.call(this);
37912 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
37913 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
37915 this.W = new Array(
64);
37917 utils.inherits(SHA256, BlockHash);
37918 exports.sha256 = SHA256;
37920 SHA256.blockSize =
512;
37921 SHA256.outSize =
256;
37922 SHA256.hmacStrength =
192;
37923 SHA256.padLength =
64;
37925 SHA256.prototype._update = function _update(msg, start) {
37928 for (var i =
0; i <
16; i++)
37929 W[i] = msg[start + i];
37930 for (; i < W.length; i++)
37931 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
37942 assert(this.k.length === W.length);
37943 for (var i =
0; i < W.length; i++) {
37944 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
37945 var T2 = sum32(s0_256(a), maj32(a, b, c));
37956 this.h[
0] = sum32(this.h[
0], a);
37957 this.h[
1] = sum32(this.h[
1], b);
37958 this.h[
2] = sum32(this.h[
2], c);
37959 this.h[
3] = sum32(this.h[
3], d);
37960 this.h[
4] = sum32(this.h[
4], e);
37961 this.h[
5] = sum32(this.h[
5], f);
37962 this.h[
6] = sum32(this.h[
6], g);
37963 this.h[
7] = sum32(this.h[
7], h);
37966 SHA256.prototype._digest = function digest(enc) {
37968 return utils.toHex32(this.h, 'big');
37970 return utils.split32(this.h, 'big');
37973 function SHA224() {
37974 if (!(this instanceof SHA224))
37975 return new SHA224();
37978 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
37979 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
37981 utils.inherits(SHA224, SHA256);
37982 exports.sha224 = SHA224;
37984 SHA224.blockSize =
512;
37985 SHA224.outSize =
224;
37986 SHA224.hmacStrength =
192;
37987 SHA224.padLength =
64;
37989 SHA224.prototype._digest = function digest(enc) {
37990 // Just truncate output
37992 return utils.toHex32(this.h.slice(
0,
7), 'big');
37994 return utils.split32(this.h.slice(
0,
7), 'big');
37997 function SHA512() {
37998 if (!(this instanceof SHA512))
37999 return new SHA512();
38001 BlockHash.call(this);
38002 this.h = [
0x6a09e667,
0xf3bcc908,
38003 0xbb67ae85,
0x84caa73b,
38004 0x3c6ef372,
0xfe94f82b,
38005 0xa54ff53a,
0x5f1d36f1,
38006 0x510e527f,
0xade682d1,
38007 0x9b05688c,
0x2b3e6c1f,
38008 0x1f83d9ab,
0xfb41bd6b,
38009 0x5be0cd19,
0x137e2179 ];
38011 this.W = new Array(
160);
38013 utils.inherits(SHA512, BlockHash);
38014 exports.sha512 = SHA512;
38016 SHA512.blockSize =
1024;
38017 SHA512.outSize =
512;
38018 SHA512.hmacStrength =
192;
38019 SHA512.padLength =
128;
38021 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
38024 //
32 x
32bit words
38025 for (var i =
0; i <
32; i++)
38026 W[i] = msg[start + i];
38027 for (; i < W.length; i +=
2) {
38028 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
38029 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
38030 var c1_hi = W[i -
14]; // i -
7
38031 var c1_lo = W[i -
13];
38032 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
38033 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
38034 var c3_hi = W[i -
32]; // i -
16
38035 var c3_lo = W[i -
31];
38037 W[i] = sum64_4_hi(c0_hi, c0_lo,
38041 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
38048 SHA512.prototype._update = function _update(msg, start) {
38049 this._prepareBlock(msg, start);
38053 var ah = this.h[
0];
38054 var al = this.h[
1];
38055 var bh = this.h[
2];
38056 var bl = this.h[
3];
38057 var ch = this.h[
4];
38058 var cl = this.h[
5];
38059 var dh = this.h[
6];
38060 var dl = this.h[
7];
38061 var eh = this.h[
8];
38062 var el = this.h[
9];
38063 var fh = this.h[
10];
38064 var fl = this.h[
11];
38065 var gh = this.h[
12];
38066 var gl = this.h[
13];
38067 var hh = this.h[
14];
38068 var hl = this.h[
15];
38070 assert(this.k.length === W.length);
38071 for (var i =
0; i < W.length; i +=
2) {
38074 var c1_hi = s1_512_hi(eh, el);
38075 var c1_lo = s1_512_lo(eh, el);
38076 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
38077 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
38078 var c3_hi = this.k[i];
38079 var c3_lo = this.k[i +
1];
38081 var c4_lo = W[i +
1];
38083 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
38088 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
38094 var c0_hi = s0_512_hi(ah, al);
38095 var c0_lo = s0_512_lo(ah, al);
38096 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
38097 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
38099 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
38100 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
38111 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
38112 el = sum64_lo(dl, dl, T1_hi, T1_lo);
38123 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
38124 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
38127 sum64(this.h,
0, ah, al);
38128 sum64(this.h,
2, bh, bl);
38129 sum64(this.h,
4, ch, cl);
38130 sum64(this.h,
6, dh, dl);
38131 sum64(this.h,
8, eh, el);
38132 sum64(this.h,
10, fh, fl);
38133 sum64(this.h,
12, gh, gl);
38134 sum64(this.h,
14, hh, hl);
38137 SHA512.prototype._digest = function digest(enc) {
38139 return utils.toHex32(this.h, 'big');
38141 return utils.split32(this.h, 'big');
38144 function SHA384() {
38145 if (!(this instanceof SHA384))
38146 return new SHA384();
38149 this.h = [
0xcbbb9d5d,
0xc1059ed8,
38150 0x629a292a,
0x367cd507,
38151 0x9159015a,
0x3070dd17,
38152 0x152fecd8,
0xf70e5939,
38153 0x67332667,
0xffc00b31,
38154 0x8eb44a87,
0x68581511,
38155 0xdb0c2e0d,
0x64f98fa7,
38156 0x47b5481d,
0xbefa4fa4 ];
38158 utils.inherits(SHA384, SHA512);
38159 exports.sha384 = SHA384;
38161 SHA384.blockSize =
1024;
38162 SHA384.outSize =
384;
38163 SHA384.hmacStrength =
192;
38164 SHA384.padLength =
128;
38166 SHA384.prototype._digest = function digest(enc) {
38168 return utils.toHex32(this.h.slice(
0,
12), 'big');
38170 return utils.split32(this.h.slice(
0,
12), 'big');
38174 if (!(this instanceof SHA1))
38177 BlockHash.call(this);
38178 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
38179 0x10325476,
0xc3d2e1f0 ];
38180 this.W = new Array(
80);
38183 utils.inherits(SHA1, BlockHash);
38184 exports.sha1 = SHA1;
38186 SHA1.blockSize =
512;
38187 SHA1.outSize =
160;
38188 SHA1.hmacStrength =
80;
38189 SHA1.padLength =
64;
38191 SHA1.prototype._update = function _update(msg, start) {
38194 for (var i =
0; i <
16; i++)
38195 W[i] = msg[start + i];
38197 for(; i < W.length; i++)
38198 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
38206 for (var i =
0; i < W.length; i++) {
38207 var s = ~~(i /
20);
38208 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
38216 this.h[
0] = sum32(this.h[
0], a);
38217 this.h[
1] = sum32(this.h[
1], b);
38218 this.h[
2] = sum32(this.h[
2], c);
38219 this.h[
3] = sum32(this.h[
3], d);
38220 this.h[
4] = sum32(this.h[
4], e);
38223 SHA1.prototype._digest = function digest(enc) {
38225 return utils.toHex32(this.h, 'big');
38227 return utils.split32(this.h, 'big');
38230 function ch32(x, y, z) {
38231 return (x & y) ^ ((~x) & z);
38234 function maj32(x, y, z) {
38235 return (x & y) ^ (x & z) ^ (y & z);
38238 function p32(x, y, z) {
38242 function s0_256(x) {
38243 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
38246 function s1_256(x) {
38247 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
38250 function g0_256(x) {
38251 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
38254 function g1_256(x) {
38255 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
38258 function ft_1(s, x, y, z) {
38260 return ch32(x, y, z);
38261 if (s ===
1 || s ===
3)
38262 return p32(x, y, z);
38264 return maj32(x, y, z);
38267 function ch64_hi(xh, xl, yh, yl, zh, zl) {
38268 var r = (xh & yh) ^ ((~xh) & zh);
38274 function ch64_lo(xh, xl, yh, yl, zh, zl) {
38275 var r = (xl & yl) ^ ((~xl) & zl);
38281 function maj64_hi(xh, xl, yh, yl, zh, zl) {
38282 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
38288 function maj64_lo(xh, xl, yh, yl, zh, zl) {
38289 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
38295 function s0_512_hi(xh, xl) {
38296 var c0_hi = rotr64_hi(xh, xl,
28);
38297 var c1_hi = rotr64_hi(xl, xh,
2); //
34
38298 var c2_hi = rotr64_hi(xl, xh,
7); //
39
38300 var r = c0_hi ^ c1_hi ^ c2_hi;
38306 function s0_512_lo(xh, xl) {
38307 var c0_lo = rotr64_lo(xh, xl,
28);
38308 var c1_lo = rotr64_lo(xl, xh,
2); //
34
38309 var c2_lo = rotr64_lo(xl, xh,
7); //
39
38311 var r = c0_lo ^ c1_lo ^ c2_lo;
38317 function s1_512_hi(xh, xl) {
38318 var c0_hi = rotr64_hi(xh, xl,
14);
38319 var c1_hi = rotr64_hi(xh, xl,
18);
38320 var c2_hi = rotr64_hi(xl, xh,
9); //
41
38322 var r = c0_hi ^ c1_hi ^ c2_hi;
38328 function s1_512_lo(xh, xl) {
38329 var c0_lo = rotr64_lo(xh, xl,
14);
38330 var c1_lo = rotr64_lo(xh, xl,
18);
38331 var c2_lo = rotr64_lo(xl, xh,
9); //
41
38333 var r = c0_lo ^ c1_lo ^ c2_lo;
38339 function g0_512_hi(xh, xl) {
38340 var c0_hi = rotr64_hi(xh, xl,
1);
38341 var c1_hi = rotr64_hi(xh, xl,
8);
38342 var c2_hi = shr64_hi(xh, xl,
7);
38344 var r = c0_hi ^ c1_hi ^ c2_hi;
38350 function g0_512_lo(xh, xl) {
38351 var c0_lo = rotr64_lo(xh, xl,
1);
38352 var c1_lo = rotr64_lo(xh, xl,
8);
38353 var c2_lo = shr64_lo(xh, xl,
7);
38355 var r = c0_lo ^ c1_lo ^ c2_lo;
38361 function g1_512_hi(xh, xl) {
38362 var c0_hi = rotr64_hi(xh, xl,
19);
38363 var c1_hi = rotr64_hi(xl, xh,
29); //
61
38364 var c2_hi = shr64_hi(xh, xl,
6);
38366 var r = c0_hi ^ c1_hi ^ c2_hi;
38372 function g1_512_lo(xh, xl) {
38373 var c0_lo = rotr64_lo(xh, xl,
19);
38374 var c1_lo = rotr64_lo(xl, xh,
29); //
61
38375 var c2_lo = shr64_lo(xh, xl,
6);
38377 var r = c0_lo ^ c1_lo ^ c2_lo;
38383 },{
"../hash":
57}],
62:[function(require,module,exports){
38384 var utils = exports;
38385 var inherits = require('inherits');
38387 function toArray(msg, enc) {
38388 if (Array.isArray(msg))
38389 return msg.slice();
38393 if (typeof msg === 'string') {
38395 for (var i =
0; i < msg.length; i++) {
38396 var c = msg.charCodeAt(i);
38404 } else if (enc === 'hex') {
38405 msg = msg.replace(/[^a-z0-
9]+/ig, '');
38406 if (msg.length %
2 !==
0)
38408 for (var i =
0; i < msg.length; i +=
2)
38409 res.push(parseInt(msg[i] + msg[i +
1],
16));
38412 for (var i =
0; i < msg.length; i++)
38413 res[i] = msg[i] |
0;
38417 utils.toArray = toArray;
38419 function toHex(msg) {
38421 for (var i =
0; i < msg.length; i++)
38422 res += zero2(msg[i].toString(
16));
38425 utils.toHex = toHex;
38427 function htonl(w) {
38428 var res = (w
>>> 24) |
38429 ((w
>>> 8) &
0xff00) |
38430 ((w <<
8) &
0xff0000) |
38431 ((w &
0xff) <<
24);
38434 utils.htonl = htonl;
38436 function toHex32(msg, endian) {
38438 for (var i =
0; i < msg.length; i++) {
38440 if (endian === 'little')
38442 res += zero8(w.toString(
16));
38446 utils.toHex32 = toHex32;
38448 function zero2(word) {
38449 if (word.length ===
1)
38454 utils.zero2 = zero2;
38456 function zero8(word) {
38457 if (word.length ===
7)
38459 else if (word.length ===
6)
38460 return '
00' + word;
38461 else if (word.length ===
5)
38462 return '
000' + word;
38463 else if (word.length ===
4)
38464 return '
0000' + word;
38465 else if (word.length ===
3)
38466 return '
00000' + word;
38467 else if (word.length ===
2)
38468 return '
000000' + word;
38469 else if (word.length ===
1)
38470 return '
0000000' + word;
38474 utils.zero8 = zero8;
38476 function join32(msg, start, end, endian) {
38477 var len = end - start;
38478 assert(len %
4 ===
0);
38479 var res = new Array(len /
4);
38480 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
38482 if (endian === 'big')
38483 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
38485 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
38490 utils.join32 = join32;
38492 function split32(msg, endian) {
38493 var res = new Array(msg.length *
4);
38494 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
38496 if (endian === 'big') {
38498 res[k +
1] = (m
>>> 16) &
0xff;
38499 res[k +
2] = (m
>>> 8) &
0xff;
38500 res[k +
3] = m &
0xff;
38502 res[k +
3] = m
>>> 24;
38503 res[k +
2] = (m
>>> 16) &
0xff;
38504 res[k +
1] = (m
>>> 8) &
0xff;
38510 utils.split32 = split32;
38512 function rotr32(w, b) {
38513 return (w
>>> b) | (w << (
32 - b));
38515 utils.rotr32 = rotr32;
38517 function rotl32(w, b) {
38518 return (w << b) | (w
>>> (
32 - b));
38520 utils.rotl32 = rotl32;
38522 function sum32(a, b) {
38523 return (a + b)
>>> 0;
38525 utils.sum32 = sum32;
38527 function sum32_3(a, b, c) {
38528 return (a + b + c)
>>> 0;
38530 utils.sum32_3 = sum32_3;
38532 function sum32_4(a, b, c, d) {
38533 return (a + b + c + d)
>>> 0;
38535 utils.sum32_4 = sum32_4;
38537 function sum32_5(a, b, c, d, e) {
38538 return (a + b + c + d + e)
>>> 0;
38540 utils.sum32_5 = sum32_5;
38542 function assert(cond, msg) {
38544 throw new Error(msg || 'Assertion failed');
38546 utils.assert = assert;
38548 utils.inherits = inherits;
38550 function sum64(buf, pos, ah, al) {
38552 var bl = buf[pos +
1];
38554 var lo = (al + bl)
>>> 0;
38555 var hi = (lo < al ?
1 :
0) + ah + bh;
38556 buf[pos] = hi
>>> 0;
38559 exports.sum64 = sum64;
38561 function sum64_hi(ah, al, bh, bl) {
38562 var lo = (al + bl)
>>> 0;
38563 var hi = (lo < al ?
1 :
0) + ah + bh;
38566 exports.sum64_hi = sum64_hi;
38568 function sum64_lo(ah, al, bh, bl) {
38572 exports.sum64_lo = sum64_lo;
38574 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
38577 lo = (lo + bl)
>>> 0;
38578 carry += lo < al ?
1 :
0;
38579 lo = (lo + cl)
>>> 0;
38580 carry += lo < cl ?
1 :
0;
38581 lo = (lo + dl)
>>> 0;
38582 carry += lo < dl ?
1 :
0;
38584 var hi = ah + bh + ch + dh + carry;
38587 exports.sum64_4_hi = sum64_4_hi;
38589 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
38590 var lo = al + bl + cl + dl;
38593 exports.sum64_4_lo = sum64_4_lo;
38595 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38598 lo = (lo + bl)
>>> 0;
38599 carry += lo < al ?
1 :
0;
38600 lo = (lo + cl)
>>> 0;
38601 carry += lo < cl ?
1 :
0;
38602 lo = (lo + dl)
>>> 0;
38603 carry += lo < dl ?
1 :
0;
38604 lo = (lo + el)
>>> 0;
38605 carry += lo < el ?
1 :
0;
38607 var hi = ah + bh + ch + dh + eh + carry;
38610 exports.sum64_5_hi = sum64_5_hi;
38612 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38613 var lo = al + bl + cl + dl + el;
38617 exports.sum64_5_lo = sum64_5_lo;
38619 function rotr64_hi(ah, al, num) {
38620 var r = (al << (
32 - num)) | (ah
>>> num);
38623 exports.rotr64_hi = rotr64_hi;
38625 function rotr64_lo(ah, al, num) {
38626 var r = (ah << (
32 - num)) | (al
>>> num);
38629 exports.rotr64_lo = rotr64_lo;
38631 function shr64_hi(ah, al, num) {
38634 exports.shr64_hi = shr64_hi;
38636 function shr64_lo(ah, al, num) {
38637 var r = (ah << (
32 - num)) | (al
>>> num);
38640 exports.shr64_lo = shr64_lo;
38642 },{
"inherits":
63}],
63:[function(require,module,exports){
38643 arguments[
4][
9][
0].apply(exports,arguments)
38644 },{
"dup":
9}],
64:[function(require,module,exports){
38646 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
38647 * @param {String} str the string input value
38648 * @return {Boolean} a boolean if it is or is not hex prefixed
38649 * @throws if the str input is not a string
38651 module.exports = function isHexPrefixed(str) {
38652 if (typeof str !== 'string') {
38653 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
38656 return str.slice(
0,
2) === '
0x';
38659 },{}],
65:[function(require,module,exports){
38661 module.exports = require('./lib/api')(require('./lib/keccak'))
38663 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
38665 var createKeccak = require('./keccak')
38666 var createShake = require('./shake')
38668 module.exports = function (KeccakState) {
38669 var Keccak = createKeccak(KeccakState)
38670 var Shake = createShake(KeccakState)
38672 return function (algorithm, options) {
38673 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
38675 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
38676 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
38677 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
38678 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
38680 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
38681 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
38682 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
38683 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
38685 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
38686 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
38688 default: throw new Error('Invald algorithm: ' + algorithm)
38693 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
38694 (function (Buffer){
38696 var Transform = require('stream').Transform
38697 var inherits = require('inherits')
38699 module.exports = function (KeccakState) {
38700 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
38701 Transform.call(this, options)
38704 this._capacity = capacity
38705 this._delimitedSuffix = delimitedSuffix
38706 this._hashBitLength = hashBitLength
38707 this._options = options
38709 this._state = new KeccakState()
38710 this._state.initialize(rate, capacity)
38711 this._finalized = false
38714 inherits(Keccak, Transform)
38716 Keccak.prototype._transform = function (chunk, encoding, callback) {
38719 this.update(chunk, encoding)
38727 Keccak.prototype._flush = function (callback) {
38730 this.push(this.digest())
38738 Keccak.prototype.update = function (data, encoding) {
38739 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38740 if (this._finalized) throw new Error('Digest already called')
38741 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38743 this._state.absorb(data)
38748 Keccak.prototype.digest = function (encoding) {
38749 if (this._finalized) throw new Error('Digest already called')
38750 this._finalized = true
38752 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
38753 var digest = this._state.squeeze(this._hashBitLength /
8)
38754 if (encoding !== undefined) digest = digest.toString(encoding)
38761 // remove result from memory
38762 Keccak.prototype._resetState = function () {
38763 this._state.initialize(this._rate, this._capacity)
38767 // because sometimes we need hash right now and little later
38768 Keccak.prototype._clone = function () {
38769 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
38770 this._state.copy(clone._state)
38771 clone._finalized = this._finalized
38779 }).call(this,require(
"buffer").Buffer)
38780 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
38781 (function (Buffer){
38783 var Transform = require('stream').Transform
38784 var inherits = require('inherits')
38786 module.exports = function (KeccakState) {
38787 function Shake (rate, capacity, delimitedSuffix, options) {
38788 Transform.call(this, options)
38791 this._capacity = capacity
38792 this._delimitedSuffix = delimitedSuffix
38793 this._options = options
38795 this._state = new KeccakState()
38796 this._state.initialize(rate, capacity)
38797 this._finalized = false
38800 inherits(Shake, Transform)
38802 Shake.prototype._transform = function (chunk, encoding, callback) {
38805 this.update(chunk, encoding)
38813 Shake.prototype._flush = function () {}
38815 Shake.prototype._read = function (size) {
38816 this.push(this.squeeze(size))
38819 Shake.prototype.update = function (data, encoding) {
38820 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38821 if (this._finalized) throw new Error('Squeeze already called')
38822 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38824 this._state.absorb(data)
38829 Shake.prototype.squeeze = function (dataByteLength, encoding) {
38830 if (!this._finalized) {
38831 this._finalized = true
38832 this._state.absorbLastFewBits(this._delimitedSuffix)
38835 var data = this._state.squeeze(dataByteLength)
38836 if (encoding !== undefined) data = data.toString(encoding)
38841 Shake.prototype._resetState = function () {
38842 this._state.initialize(this._rate, this._capacity)
38846 Shake.prototype._clone = function () {
38847 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
38848 this._state.copy(clone._state)
38849 clone._finalized = this._finalized
38857 }).call(this,require(
"buffer").Buffer)
38858 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
38860 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]
38862 exports.p1600 = function (s) {
38863 for (var round =
0; round <
24; ++round) {
38865 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
38866 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
38867 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
38868 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
38869 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
38870 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
38871 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
38872 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
38873 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
38874 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
38876 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
38877 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
38878 var t1slo0 = s[
0] ^ lo
38879 var t1shi0 = s[
1] ^ hi
38880 var t1slo5 = s[
10] ^ lo
38881 var t1shi5 = s[
11] ^ hi
38882 var t1slo10 = s[
20] ^ lo
38883 var t1shi10 = s[
21] ^ hi
38884 var t1slo15 = s[
30] ^ lo
38885 var t1shi15 = s[
31] ^ hi
38886 var t1slo20 = s[
40] ^ lo
38887 var t1shi20 = s[
41] ^ hi
38888 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
38889 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
38890 var t1slo1 = s[
2] ^ lo
38891 var t1shi1 = s[
3] ^ hi
38892 var t1slo6 = s[
12] ^ lo
38893 var t1shi6 = s[
13] ^ hi
38894 var t1slo11 = s[
22] ^ lo
38895 var t1shi11 = s[
23] ^ hi
38896 var t1slo16 = s[
32] ^ lo
38897 var t1shi16 = s[
33] ^ hi
38898 var t1slo21 = s[
42] ^ lo
38899 var t1shi21 = s[
43] ^ hi
38900 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
38901 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
38902 var t1slo2 = s[
4] ^ lo
38903 var t1shi2 = s[
5] ^ hi
38904 var t1slo7 = s[
14] ^ lo
38905 var t1shi7 = s[
15] ^ hi
38906 var t1slo12 = s[
24] ^ lo
38907 var t1shi12 = s[
25] ^ hi
38908 var t1slo17 = s[
34] ^ lo
38909 var t1shi17 = s[
35] ^ hi
38910 var t1slo22 = s[
44] ^ lo
38911 var t1shi22 = s[
45] ^ hi
38912 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
38913 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
38914 var t1slo3 = s[
6] ^ lo
38915 var t1shi3 = s[
7] ^ hi
38916 var t1slo8 = s[
16] ^ lo
38917 var t1shi8 = s[
17] ^ hi
38918 var t1slo13 = s[
26] ^ lo
38919 var t1shi13 = s[
27] ^ hi
38920 var t1slo18 = s[
36] ^ lo
38921 var t1shi18 = s[
37] ^ hi
38922 var t1slo23 = s[
46] ^ lo
38923 var t1shi23 = s[
47] ^ hi
38924 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
38925 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
38926 var t1slo4 = s[
8] ^ lo
38927 var t1shi4 = s[
9] ^ hi
38928 var t1slo9 = s[
18] ^ lo
38929 var t1shi9 = s[
19] ^ hi
38930 var t1slo14 = s[
28] ^ lo
38931 var t1shi14 = s[
29] ^ hi
38932 var t1slo19 = s[
38] ^ lo
38933 var t1shi19 = s[
39] ^ hi
38934 var t1slo24 = s[
48] ^ lo
38935 var t1shi24 = s[
49] ^ hi
38938 var t2slo0 = t1slo0
38939 var t2shi0 = t1shi0
38940 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
38941 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
38942 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
38943 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
38944 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
38945 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
38946 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
38947 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
38948 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
38949 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
38950 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
38951 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
38952 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
38953 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
38954 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
38955 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
38956 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
38957 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
38958 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
38959 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
38960 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
38961 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
38962 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
38963 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
38964 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
38965 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
38966 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
38967 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
38968 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
38969 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
38970 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
38971 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
38972 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
38973 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
38974 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
38975 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
38976 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
38977 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
38978 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
38979 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
38980 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
38981 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
38982 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
38983 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
38984 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
38985 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
38986 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
38987 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
38990 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
38991 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
38992 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
38993 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
38994 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
38995 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
38996 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
38997 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
38998 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
38999 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
39000 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
39001 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
39002 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
39003 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
39004 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
39005 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
39006 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
39007 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
39008 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
39009 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
39010 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
39011 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
39012 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
39013 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
39014 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
39015 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
39016 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
39017 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
39018 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
39019 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
39020 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
39021 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
39022 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
39023 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
39024 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
39025 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
39026 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
39027 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
39028 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
39029 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
39030 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
39031 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
39032 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
39033 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
39034 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
39035 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
39036 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
39037 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
39038 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
39039 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
39042 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
39043 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
39047 },{}],
70:[function(require,module,exports){
39048 (function (Buffer){
39050 var keccakState = require('./keccak-state-unroll')
39052 function Keccak () {
39053 // much faster than `new Array(
50)`
39062 this.blockSize = null
39064 this.squeezing = false
39067 Keccak.prototype.initialize = function (rate, capacity) {
39068 for (var i =
0; i <
50; ++i) this.state[i] =
0
39069 this.blockSize = rate /
8
39071 this.squeezing = false
39074 Keccak.prototype.absorb = function (data) {
39075 for (var i =
0; i < data.length; ++i) {
39076 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
39078 if (this.count === this.blockSize) {
39079 keccakState.p1600(this.state)
39085 Keccak.prototype.absorbLastFewBits = function (bits) {
39086 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
39087 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
39088 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
39089 keccakState.p1600(this.state)
39091 this.squeezing = true
39094 Keccak.prototype.squeeze = function (length) {
39095 if (!this.squeezing) this.absorbLastFewBits(
0x01)
39097 var output = Buffer.allocUnsafe(length)
39098 for (var i =
0; i < length; ++i) {
39099 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
39101 if (this.count === this.blockSize) {
39102 keccakState.p1600(this.state)
39110 Keccak.prototype.copy = function (dest) {
39111 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
39112 dest.blockSize = this.blockSize
39113 dest.count = this.count
39114 dest.squeezing = this.squeezing
39117 module.exports = Keccak
39119 }).call(this,require("buffer").Buffer)
39120 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
39121 (function (Buffer){
39124 code.google.com/p/crypto-js
39125 (c)
2009-
2013 by Jeff Mott. All rights reserved.
39126 code.google.com/p/crypto-js/wiki/License
39129 (c)
2012 by Cédric Mesnil. All rights reserved.
39131 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
39133 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
39134 - 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.
39136 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.
39141 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
39142 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
39143 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
39144 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
39145 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
39149 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
39150 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
39151 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
39152 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
39153 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
39157 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
39158 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
39159 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
39160 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
39161 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
39165 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
39166 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
39167 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
39168 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
39169 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
39172 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
39173 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
39175 function bytesToWords (bytes) {
39177 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
39178 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
39183 function wordsToBytes (words) {
39185 for (var b =
0; b < words.length *
32; b +=
8) {
39186 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
39191 function processBlock (H, M, offset) {
39193 for (var i =
0; i <
16; i++) {
39194 var offset_i = offset + i
39195 var M_offset_i = M[offset_i]
39199 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
39200 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
39204 // Working variables
39205 var al, bl, cl, dl, el
39206 var ar, br, cr, dr, er
39216 for (i =
0; i <
80; i +=
1) {
39217 t = (al + M[offset + zl[i]]) |
0
39219 t += f1(bl, cl, dl) + hl[
0]
39220 } else if (i <
32) {
39221 t += f2(bl, cl, dl) + hl[
1]
39222 } else if (i <
48) {
39223 t += f3(bl, cl, dl) + hl[
2]
39224 } else if (i <
64) {
39225 t += f4(bl, cl, dl) + hl[
3]
39226 } else {// if (i
<80) {
39227 t += f5(bl, cl, dl) + hl[
4]
39238 t = (ar + M[offset + zr[i]]) |
0
39240 t += f5(br, cr, dr) + hr[
0]
39241 } else if (i <
32) {
39242 t += f4(br, cr, dr) + hr[
1]
39243 } else if (i <
48) {
39244 t += f3(br, cr, dr) + hr[
2]
39245 } else if (i <
64) {
39246 t += f2(br, cr, dr) + hr[
3]
39247 } else {// if (i
<80) {
39248 t += f1(br, cr, dr) + hr[
4]
39261 // intermediate hash value
39262 t = (H[
1] + cl + dr) |
0
39263 H[
1] = (H[
2] + dl + er) |
0
39264 H[
2] = (H[
3] + el + ar) |
0
39265 H[
3] = (H[
4] + al + br) |
0
39266 H[
4] = (H[
0] + bl + cr) |
0
39270 function f1 (x, y, z) {
39271 return ((x) ^ (y) ^ (z))
39274 function f2 (x, y, z) {
39275 return (((x) & (y)) | ((~x) & (z)))
39278 function f3 (x, y, z) {
39279 return (((x) | (~(y))) ^ (z))
39282 function f4 (x, y, z) {
39283 return (((x) & (z)) | ((y) & (~(z))))
39286 function f5 (x, y, z) {
39287 return ((x) ^ ((y) | (~(z))))
39290 function rotl (x, n) {
39291 return (x << n) | (x
>>> (
32 - n))
39294 function ripemd160 (message) {
39295 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
39297 if (typeof message === 'string') {
39298 message = new Buffer(message, 'utf8')
39301 var m = bytesToWords(message)
39303 var nBitsLeft = message.length *
8
39304 var nBitsTotal = message.length *
8
39307 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
39308 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
39309 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
39310 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
39313 for (var i =
0; i < m.length; i +=
16) {
39314 processBlock(H, m, i)
39318 for (i =
0; i <
5; i++) {
39323 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
39324 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
39327 var digestbytes = wordsToBytes(H)
39328 return new Buffer(digestbytes)
39331 module.exports = ripemd160
39333 }).call(this,require(
"buffer").Buffer)
39334 },{
"buffer":
5}],
72:[function(require,module,exports){
39335 (function (Buffer){
39336 const assert = require('assert')
39338 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
39339 * This function takes in a data, convert it to buffer if not, and a length for recursion
39341 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39342 * @returns {Buffer} - returns buffer of encoded data
39344 exports.encode = function (input) {
39345 if (input instanceof Array) {
39347 for (var i =
0; i < input.length; i++) {
39348 output.push(exports.encode(input[i]))
39350 var buf = Buffer.concat(output)
39351 return Buffer.concat([encodeLength(buf.length,
192), buf])
39353 input = toBuffer(input)
39354 if (input.length ===
1 && input[
0] <
128) {
39357 return Buffer.concat([encodeLength(input.length,
128), input])
39362 function safeParseInt (v, base) {
39363 if (v.slice(
0,
2) === '
00') {
39364 throw (new Error('invalid RLP: extra zeros'))
39367 return parseInt(v, base)
39370 function encodeLength (len, offset) {
39372 return new Buffer([len + offset])
39374 var hexLength = intToHex(len)
39375 var lLength = hexLength.length /
2
39376 var firstByte = intToHex(offset +
55 + lLength)
39377 return new Buffer(firstByte + hexLength, 'hex')
39382 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
39383 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39384 * @returns {Array} - returns decode Array of Buffers containg the original message
39386 exports.decode = function (input, stream) {
39387 if (!input || input.length ===
0) {
39388 return new Buffer([])
39391 input = toBuffer(input)
39392 var decoded = _decode(input)
39398 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
39399 return decoded.data
39402 exports.getLength = function (input) {
39403 if (!input || input.length ===
0) {
39404 return new Buffer([])
39407 input = toBuffer(input)
39408 var firstByte = input[
0]
39409 if (firstByte <=
0x7f) {
39410 return input.length
39411 } else if (firstByte <=
0xb7) {
39412 return firstByte -
0x7f
39413 } else if (firstByte <=
0xbf) {
39414 return firstByte -
0xb6
39415 } else if (firstByte <=
0xf7) {
39416 // a list between
0-
55 bytes long
39417 return firstByte -
0xbf
39419 // a list over
55 bytes long
39420 var llength = firstByte -
0xf6
39421 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39422 return llength + length
39426 function _decode (input) {
39427 var length, llength, data, innerRemainder, d
39429 var firstByte = input[
0]
39431 if (firstByte <=
0x7f) {
39432 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
39434 data: input.slice(
0,
1),
39435 remainder: input.slice(
1)
39437 } else if (firstByte <=
0xb7) {
39438 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
39439 // The range of the first byte is [
0x80,
0xb7]
39440 length = firstByte -
0x7f
39442 // set
0x80 null to
0
39443 if (firstByte ===
0x80) {
39444 data = new Buffer([])
39446 data = input.slice(
1, length)
39449 if (length ===
2 && data[
0] <
0x80) {
39450 throw new Error('invalid rlp encoding: byte must be less
0x80')
39455 remainder: input.slice(length)
39457 } else if (firstByte <=
0xbf) {
39458 llength = firstByte -
0xb6
39459 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39460 data = input.slice(llength, length + llength)
39461 if (data.length < length) {
39462 throw (new Error('invalid RLP'))
39467 remainder: input.slice(length + llength)
39469 } else if (firstByte <=
0xf7) {
39470 // a list between
0-
55 bytes long
39471 length = firstByte -
0xbf
39472 innerRemainder = input.slice(
1, length)
39473 while (innerRemainder.length) {
39474 d = _decode(innerRemainder)
39475 decoded.push(d.data)
39476 innerRemainder = d.remainder
39481 remainder: input.slice(length)
39484 // a list over
55 bytes long
39485 llength = firstByte -
0xf6
39486 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39487 var totalLength = llength + length
39488 if (totalLength
> input.length) {
39489 throw new Error('invalid rlp: total length is larger than the data')
39492 innerRemainder = input.slice(llength, totalLength)
39493 if (innerRemainder.length ===
0) {
39494 throw new Error('invalid rlp, List has a invalid length')
39497 while (innerRemainder.length) {
39498 d = _decode(innerRemainder)
39499 decoded.push(d.data)
39500 innerRemainder = d.remainder
39504 remainder: input.slice(totalLength)
39509 function isHexPrefixed (str) {
39510 return str.slice(
0,
2) === '
0x'
39513 // Removes
0x from a given String
39514 function stripHexPrefix (str) {
39515 if (typeof str !== 'string') {
39518 return isHexPrefixed(str) ? str.slice(
2) : str
39521 function intToHex (i) {
39522 var hex = i.toString(
16)
39523 if (hex.length %
2) {
39530 function padToEven (a) {
39531 if (a.length %
2) a = '
0' + a
39535 function intToBuffer (i) {
39536 var hex = intToHex(i)
39537 return new Buffer(hex, 'hex')
39540 function toBuffer (v) {
39541 if (!Buffer.isBuffer(v)) {
39542 if (typeof v === 'string') {
39543 if (isHexPrefixed(v)) {
39544 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
39548 } else if (typeof v === 'number') {
39554 } else if (v === null || v === undefined) {
39556 } else if (v.toArray) {
39557 // converts a BN to a Buffer
39558 v = new Buffer(v.toArray())
39560 throw new Error('invalid type')
39566 }).call(this,require("buffer").Buffer)
39567 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
39569 module.exports = require('./lib')(require('./lib/elliptic'))
39571 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
39572 (function (Buffer){
39574 var toString = Object.prototype.toString
39577 exports.isArray = function (value, message) {
39578 if (!Array.isArray(value)) throw TypeError(message)
39581 exports.isBoolean = function (value, message) {
39582 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
39585 exports.isBuffer = function (value, message) {
39586 if (!Buffer.isBuffer(value)) throw TypeError(message)
39589 exports.isFunction = function (value, message) {
39590 if (toString.call(value) !== '[object Function]') throw TypeError(message)
39593 exports.isNumber = function (value, message) {
39594 if (toString.call(value) !== '[object Number]') throw TypeError(message)
39597 exports.isObject = function (value, message) {
39598 if (toString.call(value) !== '[object Object]') throw TypeError(message)
39602 exports.isBufferLength = function (buffer, length, message) {
39603 if (buffer.length !== length) throw RangeError(message)
39606 exports.isBufferLength2 = function (buffer, length1, length2, message) {
39607 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
39610 exports.isLengthGTZero = function (value, message) {
39611 if (value.length ===
0) throw RangeError(message)
39614 exports.isNumberInInterval = function (number, x, y, message) {
39615 if (number <= x || number
>= y) throw RangeError(message)
39618 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
39619 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
39620 (function (Buffer){
39622 var bip66 = require('bip66')
39624 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
39626 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
39628 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39629 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39631 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39632 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39633 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39634 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39635 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39636 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39637 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39638 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39639 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
39641 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39642 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39646 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
39648 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
39650 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39651 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39653 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39654 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39655 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39656 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39657 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39658 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39659 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
39660 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
39661 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39662 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39663 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
39665 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39666 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39667 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39668 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39672 var ZERO_BUFFER_32 = new Buffer([
39673 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39674 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
39677 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
39678 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
39679 privateKey.copy(result, compressed ?
8 :
9)
39680 publicKey.copy(result, compressed ?
181 :
214)
39684 exports.privateKeyImport = function (privateKey) {
39685 var length = privateKey.length
39689 if (length < index +
1 || privateKey[index] !==
0x30) return
39692 // sequence length constructor
39693 if (length < index +
1 || !(privateKey[index] &
0x80)) return
39695 var lenb = privateKey[index] &
0x7f
39697 if (lenb <
1 || lenb
> 2) return
39698 if (length < index + lenb) return
39701 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
39703 if (length < index + len) return
39705 // sequence element
0: version number (=
1)
39706 if (length < index +
3 ||
39707 privateKey[index] !==
0x02 ||
39708 privateKey[index +
1] !==
0x01 ||
39709 privateKey[index +
2] !==
0x01) {
39714 // sequence element
1: octet string, up to
32 bytes
39715 if (length < index +
2 ||
39716 privateKey[index] !==
0x04 ||
39717 privateKey[index +
1]
> 0x20 ||
39718 length < index +
2 + privateKey[index +
1]) {
39722 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
39725 exports.signatureExport = function (sigObj) {
39726 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
39727 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
39729 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
39730 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
39732 return bip66.encode(r.slice(posR), s.slice(posS))
39735 exports.signatureImport = function (sig) {
39736 var r = new Buffer(ZERO_BUFFER_32)
39737 var s = new Buffer(ZERO_BUFFER_32)
39740 var sigObj = bip66.decode(sig)
39741 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
39742 if (sigObj.r.length
> 32) throw new Error('R length is too long')
39743 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
39744 if (sigObj.s.length
> 32) throw new Error('S length is too long')
39749 sigObj.r.copy(r,
32 - sigObj.r.length)
39750 sigObj.s.copy(s,
32 - sigObj.s.length)
39752 return { r: r, s: s }
39755 exports.signatureImportLax = function (sig) {
39756 var r = new Buffer(ZERO_BUFFER_32)
39757 var s = new Buffer(ZERO_BUFFER_32)
39759 var length = sig.length
39762 // sequence tag byte
39763 if (sig[index++] !==
0x30) return
39765 // sequence length byte
39766 var lenbyte = sig[index++]
39767 if (lenbyte &
0x80) {
39768 index += lenbyte -
0x80
39769 if (index
> length) return
39772 // sequence tag byte for r
39773 if (sig[index++] !==
0x02) return
39776 var rlen = sig[index++]
39778 lenbyte = rlen -
0x80
39779 if (index + lenbyte
> length) return
39780 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39781 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
39783 if (rlen
> length - index) return
39787 // sequence tag byte for s
39788 if (sig[index++] !==
0x02) return
39791 var slen = sig[index++]
39793 lenbyte = slen -
0x80
39794 if (index + lenbyte
> length) return
39795 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39796 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
39798 if (slen
> length - index) return
39802 // ignore leading zeros in r
39803 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
39805 if (rlen
> 32) return
39806 var rvalue = sig.slice(rindex, rindex + rlen)
39807 rvalue.copy(r,
32 - rvalue.length)
39809 // ignore leading zeros in s
39810 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
39812 if (slen
> 32) return
39813 var svalue = sig.slice(sindex, sindex + slen)
39814 svalue.copy(s,
32 - svalue.length)
39816 return { r: r, s: s }
39819 }).call(this,require(
"buffer").Buffer)
39820 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
39821 (function (Buffer){
39823 var createHash = require('create-hash')
39824 var BN = require('bn.js')
39825 var EC = require('elliptic').ec
39827 var messages = require('../messages.json')
39829 var ec = new EC('secp256k1')
39830 var ecparams = ec.curve
39832 function loadCompressedPublicKey (first, xBuffer) {
39833 var x = new BN(xBuffer)
39836 if (x.cmp(ecparams.p)
>=
0) return null
39837 x = x.toRed(ecparams.red)
39839 // compute corresponding Y
39840 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
39841 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
39843 return ec.keyPair({ pub: { x: x, y: y } })
39846 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
39847 var x = new BN(xBuffer)
39848 var y = new BN(yBuffer)
39851 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
39853 x = x.toRed(ecparams.red)
39854 y = y.toRed(ecparams.red)
39857 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
39860 var x3 = x.redSqr().redIMul(x)
39861 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
39863 return ec.keyPair({ pub: { x: x, y: y } })
39866 function loadPublicKey (publicKey) {
39867 var first = publicKey[
0]
39871 if (publicKey.length !==
33) return null
39872 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
39876 if (publicKey.length !==
65) return null
39877 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
39883 exports.privateKeyVerify = function (privateKey) {
39884 var bn = new BN(privateKey)
39885 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
39888 exports.privateKeyExport = function (privateKey, compressed) {
39889 var d = new BN(privateKey)
39890 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
39892 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39895 exports.privateKeyTweakAdd = function (privateKey, tweak) {
39896 var bn = new BN(tweak)
39897 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39899 bn.iadd(new BN(privateKey))
39900 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
39901 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39903 return bn.toArrayLike(Buffer, 'be',
32)
39906 exports.privateKeyTweakMul = function (privateKey, tweak) {
39907 var bn = new BN(tweak)
39908 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
39910 bn.imul(new BN(privateKey))
39911 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
39913 return bn.toArrayLike(Buffer, 'be',
32)
39916 exports.publicKeyCreate = function (privateKey, compressed) {
39917 var d = new BN(privateKey)
39918 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
39920 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39923 exports.publicKeyConvert = function (publicKey, compressed) {
39924 var pair = loadPublicKey(publicKey)
39925 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39927 return new Buffer(pair.getPublic(compressed, true))
39930 exports.publicKeyVerify = function (publicKey) {
39931 return loadPublicKey(publicKey) !== null
39934 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
39935 var pair = loadPublicKey(publicKey)
39936 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39938 tweak = new BN(tweak)
39939 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
39941 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
39944 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
39945 var pair = loadPublicKey(publicKey)
39946 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39948 tweak = new BN(tweak)
39949 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
39951 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
39954 exports.publicKeyCombine = function (publicKeys, compressed) {
39955 var pairs = new Array(publicKeys.length)
39956 for (var i =
0; i < publicKeys.length; ++i) {
39957 pairs[i] = loadPublicKey(publicKeys[i])
39958 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39961 var point = pairs[
0].pub
39962 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
39963 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
39965 return new Buffer(point.encode(true, compressed))
39968 exports.signatureNormalize = function (signature) {
39969 var r = new BN(signature.slice(
0,
32))
39970 var s = new BN(signature.slice(
32,
64))
39971 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39973 var result = new Buffer(signature)
39974 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
39979 exports.signatureExport = function (signature) {
39980 var r = signature.slice(
0,
32)
39981 var s = signature.slice(
32,
64)
39982 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39984 return { r: r, s: s }
39987 exports.signatureImport = function (sigObj) {
39988 var r = new BN(sigObj.r)
39989 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
39991 var s = new BN(sigObj.s)
39992 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
39994 return Buffer.concat([
39995 r.toArrayLike(Buffer, 'be',
32),
39996 s.toArrayLike(Buffer, 'be',
32)
40000 exports.sign = function (message, privateKey, noncefn, data) {
40001 if (typeof noncefn === 'function') {
40002 var getNonce = noncefn
40003 noncefn = function (counter) {
40004 var nonce = getNonce(message, privateKey, null, data, counter)
40005 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
40007 return new BN(nonce)
40011 var d = new BN(privateKey)
40012 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
40014 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
40016 signature: Buffer.concat([
40017 result.r.toArrayLike(Buffer, 'be',
32),
40018 result.s.toArrayLike(Buffer, 'be',
32)
40020 recovery: result.recoveryParam
40024 exports.verify = function (message, signature, publicKey) {
40025 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
40027 var sigr = new BN(sigObj.r)
40028 var sigs = new BN(sigObj.s)
40029 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40030 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
40032 var pair = loadPublicKey(publicKey)
40033 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40035 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
40038 exports.recover = function (message, signature, recovery, compressed) {
40039 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
40041 var sigr = new BN(sigObj.r)
40042 var sigs = new BN(sigObj.s)
40043 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40046 if (sigr.isZero() || sigs.isZero()) throw new Error()
40048 var point = ec.recoverPubKey(message, sigObj, recovery)
40049 return new Buffer(point.encode(true, compressed))
40051 throw new Error(messages.ECDSA_RECOVER_FAIL)
40055 exports.ecdh = function (publicKey, privateKey) {
40056 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
40057 return createHash('sha256').update(shared).digest()
40060 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
40061 var pair = loadPublicKey(publicKey)
40062 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40064 var scalar = new BN(privateKey)
40065 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
40067 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
40070 }).call(this,require("buffer").Buffer)
40071 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
40073 var assert = require('./assert')
40074 var der = require('./der')
40075 var messages = require('./messages.json')
40077 function initCompressedValue (value, defaultValue) {
40078 if (value === undefined) return defaultValue
40080 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
40084 module.exports = function (secp256k1) {
40086 privateKeyVerify: function (privateKey) {
40087 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40088 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
40091 privateKeyExport: function (privateKey, compressed) {
40092 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40093 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40095 compressed = initCompressedValue(compressed, true)
40096 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
40098 return der.privateKeyExport(privateKey, publicKey, compressed)
40101 privateKeyImport: function (privateKey) {
40102 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40104 privateKey = der.privateKeyImport(privateKey)
40105 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
40107 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
40110 privateKeyTweakAdd: function (privateKey, tweak) {
40111 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40112 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40114 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40115 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40117 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
40120 privateKeyTweakMul: function (privateKey, tweak) {
40121 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40122 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40124 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40125 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40127 return secp256k1.privateKeyTweakMul(privateKey, tweak)
40130 publicKeyCreate: function (privateKey, compressed) {
40131 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40132 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40134 compressed = initCompressedValue(compressed, true)
40136 return secp256k1.publicKeyCreate(privateKey, compressed)
40139 publicKeyConvert: function (publicKey, compressed) {
40140 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40141 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40143 compressed = initCompressedValue(compressed, true)
40145 return secp256k1.publicKeyConvert(publicKey, compressed)
40148 publicKeyVerify: function (publicKey) {
40149 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40150 return secp256k1.publicKeyVerify(publicKey)
40153 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
40154 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40155 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40157 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40158 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40160 compressed = initCompressedValue(compressed, true)
40162 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
40165 publicKeyTweakMul: function (publicKey, tweak, compressed) {
40166 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40167 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40169 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40170 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40172 compressed = initCompressedValue(compressed, true)
40174 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
40177 publicKeyCombine: function (publicKeys, compressed) {
40178 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
40179 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
40180 for (var i =
0; i < publicKeys.length; ++i) {
40181 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
40182 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40185 compressed = initCompressedValue(compressed, true)
40187 return secp256k1.publicKeyCombine(publicKeys, compressed)
40190 signatureNormalize: function (signature) {
40191 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40192 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40194 return secp256k1.signatureNormalize(signature)
40197 signatureExport: function (signature) {
40198 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40199 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40201 var sigObj = secp256k1.signatureExport(signature)
40202 return der.signatureExport(sigObj)
40205 signatureImport: function (sig) {
40206 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40207 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40209 var sigObj = der.signatureImport(sig)
40210 if (sigObj) return secp256k1.signatureImport(sigObj)
40212 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40215 signatureImportLax: function (sig) {
40216 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40217 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40219 var sigObj = der.signatureImportLax(sig)
40220 if (sigObj) return secp256k1.signatureImport(sigObj)
40222 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40225 sign: function (message, privateKey, options) {
40226 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40227 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40229 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40230 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40234 if (options !== undefined) {
40235 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
40237 if (options.data !== undefined) {
40238 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
40239 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
40240 data = options.data
40243 if (options.noncefn !== undefined) {
40244 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
40245 noncefn = options.noncefn
40249 return secp256k1.sign(message, privateKey, noncefn, data)
40252 verify: function (message, signature, publicKey) {
40253 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40254 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40256 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40257 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40259 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40260 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40262 return secp256k1.verify(message, signature, publicKey)
40265 recover: function (message, signature, recovery, compressed) {
40266 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40267 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40269 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40270 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40272 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
40273 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
40275 compressed = initCompressedValue(compressed, true)
40277 return secp256k1.recover(message, signature, recovery, compressed)
40280 ecdh: function (publicKey, privateKey) {
40281 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40282 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40284 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40285 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40287 return secp256k1.ecdh(publicKey, privateKey)
40290 ecdhUnsafe: function (publicKey, privateKey, compressed) {
40291 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40292 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40294 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40295 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40297 compressed = initCompressedValue(compressed, true)
40299 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
40304 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
40306 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
40307 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
40308 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
40309 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
40310 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40311 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
40312 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
40313 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
40314 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
40315 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
40316 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
40317 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
40318 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
40319 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
40320 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40321 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
40322 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
40323 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
40324 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
40325 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
40326 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
40327 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
40328 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
40329 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
40330 "MSG32_TYPE_INVALID": "message should be a Buffer",
40331 "MSG32_LENGTH_INVALID": "message length is invalid",
40332 "OPTIONS_TYPE_INVALID": "options should be an Object",
40333 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
40334 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
40335 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
40336 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
40337 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
40338 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
40339 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
40342 },{}],
79:[function(require,module,exports){
40343 (function (Buffer){
40344 // prototype class for hash functions
40345 function Hash (blockSize, finalSize) {
40346 this._block = new Buffer(blockSize)
40347 this._finalSize = finalSize
40348 this._blockSize = blockSize
40353 Hash.prototype.update = function (data, enc) {
40354 if (typeof data === 'string') {
40355 enc = enc || 'utf8'
40356 data = new Buffer(data, enc)
40359 var l = this._len += data.length
40360 var s = this._s ||
0
40362 var buffer = this._block
40365 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
40368 for (var i =
0; i < ch; i++) {
40369 buffer[(s % this._blockSize) + i] = data[i + f]
40375 if ((s % this._blockSize) ===
0) {
40376 this._update(buffer)
40384 Hash.prototype.digest = function (enc) {
40385 // Suppose the length of the message M, in bits, is l
40386 var l = this._len *
8
40388 // Append the bit
1 to the end of the message
40389 this._block[this._len % this._blockSize] =
0x80
40391 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
40392 this._block.fill(
0, this._len % this._blockSize +
1)
40394 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
40395 this._update(this._block)
40396 this._block.fill(
0)
40399 // to this append the block which is equal to the number l written in binary
40400 // TODO: handle case where l is
> Math.pow(
2,
29)
40401 this._block.writeInt32BE(l, this._blockSize -
4)
40403 var hash = this._update(this._block) || this._hash()
40405 return enc ? hash.toString(enc) : hash
40408 Hash.prototype._update = function () {
40409 throw new Error('_update must be implemented by subclass')
40412 module.exports = Hash
40414 }).call(this,require("buffer").Buffer)
40415 },{"buffer":
5}],
80:[function(require,module,exports){
40416 var exports = module.exports = function SHA (algorithm) {
40417 algorithm = algorithm.toLowerCase()
40419 var Algorithm = exports[algorithm]
40420 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
40422 return new Algorithm()
40425 exports.sha = require('./sha')
40426 exports.sha1 = require('./sha1')
40427 exports.sha224 = require('./sha224')
40428 exports.sha256 = require('./sha256')
40429 exports.sha384 = require('./sha384')
40430 exports.sha512 = require('./sha512')
40432 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
40433 (function (Buffer){
40435 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
40436 * in FIPS PUB
180-
1
40437 * This source code is derived from sha1.js of the same repository.
40438 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
40439 * operation was added.
40442 var inherits = require('inherits')
40443 var Hash = require('./hash')
40446 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40449 var W = new Array(
80)
40455 Hash.call(this,
64,
56)
40458 inherits(Sha, Hash)
40460 Sha.prototype.init = function () {
40461 this._a =
0x67452301
40462 this._b =
0xefcdab89
40463 this._c =
0x98badcfe
40464 this._d =
0x10325476
40465 this._e =
0xc3d2e1f0
40470 function rotl5 (num) {
40471 return (num <<
5) | (num
>>> 27)
40474 function rotl30 (num) {
40475 return (num <<
30) | (num
>>> 2)
40478 function ft (s, b, c, d) {
40479 if (s ===
0) return (b & c) | ((~b) & d)
40480 if (s ===
2) return (b & c) | (b & d) | (c & d)
40484 Sha.prototype._update = function (M) {
40487 var a = this._a |
0
40488 var b = this._b |
0
40489 var c = this._c |
0
40490 var d = this._d |
0
40491 var e = this._e |
0
40493 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40494 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
40496 for (var j =
0; j <
80; ++j) {
40498 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40507 this._a = (a + this._a) |
0
40508 this._b = (b + this._b) |
0
40509 this._c = (c + this._c) |
0
40510 this._d = (d + this._d) |
0
40511 this._e = (e + this._e) |
0
40514 Sha.prototype._hash = function () {
40515 var H = new Buffer(
20)
40517 H.writeInt32BE(this._a |
0,
0)
40518 H.writeInt32BE(this._b |
0,
4)
40519 H.writeInt32BE(this._c |
0,
8)
40520 H.writeInt32BE(this._d |
0,
12)
40521 H.writeInt32BE(this._e |
0,
16)
40526 module.exports = Sha
40528 }).call(this,require(
"buffer").Buffer)
40529 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
40530 (function (Buffer){
40532 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
40533 * in FIPS PUB
180-
1
40534 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
40535 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40536 * Distributed under the BSD License
40537 * See http://pajhome.org.uk/crypt/md5 for details.
40540 var inherits = require('inherits')
40541 var Hash = require('./hash')
40544 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40547 var W = new Array(
80)
40553 Hash.call(this,
64,
56)
40556 inherits(Sha1, Hash)
40558 Sha1.prototype.init = function () {
40559 this._a =
0x67452301
40560 this._b =
0xefcdab89
40561 this._c =
0x98badcfe
40562 this._d =
0x10325476
40563 this._e =
0xc3d2e1f0
40568 function rotl1 (num) {
40569 return (num <<
1) | (num
>>> 31)
40572 function rotl5 (num) {
40573 return (num <<
5) | (num
>>> 27)
40576 function rotl30 (num) {
40577 return (num <<
30) | (num
>>> 2)
40580 function ft (s, b, c, d) {
40581 if (s ===
0) return (b & c) | ((~b) & d)
40582 if (s ===
2) return (b & c) | (b & d) | (c & d)
40586 Sha1.prototype._update = function (M) {
40589 var a = this._a |
0
40590 var b = this._b |
0
40591 var c = this._c |
0
40592 var d = this._d |
0
40593 var e = this._e |
0
40595 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40596 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
40598 for (var j =
0; j <
80; ++j) {
40600 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40609 this._a = (a + this._a) |
0
40610 this._b = (b + this._b) |
0
40611 this._c = (c + this._c) |
0
40612 this._d = (d + this._d) |
0
40613 this._e = (e + this._e) |
0
40616 Sha1.prototype._hash = function () {
40617 var H = new Buffer(
20)
40619 H.writeInt32BE(this._a |
0,
0)
40620 H.writeInt32BE(this._b |
0,
4)
40621 H.writeInt32BE(this._c |
0,
8)
40622 H.writeInt32BE(this._d |
0,
12)
40623 H.writeInt32BE(this._e |
0,
16)
40628 module.exports = Sha1
40630 }).call(this,require(
"buffer").Buffer)
40631 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
40632 (function (Buffer){
40634 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40636 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40637 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40641 var inherits = require('inherits')
40642 var Sha256 = require('./sha256')
40643 var Hash = require('./hash')
40645 var W = new Array(
64)
40647 function Sha224 () {
40650 this._w = W // new Array(
64)
40652 Hash.call(this,
64,
56)
40655 inherits(Sha224, Sha256)
40657 Sha224.prototype.init = function () {
40658 this._a =
0xc1059ed8
40659 this._b =
0x367cd507
40660 this._c =
0x3070dd17
40661 this._d =
0xf70e5939
40662 this._e =
0xffc00b31
40663 this._f =
0x68581511
40664 this._g =
0x64f98fa7
40665 this._h =
0xbefa4fa4
40670 Sha224.prototype._hash = function () {
40671 var H = new Buffer(
28)
40673 H.writeInt32BE(this._a,
0)
40674 H.writeInt32BE(this._b,
4)
40675 H.writeInt32BE(this._c,
8)
40676 H.writeInt32BE(this._d,
12)
40677 H.writeInt32BE(this._e,
16)
40678 H.writeInt32BE(this._f,
20)
40679 H.writeInt32BE(this._g,
24)
40684 module.exports = Sha224
40686 }).call(this,require(
"buffer").Buffer)
40687 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
40688 (function (Buffer){
40690 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40692 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40693 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40697 var inherits = require('inherits')
40698 var Hash = require('./hash')
40701 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
40702 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
40703 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
40704 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
40705 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
40706 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
40707 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
40708 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
40709 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
40710 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
40711 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
40712 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
40713 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
40714 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
40715 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
40716 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
40719 var W = new Array(
64)
40721 function Sha256 () {
40724 this._w = W // new Array(
64)
40726 Hash.call(this,
64,
56)
40729 inherits(Sha256, Hash)
40731 Sha256.prototype.init = function () {
40732 this._a =
0x6a09e667
40733 this._b =
0xbb67ae85
40734 this._c =
0x3c6ef372
40735 this._d =
0xa54ff53a
40736 this._e =
0x510e527f
40737 this._f =
0x9b05688c
40738 this._g =
0x1f83d9ab
40739 this._h =
0x5be0cd19
40744 function ch (x, y, z) {
40745 return z ^ (x & (y ^ z))
40748 function maj (x, y, z) {
40749 return (x & y) | (z & (x | y))
40752 function sigma0 (x) {
40753 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
40756 function sigma1 (x) {
40757 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
40760 function gamma0 (x) {
40761 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
40764 function gamma1 (x) {
40765 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
40768 Sha256.prototype._update = function (M) {
40771 var a = this._a |
0
40772 var b = this._b |
0
40773 var c = this._c |
0
40774 var d = this._d |
0
40775 var e = this._e |
0
40776 var f = this._f |
0
40777 var g = this._g |
0
40778 var h = this._h |
0
40780 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40781 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
40783 for (var j =
0; j <
64; ++j) {
40784 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
40785 var T2 = (sigma0(a) + maj(a, b, c)) |
0
40797 this._a = (a + this._a) |
0
40798 this._b = (b + this._b) |
0
40799 this._c = (c + this._c) |
0
40800 this._d = (d + this._d) |
0
40801 this._e = (e + this._e) |
0
40802 this._f = (f + this._f) |
0
40803 this._g = (g + this._g) |
0
40804 this._h = (h + this._h) |
0
40807 Sha256.prototype._hash = function () {
40808 var H = new Buffer(
32)
40810 H.writeInt32BE(this._a,
0)
40811 H.writeInt32BE(this._b,
4)
40812 H.writeInt32BE(this._c,
8)
40813 H.writeInt32BE(this._d,
12)
40814 H.writeInt32BE(this._e,
16)
40815 H.writeInt32BE(this._f,
20)
40816 H.writeInt32BE(this._g,
24)
40817 H.writeInt32BE(this._h,
28)
40822 module.exports = Sha256
40824 }).call(this,require(
"buffer").Buffer)
40825 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
40826 (function (Buffer){
40827 var inherits = require('inherits')
40828 var SHA512 = require('./sha512')
40829 var Hash = require('./hash')
40831 var W = new Array(
160)
40833 function Sha384 () {
40837 Hash.call(this,
128,
112)
40840 inherits(Sha384, SHA512)
40842 Sha384.prototype.init = function () {
40843 this._ah =
0xcbbb9d5d
40844 this._bh =
0x629a292a
40845 this._ch =
0x9159015a
40846 this._dh =
0x152fecd8
40847 this._eh =
0x67332667
40848 this._fh =
0x8eb44a87
40849 this._gh =
0xdb0c2e0d
40850 this._hh =
0x47b5481d
40852 this._al =
0xc1059ed8
40853 this._bl =
0x367cd507
40854 this._cl =
0x3070dd17
40855 this._dl =
0xf70e5939
40856 this._el =
0xffc00b31
40857 this._fl =
0x68581511
40858 this._gl =
0x64f98fa7
40859 this._hl =
0xbefa4fa4
40864 Sha384.prototype._hash = function () {
40865 var H = new Buffer(
48)
40867 function writeInt64BE (h, l, offset) {
40868 H.writeInt32BE(h, offset)
40869 H.writeInt32BE(l, offset +
4)
40872 writeInt64BE(this._ah, this._al,
0)
40873 writeInt64BE(this._bh, this._bl,
8)
40874 writeInt64BE(this._ch, this._cl,
16)
40875 writeInt64BE(this._dh, this._dl,
24)
40876 writeInt64BE(this._eh, this._el,
32)
40877 writeInt64BE(this._fh, this._fl,
40)
40882 module.exports = Sha384
40884 }).call(this,require(
"buffer").Buffer)
40885 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
40886 (function (Buffer){
40887 var inherits = require('inherits')
40888 var Hash = require('./hash')
40891 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
40892 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
40893 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
40894 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
40895 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
40896 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
40897 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
40898 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
40899 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
40900 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
40901 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
40902 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
40903 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
40904 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
40905 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
40906 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
40907 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
40908 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
40909 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
40910 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
40911 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
40912 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
40913 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
40914 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
40915 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
40916 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
40917 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
40918 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
40919 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
40920 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
40921 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
40922 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
40923 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
40924 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
40925 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
40926 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
40927 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
40928 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
40929 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
40930 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
40933 var W = new Array(
160)
40935 function Sha512 () {
40939 Hash.call(this,
128,
112)
40942 inherits(Sha512, Hash)
40944 Sha512.prototype.init = function () {
40945 this._ah =
0x6a09e667
40946 this._bh =
0xbb67ae85
40947 this._ch =
0x3c6ef372
40948 this._dh =
0xa54ff53a
40949 this._eh =
0x510e527f
40950 this._fh =
0x9b05688c
40951 this._gh =
0x1f83d9ab
40952 this._hh =
0x5be0cd19
40954 this._al =
0xf3bcc908
40955 this._bl =
0x84caa73b
40956 this._cl =
0xfe94f82b
40957 this._dl =
0x5f1d36f1
40958 this._el =
0xade682d1
40959 this._fl =
0x2b3e6c1f
40960 this._gl =
0xfb41bd6b
40961 this._hl =
0x137e2179
40966 function Ch (x, y, z) {
40967 return z ^ (x & (y ^ z))
40970 function maj (x, y, z) {
40971 return (x & y) | (z & (x | y))
40974 function sigma0 (x, xl) {
40975 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
40978 function sigma1 (x, xl) {
40979 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
40982 function Gamma0 (x, xl) {
40983 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
40986 function Gamma0l (x, xl) {
40987 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
40990 function Gamma1 (x, xl) {
40991 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
40994 function Gamma1l (x, xl) {
40995 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
40998 function getCarry (a, b) {
40999 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
41002 Sha512.prototype._update = function (M) {
41005 var ah = this._ah |
0
41006 var bh = this._bh |
0
41007 var ch = this._ch |
0
41008 var dh = this._dh |
0
41009 var eh = this._eh |
0
41010 var fh = this._fh |
0
41011 var gh = this._gh |
0
41012 var hh = this._hh |
0
41014 var al = this._al |
0
41015 var bl = this._bl |
0
41016 var cl = this._cl |
0
41017 var dl = this._dl |
0
41018 var el = this._el |
0
41019 var fl = this._fl |
0
41020 var gl = this._gl |
0
41021 var hl = this._hl |
0
41023 for (var i =
0; i <
32; i +=
2) {
41024 W[i] = M.readInt32BE(i *
4)
41025 W[i +
1] = M.readInt32BE(i *
4 +
4)
41027 for (; i <
160; i +=
2) {
41028 var xh = W[i -
15 *
2]
41029 var xl = W[i -
15 *
2 +
1]
41030 var gamma0 = Gamma0(xh, xl)
41031 var gamma0l = Gamma0l(xl, xh)
41034 xl = W[i -
2 *
2 +
1]
41035 var gamma1 = Gamma1(xh, xl)
41036 var gamma1l = Gamma1l(xl, xh)
41038 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
41039 var Wi7h = W[i -
7 *
2]
41040 var Wi7l = W[i -
7 *
2 +
1]
41042 var Wi16h = W[i -
16 *
2]
41043 var Wi16l = W[i -
16 *
2 +
1]
41045 var Wil = (gamma0l + Wi7l) |
0
41046 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
41047 Wil = (Wil + gamma1l) |
0
41048 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
41049 Wil = (Wil + Wi16l) |
0
41050 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
41056 for (var j =
0; j <
160; j +=
2) {
41060 var majh = maj(ah, bh, ch)
41061 var majl = maj(al, bl, cl)
41063 var sigma0h = sigma0(ah, al)
41064 var sigma0l = sigma0(al, ah)
41065 var sigma1h = sigma1(eh, el)
41066 var sigma1l = sigma1(el, eh)
41068 // t1 = h + sigma1 + ch + K[j] + W[j]
41072 var chh = Ch(eh, fh, gh)
41073 var chl = Ch(el, fl, gl)
41075 var t1l = (hl + sigma1l) |
0
41076 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
41077 t1l = (t1l + chl) |
0
41078 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
41079 t1l = (t1l + Kil) |
0
41080 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
41081 t1l = (t1l + Wil) |
0
41082 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
41084 // t2 = sigma0 + maj
41085 var t2l = (sigma0l + majl) |
0
41086 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
41094 el = (dl + t1l) |
0
41095 eh = (dh + t1h + getCarry(el, dl)) |
0
41102 al = (t1l + t2l) |
0
41103 ah = (t1h + t2h + getCarry(al, t1l)) |
0
41106 this._al = (this._al + al) |
0
41107 this._bl = (this._bl + bl) |
0
41108 this._cl = (this._cl + cl) |
0
41109 this._dl = (this._dl + dl) |
0
41110 this._el = (this._el + el) |
0
41111 this._fl = (this._fl + fl) |
0
41112 this._gl = (this._gl + gl) |
0
41113 this._hl = (this._hl + hl) |
0
41115 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
41116 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
41117 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
41118 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
41119 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
41120 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
41121 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
41122 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
41125 Sha512.prototype._hash = function () {
41126 var H = new Buffer(
64)
41128 function writeInt64BE (h, l, offset) {
41129 H.writeInt32BE(h, offset)
41130 H.writeInt32BE(l, offset +
4)
41133 writeInt64BE(this._ah, this._al,
0)
41134 writeInt64BE(this._bh, this._bl,
8)
41135 writeInt64BE(this._ch, this._cl,
16)
41136 writeInt64BE(this._dh, this._dl,
24)
41137 writeInt64BE(this._eh, this._el,
32)
41138 writeInt64BE(this._fh, this._fl,
40)
41139 writeInt64BE(this._gh, this._gl,
48)
41140 writeInt64BE(this._hh, this._hl,
56)
41145 module.exports = Sha512
41147 }).call(this,require(
"buffer").Buffer)
41148 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
41149 var isHexPrefixed = require('is-hex-prefixed');
41152 * Removes '
0x' from a given `String` is present
41153 * @param {String} str the string value
41154 * @return {String|Optional} a string by pass if necessary
41156 module.exports = function stripHexPrefix(str) {
41157 if (typeof str !== 'string') {
41161 return isHexPrefixed(str) ? str.slice(
2) : str;
41164 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
41166 <script>function convertRippleAdrr(address) {
41167 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
41168 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
41172 function convertRipplePriv(priv) {
41173 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
41177 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
41181 /** @fileOverview Javascript cryptography implementation.
41183 * Crush to remove comments, shorten variable names and
41184 * generally reduce transmission size.
41186 * @author Emily Stark
41187 * @author Mike Hamburg
41188 * @author Dan Boneh
41192 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
41193 /*global document, window, escape, unescape, module, require, Uint32Array */
41195 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
41197 /** @namespace Symmetric ciphers. */
41200 /** @namespace Hash functions. Right now only SHA256 is implemented. */
41203 /** @namespace Key exchange functions. Right now only SRP is implemented. */
41206 /** @namespace Block cipher modes of operation. */
41209 /** @namespace Miscellaneous. HMAC and PBKDF2. */
41213 * @namespace Bit array encoders and decoders.
41216 * The members of this namespace are functions which translate between
41217 * SJCL's bitArrays and other objects (usually strings). Because it
41218 * isn't always clear which direction is encoding and which is decoding,
41219 * the method names are "fromBits" and "toBits".
41223 /** @namespace Exceptions. */
41225 /** @constructor Ciphertext is corrupt. */
41226 corrupt: function(message) {
41227 this.toString = function() { return "CORRUPT: "+this.message; };
41228 this.message = message;
41231 /** @constructor Invalid parameter. */
41232 invalid: function(message) {
41233 this.toString = function() { return "INVALID: "+this.message; };
41234 this.message = message;
41237 /** @constructor Bug or missing feature in SJCL. @constructor */
41238 bug: function(message) {
41239 this.toString = function() { return "BUG: "+this.message; };
41240 this.message = message;
41243 /** @constructor Something isn't ready. */
41244 notReady: function(message) {
41245 this.toString = function() { return "NOT READY: "+this.message; };
41246 this.message = message;
41251 if(typeof module !== 'undefined' && module.exports){
41252 module.exports = sjcl;
41254 if (typeof define === "function") {
41255 define([], function () {
41263 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
41265 * @author Emily Stark
41266 * @author Mike Hamburg
41267 * @author Dan Boneh
41270 /** @namespace Arrays of bits, encoded as arrays of Numbers.
41274 * These objects are the currency accepted by SJCL's crypto functions.
41278 * Most of our crypto primitives operate on arrays of
4-byte words internally,
41279 * but many of them can take arguments that are not a multiple of
4 bytes.
41280 * This library encodes arrays of bits (whose size need not be a multiple of
8
41281 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
41282 * array of words,
32 bits at a time. Since the words are double-precision
41283 * floating point numbers, they fit some extra data. We use this (in a private,
41284 * possibly-changing manner) to encode the number of bits actually present
41285 * in the last word of the array.
41289 * Because bitwise ops clear this out-of-band data, these arrays can be passed
41290 * to ciphers like AES which want arrays of words.
41295 * Array slices in units of bits.
41296 * @param {bitArray} a The array to slice.
41297 * @param {Number} bstart The offset to the start of the slice, in bits.
41298 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
41299 * slice until the end of the array.
41300 * @return {bitArray} The requested slice.
41302 bitSlice: function (a, bstart, bend) {
41303 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
41304 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
41308 * Extract a number packed into a bit array.
41309 * @param {bitArray} a The array to slice.
41310 * @param {Number} bstart The offset to the start of the slice, in bits.
41311 * @param {Number} length The length of the number to extract.
41312 * @return {Number} The requested slice.
41314 extract: function(a, bstart, blength) {
41315 // FIXME: this Math.floor is not necessary at all, but for some reason
41316 // seems to suppress a bug in the Chromium JIT.
41317 var x, sh = Math.floor((-bstart-blength) &
31);
41318 if ((bstart + blength -
1 ^ bstart) & -
32) {
41319 // it crosses a boundary
41320 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
41322 // within a single word
41323 x = a[bstart/
32|
0]
>>> sh;
41325 return x & ((
1<
<blength) -
1);
41329 * Concatenate two bit arrays.
41330 * @param {bitArray} a1 The first array.
41331 * @param {bitArray} a2 The second array.
41332 * @return {bitArray} The concatenation of a1 and a2.
41334 concat: function (a1, a2) {
41335 if (a1.length ===
0 || a2.length ===
0) {
41336 return a1.concat(a2);
41339 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
41340 if (shift ===
32) {
41341 return a1.concat(a2);
41343 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
41348 * Find the length of an array of bits.
41349 * @param {bitArray} a The array.
41350 * @return {Number} The length of a, in bits.
41352 bitLength: function (a) {
41353 var l = a.length, x;
41354 if (l ===
0) { return
0; }
41356 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
41360 * Truncate an array.
41361 * @param {bitArray} a The array.
41362 * @param {Number} len The length to truncate to, in bits.
41363 * @return {bitArray} A new array, truncated to len bits.
41365 clamp: function (a, len) {
41366 if (a.length *
32 < len) { return a; }
41367 a = a.slice(
0, Math.ceil(len /
32));
41370 if (l
> 0 && len) {
41371 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
41377 * Make a partial word for a bit array.
41378 * @param {Number} len The number of bits in the word.
41379 * @param {Number} x The bits.
41380 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
41381 * @return {Number} The partial word.
41383 partial: function (len, x, _end) {
41384 if (len ===
32) { return x; }
41385 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
41389 * Get the number of bits used by a partial word.
41390 * @param {Number} x The partial word.
41391 * @return {Number} The number of bits used by the partial word.
41393 getPartial: function (x) {
41394 return Math.round(x/
0x10000000000) ||
32;
41398 * Compare two arrays for equality in a predictable amount of time.
41399 * @param {bitArray} a The first array.
41400 * @param {bitArray} b The second array.
41401 * @return {boolean} true if a == b; false otherwise.
41403 equal: function (a, b) {
41404 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
41408 for (i=
0; i
<a.length; i++) {
41414 /** Shift an array right.
41415 * @param {bitArray} a The array to shift.
41416 * @param {Number} shift The number of bits to shift.
41417 * @param {Number} [carry=
0] A byte to carry in
41418 * @param {bitArray} [out=[]] An array to prepend to the output.
41421 _shiftRight: function (a, shift, carry, out) {
41422 var i, last2=
0, shift2;
41423 if (out === undefined) { out = []; }
41425 for (; shift
>=
32; shift -=
32) {
41430 return out.concat(a);
41433 for (i=
0; i
<a.length; i++) {
41434 out.push(carry | a[i]
>>>shift);
41435 carry = a[i] << (
32-shift);
41437 last2 = a.length ? a[a.length-
1] :
0;
41438 shift2 = sjcl.bitArray.getPartial(last2);
41439 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
41443 /** xor a block of
4 words together.
41446 _xor4: function(x,y) {
41447 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
41450 /** byteswap a word array inplace.
41451 * (does not handle partial words)
41452 * @param {sjcl.bitArray} a word array
41453 * @return {sjcl.bitArray} byteswapped array
41455 byteswapM: function(a) {
41456 var i, v, m =
0xff00;
41457 for (i =
0; i < a.length; ++i) {
41459 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
41466 //// codecString.js
41468 /** @fileOverview Bit array codec implementations.
41470 * @author Emily Stark
41471 * @author Mike Hamburg
41472 * @author Dan Boneh
41475 /** @namespace UTF-
8 strings */
41476 sjcl.codec.utf8String = {
41477 /** Convert from a bitArray to a UTF-
8 string. */
41478 fromBits: function (arr) {
41479 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
41480 for (i=
0; i
<bl/
8; i++) {
41484 out += String.fromCharCode(tmp
>>> 24);
41487 return decodeURIComponent(escape(out));
41490 /** Convert from a UTF-
8 string to a bitArray. */
41491 toBits: function (str) {
41492 str = unescape(encodeURIComponent(str));
41493 var out = [], i, tmp=
0;
41494 for (i=
0; i
<str.length; i++) {
41495 tmp = tmp <<
8 | str.charCodeAt(i);
41502 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
41511 /** @fileOverview Bit array codec implementations.
41513 * @author Emily Stark
41514 * @author Mike Hamburg
41515 * @author Dan Boneh
41518 /** @namespace Hexadecimal */
41520 /** Convert from a bitArray to a hex string. */
41521 fromBits: function (arr) {
41523 for (i=
0; i
<arr.length; i++) {
41524 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
41526 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
41528 /** Convert from a hex string to a bitArray. */
41529 toBits: function (str) {
41530 var i, out=[], len;
41531 str = str.replace(/\s|
0x/g,
"");
41533 str = str +
"00000000";
41534 for (i=
0; i
<str.length; i+=
8) {
41535 out.push(parseInt(str.substr(i,
8),
16)^
0);
41537 return sjcl.bitArray.clamp(out, len*
4);
41544 /** @fileOverview Javascript SHA-
512 implementation.
41546 * This implementation was written for CryptoJS by Jeff Mott and adapted for
41547 * SJCL by Stefan Thomas.
41549 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
41550 * Released with New BSD License
41552 * @author Emily Stark
41553 * @author Mike Hamburg
41554 * @author Dan Boneh
41555 * @author Jeff Mott
41556 * @author Stefan Thomas
41560 * Context for a SHA-
512 operation in progress.
41562 * @class Secure Hash Algorithm,
512 bits.
41564 sjcl.hash.sha512 = function (hash) {
41565 if (!this._key[
0]) { this._precompute(); }
41567 this._h = hash._h.slice(
0);
41568 this._buffer = hash._buffer.slice(
0);
41569 this._length = hash._length;
41576 * Hash a string or an array of words.
41578 * @param {bitArray|String} data the data to hash.
41579 * @return {bitArray} The hash value, an array of
16 big-endian words.
41581 sjcl.hash.sha512.hash = function (data) {
41582 return (new sjcl.hash.sha512()).update(data).finalize();
41585 sjcl.hash.sha512.prototype = {
41587 * The hash's block size, in bits.
41593 * Reset the hash state.
41596 reset:function () {
41597 this._h = this._init.slice(
0);
41604 * Input several words to the hash.
41605 * @param {bitArray|String} data the data to hash.
41608 update: function (data) {
41609 if (typeof data ===
"string") {
41610 data = sjcl.codec.utf8String.toBits(data);
41612 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
41614 nl = this._length = ol + sjcl.bitArray.bitLength(data);
41615 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
41616 this._block(b.splice(
0,
32));
41622 * Complete hashing and output the hash value.
41623 * @return {bitArray} The hash value, an array of
16 big-endian words.
41625 finalize:function () {
41626 var i, b = this._buffer, h = this._h;
41628 // Round out and push the buffer
41629 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
41631 // Round out the buffer to a multiple of
32 words, less the
4 length words.
41632 for (i = b.length +
4; i &
31; i++) {
41636 // append the length
41639 b.push(Math.floor(this._length /
0x100000000));
41640 b.push(this._length |
0);
41643 this._block(b.splice(
0,
32));
41651 * The SHA-
512 initialization vector, to be precomputed.
41657 * Least significant
24 bits of SHA512 initialization values.
41659 * Javascript only has
53 bits of precision, so we compute the
40 most
41660 * significant bits and add the remaining
24 bits as constants.
41664 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
41668 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
41669 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
41673 * The SHA-
512 hash key, to be precomputed.
41679 * Least significant
24 bits of SHA512 key values.
41683 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
41684 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
41685 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
41686 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
41687 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
41688 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
41689 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
41690 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
41691 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
41692 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
41696 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
41697 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
41698 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
41699 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
41700 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
41701 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
41702 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
41703 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
41704 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
41705 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
41706 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
41707 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
41708 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
41709 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
41710 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
41711 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
41712 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
41713 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
41714 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
41715 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
41719 * Function to precompute _init and _key.
41722 _precompute: function () {
41723 // XXX: This code is for precomputing the SHA256 constants, change for
41724 // SHA512 and re-enable.
41725 var i =
0, prime =
2, factor;
41727 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
41728 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
41730 outer: for (; i
<80; prime++) {
41731 for (factor=
2; factor*factor <= prime; factor++) {
41732 if (prime % factor ===
0) {
41739 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
41740 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
41742 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
41743 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
41749 * Perform one cycle of SHA-
512.
41750 * @param {bitArray} words one block of words.
41753 _block:function (words) {
41755 w = words.slice(
0),
41758 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
41759 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
41760 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
41761 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
41763 // Working variables
41764 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
41765 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
41766 eh = h4h, el = h4l, fh = h5h, fl = h5l,
41767 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
41769 for (i=
0; i
<80; i++) {
41770 // load up the input word for this round
41773 wrl = w[i *
2 +
1];
41776 var gamma0xh = w[(i-
15) *
2];
41777 var gamma0xl = w[(i-
15) *
2 +
1];
41779 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
41780 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
41783 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
41784 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
41785 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
41788 var gamma1xh = w[(i-
2) *
2];
41789 var gamma1xl = w[(i-
2) *
2 +
1];
41791 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
41792 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
41795 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
41796 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
41797 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
41800 var wr7h = w[(i-
7) *
2];
41801 var wr7l = w[(i-
7) *
2 +
1];
41803 var wr16h = w[(i-
16) *
2];
41804 var wr16l = w[(i-
16) *
2 +
1];
41806 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
41807 wrl = gamma0l + wr7l;
41808 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
41810 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
41812 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
41816 w[i*
2 +
1] = wrl |=
0;
41819 var chh = (eh & fh) ^ (~eh & gh);
41820 var chl = (el & fl) ^ (~el & gl);
41823 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
41824 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
41827 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
41828 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
41831 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
41832 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
41836 var krl = k[i*
2+
1];
41838 // t1 = h + sigma1 + ch + K(round) + W(round)
41839 var t1l = hl + sigma1l;
41840 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
41842 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
41844 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
41845 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
41846 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
41848 // t2 = sigma0 + maj
41849 var t2l = sigma0l + majl;
41850 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
41852 // Update working variables
41859 el = (dl + t1l) |
0;
41860 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41867 al = (t1l + t2l) |
0;
41868 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
41871 // Intermediate hash
41872 h0l = h[
1] = (h0l + al) |
0;
41873 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
41874 h1l = h[
3] = (h1l + bl) |
0;
41875 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
41876 h2l = h[
5] = (h2l + cl) |
0;
41877 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
41878 h3l = h[
7] = (h3l + dl) |
0;
41879 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41880 h4l = h[
9] = (h4l + el) |
0;
41881 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
41882 h5l = h[
11] = (h5l + fl) |
0;
41883 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
41884 h6l = h[
13] = (h6l + gl) |
0;
41885 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
41886 h7l = h[
15] = (h7l + hl) |
0;
41887 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
41894 /** @fileOverview HMAC implementation.
41896 * @author Emily Stark
41897 * @author Mike Hamburg
41898 * @author Dan Boneh
41901 /** HMAC with the specified hash function.
41903 * @param {bitArray} key the key for HMAC.
41904 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
41906 sjcl.misc.hmac = function (key, Hash) {
41907 this._hash = Hash = Hash || sjcl.hash.sha256;
41908 var exKey = [[],[]], i,
41909 bs = Hash.prototype.blockSize /
32;
41910 this._baseHash = [new Hash(), new Hash()];
41912 if (key.length
> bs) {
41913 key = Hash.hash(key);
41916 for (i=
0; i
<bs; i++) {
41917 exKey[
0][i] = key[i]^
0x36363636;
41918 exKey[
1][i] = key[i]^
0x5C5C5C5C;
41921 this._baseHash[
0].update(exKey[
0]);
41922 this._baseHash[
1].update(exKey[
1]);
41923 this._resultHash = new Hash(this._baseHash[
0]);
41926 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
41927 * @param {bitArray|String} data The data to mac.
41929 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
41930 if (!this._updated) {
41932 return this.digest(data);
41934 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
41938 sjcl.misc.hmac.prototype.reset = function () {
41939 this._resultHash = new this._hash(this._baseHash[
0]);
41940 this._updated = false;
41943 sjcl.misc.hmac.prototype.update = function (data) {
41944 this._updated = true;
41945 this._resultHash.update(data);
41948 sjcl.misc.hmac.prototype.digest = function () {
41949 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
41960 /** @fileOverview Password-based key-derivation function, version
2.0.
41962 * @author Emily Stark
41963 * @author Mike Hamburg
41964 * @author Dan Boneh
41967 /** Password-Based Key-Derivation Function, version
2.0.
41969 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
41971 * This is the method specified by RSA's PKCS #
5 standard.
41973 * @param {bitArray|String} password The password.
41974 * @param {bitArray|String} salt The salt. Should have lots of entropy.
41975 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
41976 * @param {Number} [length] The length of the derived key. Defaults to the
41977 output size of the hash function.
41978 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
41979 * @return {bitArray} the derived key.
41981 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
41982 count = count ||
1000;
41984 if (length <
0 || count <
0) {
41985 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
41988 if (typeof password ===
"string") {
41989 password = sjcl.codec.utf8String.toBits(password);
41992 if (typeof salt ===
"string") {
41993 salt = sjcl.codec.utf8String.toBits(salt);
41996 Prff = Prff || sjcl.misc.hmac;
41998 var prf = new Prff(password),
41999 u, ui, i, j, k, out = [], b = sjcl.bitArray;
42001 for (k =
1;
32 * out.length < (length ||
1); k++) {
42002 u = ui = prf.encrypt(b.concat(salt,[k]));
42004 for (i=
1; i
<count; i++) {
42005 ui = prf.encrypt(ui);
42006 for (j=
0; j
<ui.length; j++) {
42011 out = out.concat(u);
42014 if (length) { out = b.clamp(out, length); }
42022 /** @fileOverview Javascript SHA-
256 implementation.
42024 * An older version of this implementation is available in the public
42025 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
42026 * Stanford University
2008-
2010 and BSD-licensed for liability
42029 * Special thanks to Aldo Cortesi for pointing out several bugs in
42032 * @author Emily Stark
42033 * @author Mike Hamburg
42034 * @author Dan Boneh
42038 * Context for a SHA-
256 operation in progress.
42040 * @class Secure Hash Algorithm,
256 bits.
42042 sjcl.hash.sha256 = function (hash) {
42043 if (!this._key[
0]) { this._precompute(); }
42045 this._h = hash._h.slice(
0);
42046 this._buffer = hash._buffer.slice(
0);
42047 this._length = hash._length;
42054 * Hash a string or an array of words.
42056 * @param {bitArray|String} data the data to hash.
42057 * @return {bitArray} The hash value, an array of
16 big-endian words.
42059 sjcl.hash.sha256.hash = function (data) {
42060 return (new sjcl.hash.sha256()).update(data).finalize();
42063 sjcl.hash.sha256.prototype = {
42065 * The hash's block size, in bits.
42071 * Reset the hash state.
42074 reset:function () {
42075 this._h = this._init.slice(
0);
42082 * Input several words to the hash.
42083 * @param {bitArray|String} data the data to hash.
42086 update: function (data) {
42087 if (typeof data ===
"string") {
42088 data = sjcl.codec.utf8String.toBits(data);
42090 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
42092 nl = this._length = ol + sjcl.bitArray.bitLength(data);
42093 for (i =
512+ol & -
512; i <= nl; i+=
512) {
42094 this._block(b.splice(
0,
16));
42100 * Complete hashing and output the hash value.
42101 * @return {bitArray} The hash value, an array of
8 big-endian words.
42103 finalize:function () {
42104 var i, b = this._buffer, h = this._h;
42106 // Round out and push the buffer
42107 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
42109 // Round out the buffer to a multiple of
16 words, less the
2 length words.
42110 for (i = b.length +
2; i &
15; i++) {
42114 // append the length
42115 b.push(Math.floor(this._length /
0x100000000));
42116 b.push(this._length |
0);
42119 this._block(b.splice(
0,
16));
42127 * The SHA-
256 initialization vector, to be precomputed.
42132 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
42136 * The SHA-
256 hash key, to be precomputed.
42142 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
42143 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
42144 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
42145 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
42146 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
42147 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
42148 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
42149 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
42154 * Function to precompute _init and _key.
42157 _precompute: function () {
42158 var i =
0, prime =
2, factor;
42160 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
42162 outer: for (; i
<64; prime++) {
42163 for (factor=
2; factor*factor <= prime; factor++) {
42164 if (prime % factor ===
0) {
42171 this._init[i] = frac(Math.pow(prime,
1/
2));
42173 this._key[i] = frac(Math.pow(prime,
1/
3));
42179 * Perform one cycle of SHA-
256.
42180 * @param {bitArray} words one block of words.
42183 _block:function (words) {
42185 w = words.slice(
0),
42188 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
42189 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
42191 /* Rationale for placement of |
0 :
42192 * If a value can overflow is original
32 bits by a factor of more than a few
42193 * million (
2^
23 ish), there is a possibility that it might overflow the
42194 *
53-bit mantissa and lose precision.
42196 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
42197 * propagates around the loop, and on the hash state h[]. I don't believe
42198 * that the clamps on h4 and on h0 are strictly necessary, but it's close
42199 * (for h4 anyway), and better safe than sorry.
42201 * The clamps on h[] are necessary for the output to be correct even in the
42202 * common case and for short inputs.
42204 for (i=
0; i
<64; i++) {
42205 // load up the input word for this round
42209 a = w[(i+
1 ) &
15];
42210 b = w[(i+
14) &
15];
42211 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
42212 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
42213 w[i&
15] + w[(i+
9) &
15]) |
0;
42216 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
42219 h7 = h6; h6 = h5; h5 = h4;
42221 h3 = h2; h2 = h1; h1 = h0;
42223 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
42226 h[
0] = h[
0]+h0 |
0;
42227 h[
1] = h[
1]+h1 |
0;
42228 h[
2] = h[
2]+h2 |
0;
42229 h[
3] = h[
3]+h3 |
0;
42230 h[
4] = h[
4]+h4 |
0;
42231 h[
5] = h[
5]+h5 |
0;
42232 h[
6] = h[
6]+h6 |
0;
42233 h[
7] = h[
7]+h7 |
0;
42237 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42238 WORDLISTS["english"] = [
42239 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
42240 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
42241 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
42242 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
42243 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
42244 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
42245 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
42246 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
42247 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
42248 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
42249 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
42250 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
42251 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
42252 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
42253 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
42254 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
42255 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
42256 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
42257 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
42258 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
42259 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
42260 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
42261 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
42262 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
42263 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
42264 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
42265 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
42266 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
42267 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
42268 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
42269 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
42270 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
42271 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
42272 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
42273 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
42274 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
42275 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
42276 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
42277 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
42278 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
42279 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
42280 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
42281 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
42282 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
42283 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
42284 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
42285 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
42286 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
42287 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
42288 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
42289 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
42290 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
42291 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
42292 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
42293 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
42294 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
42295 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
42296 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
42297 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
42298 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
42299 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
42300 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
42301 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
42302 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
42303 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
42304 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
42305 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
42306 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
42307 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
42308 "film","filter","final","find","fine","finger","finish","fire","firm","first",
42309 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
42310 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
42311 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
42312 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
42313 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
42314 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
42315 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
42316 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
42317 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
42318 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
42319 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
42320 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
42321 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
42322 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
42323 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
42324 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
42325 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
42326 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
42327 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
42328 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
42329 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
42330 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
42331 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
42332 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
42333 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
42334 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
42335 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
42336 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
42337 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
42338 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
42339 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
42340 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
42341 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
42342 "liar","liberty","library","license","life","lift","light","like","limb","limit",
42343 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
42344 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
42345 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
42346 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
42347 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
42348 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
42349 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
42350 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
42351 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
42352 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
42353 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
42354 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
42355 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
42356 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
42357 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
42358 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
42359 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
42360 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
42361 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
42362 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
42363 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
42364 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
42365 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
42366 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
42367 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
42368 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
42369 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
42370 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
42371 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
42372 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
42373 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
42374 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
42375 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
42376 "prize","problem","process","produce","profit","program","project","promote","proof","property",
42377 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
42378 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
42379 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
42380 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
42381 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
42382 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
42383 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
42384 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
42385 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
42386 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
42387 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
42388 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
42389 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
42390 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
42391 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
42392 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
42393 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
42394 "scrub","sea","search","season","seat","second","secret","section","security","seed",
42395 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
42396 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
42397 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
42398 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
42399 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
42400 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
42401 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
42402 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
42403 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
42404 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
42405 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
42406 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
42407 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
42408 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
42409 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
42410 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
42411 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
42412 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
42413 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
42414 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
42415 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
42416 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
42417 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
42418 "thank","that","theme","then","theory","there","they","thing","this","thought",
42419 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
42420 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
42421 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
42422 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
42423 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
42424 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
42425 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
42426 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
42427 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
42428 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
42429 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
42430 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
42431 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
42432 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
42433 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
42434 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
42435 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
42436 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
42437 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
42438 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
42439 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
42440 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
42441 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
42442 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
42443 "yellow","you","young","youth","zebra","zero","zone","zoo"]
42445 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42446 WORDLISTS["japanese"] = [
42447 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
42448 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
42449 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
42450 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
42451 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
42452 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
42453 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
42454 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
42455 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
42456 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
42457 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
42458 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
42459 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
42460 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
42461 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
42462 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
42463 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
42464 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
42465 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
42466 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
42467 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
42468 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
42469 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
42470 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
42471 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
42472 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
42473 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
42474 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
42475 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
42476 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
42477 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
42478 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
42479 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
42480 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
42481 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
42482 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
42483 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
42484 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
42485 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
42486 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
42487 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
42488 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
42489 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
42490 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
42491 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
42492 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
42493 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
42494 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
42495 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
42496 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
42497 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
42498 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
42499 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
42500 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
42501 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
42502 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
42503 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
42504 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
42505 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
42506 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
42507 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
42508 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
42509 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
42510 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
42511 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
42512 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
42513 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
42514 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
42515 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
42516 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
42517 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
42518 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
42519 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
42520 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
42521 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
42522 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
42523 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
42524 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
42525 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
42526 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
42527 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
42528 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
42529 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
42530 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
42531 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
42532 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
42533 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
42534 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
42535 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
42536 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
42537 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
42538 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
42539 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
42540 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
42541 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
42542 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
42543 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
42544 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
42545 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
42546 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
42547 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
42548 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
42549 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
42550 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
42551 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
42552 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
42553 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
42554 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
42555 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
42556 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
42557 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
42558 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
42559 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
42560 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
42561 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
42562 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
42563 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
42564 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
42565 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
42566 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
42567 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
42568 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
42569 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
42570 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
42571 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
42572 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
42573 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
42574 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
42575 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
42576 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
42577 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
42578 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
42579 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
42580 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
42581 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
42582 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
42583 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
42584 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
42585 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
42586 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
42587 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
42588 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
42589 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
42590 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
42591 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
42592 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
42593 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
42594 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
42595 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
42596 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
42597 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
42598 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
42599 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
42600 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
42601 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
42602 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
42603 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
42604 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
42605 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
42606 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
42607 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
42608 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
42609 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
42610 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
42611 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
42612 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
42613 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
42614 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
42615 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
42616 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
42617 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
42618 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
42619 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
42620 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
42621 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
42622 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
42623 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
42624 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
42625 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
42626 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
42627 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
42628 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
42629 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
42630 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
42631 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
42632 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
42633 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
42634 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
42635 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
42636 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
42637 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
42638 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
42639 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
42640 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
42641 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
42642 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
42643 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
42644 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
42645 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
42646 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
42647 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
42648 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
42649 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
42650 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
42651 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
42653 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42654 WORDLISTS["spanish"] = [
42655 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
42656 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
42657 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
42658 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
42659 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
42660 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
42661 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
42662 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
42663 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
42664 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
42665 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
42666 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
42667 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
42668 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
42669 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
42670 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
42671 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
42672 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
42673 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
42674 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
42675 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
42676 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
42677 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
42678 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
42679 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
42680 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
42681 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
42682 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
42683 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
42684 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
42685 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
42686 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
42687 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
42688 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
42689 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
42690 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
42691 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
42692 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
42693 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
42694 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
42695 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
42696 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
42697 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
42698 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
42699 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
42700 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
42701 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
42702 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
42703 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
42704 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
42705 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
42706 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
42707 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
42708 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
42709 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
42710 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
42711 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
42712 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
42713 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
42714 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
42715 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
42716 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
42717 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
42718 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
42719 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
42720 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
42721 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
42722 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
42723 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
42724 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
42725 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
42726 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
42727 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
42728 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
42729 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
42730 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
42731 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
42732 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
42733 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
42734 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
42735 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
42736 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
42737 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
42738 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
42739 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
42740 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
42741 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
42742 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
42743 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
42744 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
42745 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
42746 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
42747 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
42748 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
42749 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
42750 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
42751 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
42752 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
42753 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
42754 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
42755 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
42756 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
42757 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
42758 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
42759 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
42760 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
42761 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
42762 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
42763 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
42764 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
42765 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
42766 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
42767 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
42768 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
42769 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
42770 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
42771 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
42772 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
42773 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
42774 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
42775 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
42776 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
42777 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
42778 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
42779 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
42780 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
42781 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
42782 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
42783 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
42784 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
42785 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
42786 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
42787 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
42788 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
42789 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
42790 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
42791 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
42792 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
42793 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
42794 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
42795 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
42796 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
42797 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
42798 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
42799 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
42800 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
42801 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
42802 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
42803 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
42804 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
42805 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
42806 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
42807 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
42808 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
42809 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
42810 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
42811 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
42812 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
42813 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
42814 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
42815 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
42816 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
42817 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
42818 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
42819 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
42820 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
42821 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
42822 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
42823 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
42824 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
42825 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
42826 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
42827 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
42828 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
42829 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
42830 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
42831 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
42832 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
42833 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
42834 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
42835 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
42836 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
42837 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
42838 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
42839 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
42840 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
42841 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
42842 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
42843 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
42844 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
42845 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
42846 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
42847 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
42848 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
42849 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
42850 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
42851 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
42852 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
42853 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
42854 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
42855 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
42856 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
42857 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
42858 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
42859 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
42861 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42862 WORDLISTS["chinese_simplified"] = [
42863 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
42864 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
42865 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
42866 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
42867 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
42868 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
42869 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
42870 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
42871 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
42872 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
42873 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
42874 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
42875 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
42876 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
42877 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
42878 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
42879 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
42880 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
42881 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
42882 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
42883 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
42884 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
42885 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
42886 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
42887 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
42888 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
42889 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
42890 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
42891 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
42892 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
42893 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
42894 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
42895 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
42896 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
42897 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
42898 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
42899 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
42900 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
42901 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
42902 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
42903 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
42904 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
42905 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
42906 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
42907 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
42908 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
42909 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
42910 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
42911 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
42912 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
42913 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
42914 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
42915 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
42916 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
42917 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
42918 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
42919 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
42920 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
42921 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
42922 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
42923 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
42924 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
42925 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
42926 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
42927 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
42928 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
42929 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
42930 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
42931 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
42932 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
42933 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
42934 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
42935 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
42936 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
42937 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
42938 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
42939 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
42940 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
42941 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
42942 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
42943 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
42944 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
42945 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
42946 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
42947 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
42948 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
42949 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
42950 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
42951 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
42952 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
42953 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
42954 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
42955 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
42956 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
42957 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
42958 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
42959 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
42960 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
42961 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
42962 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
42963 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
42964 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
42965 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
42966 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
42967 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
42968 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
42969 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
42970 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
42971 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
42972 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
42973 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
42974 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
42975 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
42976 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
42977 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
42978 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
42979 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
42980 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
42981 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
42982 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
42983 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
42984 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
42985 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
42986 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
42987 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
42988 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
42989 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
42990 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
42991 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
42992 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
42993 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
42994 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
42995 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
42996 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
42997 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
42998 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
42999 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
43000 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
43001 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
43002 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
43003 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
43004 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
43005 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
43006 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
43007 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
43008 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
43009 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
43010 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
43011 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
43012 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
43013 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
43014 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
43015 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
43016 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
43017 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
43018 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
43019 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
43020 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
43021 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
43022 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
43023 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
43024 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
43025 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
43026 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
43027 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
43028 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
43029 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
43030 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
43031 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
43032 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
43033 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
43034 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
43035 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
43036 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
43037 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
43038 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
43039 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
43040 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
43041 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
43042 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
43043 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
43044 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
43045 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
43046 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
43047 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
43048 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
43049 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
43050 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
43051 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
43052 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
43053 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
43054 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
43055 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
43056 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
43057 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
43058 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
43059 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
43060 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
43061 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
43062 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
43063 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
43064 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
43065 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
43066 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
43067 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
43069 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43070 WORDLISTS["chinese_traditional"] = [
43071 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
43072 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
43073 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
43074 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
43075 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
43076 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
43077 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
43078 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
43079 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
43080 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
43081 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
43082 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43083 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
43084 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
43085 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
43086 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
43087 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
43088 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
43089 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
43090 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
43091 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
43092 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
43093 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
43094 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
43095 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
43096 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
43097 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
43098 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
43099 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
43100 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
43101 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
43102 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
43103 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
43104 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
43105 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
43106 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
43107 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
43108 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
43109 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
43110 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
43111 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
43112 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
43113 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
43114 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
43115 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
43116 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
43117 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
43118 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
43119 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
43120 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
43121 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
43122 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
43123 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
43124 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
43125 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
43126 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
43127 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
43128 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
43129 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
43130 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
43131 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
43132 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
43133 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
43134 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
43135 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
43136 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
43137 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
43138 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
43139 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
43140 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
43141 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
43142 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
43143 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
43144 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
43145 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
43146 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
43147 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
43148 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
43149 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
43150 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
43151 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
43152 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
43153 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
43154 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
43155 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
43156 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
43157 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
43158 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
43159 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
43160 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
43161 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
43162 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
43163 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
43164 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
43165 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
43166 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
43167 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
43168 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
43169 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
43170 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
43171 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
43172 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
43173 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
43174 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
43175 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
43176 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
43177 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
43178 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
43179 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
43180 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
43181 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
43182 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
43183 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
43184 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
43185 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
43186 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
43187 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
43188 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
43189 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
43190 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
43191 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
43192 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
43193 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
43194 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
43195 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
43196 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
43197 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
43198 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
43199 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
43200 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
43201 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
43202 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
43203 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
43204 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
43205 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
43206 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
43207 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
43208 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
43209 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
43210 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
43211 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
43212 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
43213 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
43214 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
43215 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
43216 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
43217 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
43218 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
43219 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
43220 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
43221 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
43222 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
43223 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
43224 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
43225 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
43226 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
43227 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
43228 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
43229 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
43230 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
43231 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
43232 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
43233 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
43234 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
43235 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
43236 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
43237 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
43238 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
43239 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
43240 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
43241 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
43242 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
43243 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
43244 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
43245 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
43246 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
43247 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
43248 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
43249 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
43250 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
43251 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
43252 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
43253 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
43254 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
43255 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
43256 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
43257 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
43258 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
43259 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
43260 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
43261 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
43262 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
43263 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
43264 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
43265 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
43266 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
43267 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
43268 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
43269 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
43270 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
43271 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
43272 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
43273 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
43274 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
43275 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
43277 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43278 WORDLISTS["french"] = [
43279 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
43280 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
43281 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
43282 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
43283 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
43284 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
43285 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
43286 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
43287 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
43288 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
43289 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
43290 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
43291 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
43292 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
43293 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
43294 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
43295 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
43296 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
43297 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
43298 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
43299 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
43300 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
43301 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
43302 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
43303 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
43304 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
43305 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
43306 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
43307 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
43308 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
43309 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
43310 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
43311 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
43312 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
43313 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
43314 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
43315 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
43316 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
43317 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
43318 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
43319 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
43320 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
43321 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
43322 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
43323 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
43324 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
43325 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
43326 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
43327 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
43328 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
43329 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
43330 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
43331 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
43332 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
43333 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
43334 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
43335 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
43336 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
43337 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
43338 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
43339 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
43340 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
43341 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
43342 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
43343 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
43344 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
43345 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
43346 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
43347 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
43348 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
43349 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
43350 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
43351 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
43352 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
43353 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
43354 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
43355 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
43356 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
43357 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
43358 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
43359 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
43360 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
43361 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
43362 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
43363 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
43364 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
43365 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
43366 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
43367 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
43368 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
43369 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
43370 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
43371 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
43372 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
43373 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
43374 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
43375 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
43376 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
43377 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
43378 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
43379 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
43380 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
43381 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
43382 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
43383 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
43384 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
43385 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
43386 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
43387 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
43388 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
43389 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
43390 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
43391 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
43392 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
43393 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
43394 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
43395 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
43396 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
43397 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
43398 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
43399 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
43400 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
43401 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
43402 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
43403 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
43404 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
43405 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
43406 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
43407 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
43408 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
43409 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
43410 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
43411 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
43412 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
43413 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
43414 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
43415 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
43416 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
43417 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
43418 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
43419 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
43420 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
43421 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
43422 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
43423 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
43424 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
43425 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
43426 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
43427 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
43428 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
43429 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
43430 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
43431 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
43432 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
43433 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
43434 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
43435 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
43436 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
43437 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
43438 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
43439 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
43440 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
43441 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
43442 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
43443 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
43444 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
43445 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
43446 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
43447 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
43448 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
43449 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
43450 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
43451 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
43452 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
43453 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
43454 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
43455 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
43456 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
43457 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
43458 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
43459 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
43460 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
43461 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
43462 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
43463 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
43464 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
43465 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
43466 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
43467 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
43468 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
43469 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
43470 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
43471 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
43472 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
43473 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
43474 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
43475 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
43476 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
43477 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
43478 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
43479 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
43480 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
43481 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
43482 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
43483 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
43485 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43486 WORDLISTS["italian"] = [
43487 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
43488 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
43489 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
43490 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
43491 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
43492 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
43493 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
43494 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
43495 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
43496 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
43497 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
43498 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
43499 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
43500 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
43501 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
43502 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
43503 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
43504 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
43505 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
43506 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
43507 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
43508 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
43509 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
43510 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
43511 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
43512 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
43513 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
43514 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
43515 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
43516 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
43517 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
43518 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
43519 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
43520 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
43521 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
43522 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
43523 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
43524 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
43525 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
43526 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
43527 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
43528 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
43529 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
43530 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
43531 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
43532 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
43533 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
43534 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
43535 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
43536 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
43537 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
43538 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
43539 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
43540 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
43541 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
43542 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
43543 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
43544 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
43545 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
43546 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
43547 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
43548 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
43549 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
43550 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
43551 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
43552 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
43553 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
43554 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
43555 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
43556 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
43557 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
43558 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
43559 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
43560 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
43561 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
43562 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
43563 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
43564 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
43565 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
43566 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
43567 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
43568 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
43569 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
43570 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
43571 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
43572 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
43573 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
43574 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
43575 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
43576 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
43577 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
43578 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
43579 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
43580 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
43581 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
43582 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
43583 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
43584 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
43585 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
43586 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
43587 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
43588 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
43589 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
43590 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
43591 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
43592 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
43593 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
43594 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
43595 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
43596 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
43597 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
43598 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
43599 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
43600 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
43601 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
43602 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
43603 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
43604 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
43605 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
43606 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
43607 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
43608 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
43609 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
43610 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
43611 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
43612 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
43613 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
43614 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
43615 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
43616 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
43617 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
43618 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
43619 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
43620 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
43621 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
43622 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
43623 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
43624 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
43625 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
43626 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
43627 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
43628 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
43629 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
43630 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
43631 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
43632 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
43633 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
43634 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
43635 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
43636 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
43637 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
43638 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
43639 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
43640 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
43641 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
43642 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
43643 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
43644 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
43645 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
43646 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
43647 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
43648 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
43649 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
43650 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
43651 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
43652 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
43653 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
43654 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
43655 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
43656 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
43657 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
43658 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
43659 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
43660 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
43661 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
43662 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
43663 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
43664 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
43665 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
43666 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
43667 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
43668 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
43669 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
43670 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
43671 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
43672 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
43673 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
43674 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
43675 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
43676 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
43677 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
43678 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
43679 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
43680 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
43681 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
43682 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
43683 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
43684 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
43685 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
43686 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
43687 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
43688 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
43689 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
43690 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
43691 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
43694 * Copyright (c)
2013 Pavol Rusnak
43696 * Permission is hereby granted, free of charge, to any person obtaining a copy of
43697 * this software and associated documentation files (the "Software"), to deal in
43698 * the Software without restriction, including without limitation the rights to
43699 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
43700 * of the Software, and to permit persons to whom the Software is furnished to do
43701 * so, subject to the following conditions:
43703 * The above copyright notice and this permission notice shall be included in all
43704 * copies or substantial portions of the Software.
43706 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43707 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
43708 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
43709 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43710 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
43711 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43715 * Javascript port from python by Ian Coleman
43717 * Requires code from sjcl
43718 * https://github.com/bitwiseshiftleft/sjcl
43721 var Mnemonic = function(language) {
43723 var PBKDF2_ROUNDS =
2048;
43729 var hmacSHA512 = function(key) {
43730 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
43731 this.encrypt = function() {
43732 return hasher.encrypt.apply(hasher, arguments);
43737 wordlist = WORDLISTS[language];
43738 if (wordlist.length != RADIX) {
43739 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
43744 self.generate = function(strength) {
43745 strength = strength ||
128;
43746 var r = strength %
32;
43748 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
43750 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
43751 if (!hasStrongCrypto) {
43752 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
43754 var buffer = new Uint8Array(strength /
8);
43755 var data = crypto.getRandomValues(buffer);
43756 return self.toMnemonic(data);
43759 self.toMnemonic = function(byteArray) {
43760 if (byteArray.length %
4 > 0) {
43761 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
43764 //h = hashlib.sha256(data).hexdigest()
43765 var data = byteArrayToWordArray(byteArray);
43766 var hash = sjcl.hash.sha256.hash(data);
43767 var h = sjcl.codec.hex.fromBits(hash);
43769 // b is a binary string, eg '
00111010101100...'
43770 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
43771 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
43773 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
43774 // c = bin(int(h,
16))[
2:].zfill(
256)
43775 // d = c[:len(data) *
8 /
32]
43776 var a = byteArrayToBinaryString(byteArray);
43777 var c = zfill(hexStringToBinaryString(h),
256);
43778 var d = c.substring(
0, byteArray.length *
8 /
32);
43779 // b = line1 + line2
43783 var blen = b.length /
11;
43784 for (var i=
0; i
<blen; i++) {
43785 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
43786 result.push(wordlist[idx]);
43788 return self.joinWords(result);
43791 self.check = function(mnemonic) {
43792 var mnemonic = self.splitWords(mnemonic);
43793 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
43796 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
43798 for (var i=
0; i
<mnemonic.length; i++) {
43799 var word = mnemonic[i];
43800 var wordIndex = wordlist.indexOf(word);
43801 if (wordIndex == -
1) {
43804 var binaryIndex = zfill(wordIndex.toString(
2),
11);
43805 idx.push(binaryIndex);
43807 var b = idx.join('');
43809 //d = b[:l /
33 *
32]
43811 var d = b.substring(
0, l /
33 *
32);
43812 var h = b.substring(l - l /
33, l);
43813 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
43814 var nd = binaryStringToWordArray(d);
43815 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
43816 var ndHash = sjcl.hash.sha256.hash(nd);
43817 var ndHex = sjcl.codec.hex.fromBits(ndHash);
43818 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
43819 var nh = ndBstr.substring(
0,l/
33);
43823 self.toSeed = function(mnemonic, passphrase) {
43824 passphrase = passphrase || '';
43825 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
43826 var mnemonicNormalized = self.normalizeString(mnemonic);
43827 passphrase = self.normalizeString(passphrase)
43828 passphrase =
"mnemonic" + passphrase;
43829 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
43830 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
43831 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
43832 var hashHex = sjcl.codec.hex.fromBits(result);
43836 self.splitWords = function(mnemonic) {
43837 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
43840 self.joinWords = function(words) {
43841 // Set space correctly depending on the language
43842 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
43844 if (language ==
"japanese") {
43845 space =
"\u3000"; // ideographic space
43847 return words.join(space);
43850 self.normalizeString = function(str) {
43851 if (typeof str.normalize ==
"function") {
43852 return str.normalize(
"NFKD");
43855 // TODO decide how to handle this in the future.
43856 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
43861 function byteArrayToWordArray(data) {
43863 for (var i=
0; i
<data.length/
4; i++) {
43865 v += data[i*
4 +
0] <<
8 *
3;
43866 v += data[i*
4 +
1] <<
8 *
2;
43867 v += data[i*
4 +
2] <<
8 *
1;
43868 v += data[i*
4 +
3] <<
8 *
0;
43874 function byteArrayToBinaryString(data) {
43876 for (var i=
0; i
<data.length; i++) {
43877 bin += zfill(data[i].toString(
2),
8);
43882 function hexStringToBinaryString(hexString) {
43884 for (var i=
0; i
<hexString.length; i++) {
43885 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
43887 return binaryString;
43890 function binaryStringToWordArray(binary) {
43891 var aLen = binary.length /
32;
43893 for (var i=
0; i
<aLen; i++) {
43894 var valueStr = binary.substring(
0,
32);
43895 var value = parseInt(valueStr,
2);
43897 binary = binary.slice(
32);
43902 // Pad a numeric string on the left with zero digits until the given width
43904 // Note this differs to the python implementation because it does not
43905 // handle numbers starting with a sign.
43906 function zfill(source, length) {
43907 source = source.toString();
43908 while (source.length < length) {
43909 source = '
0' + source;
43919 JavaScript BigInteger library version
0.9.1
43920 http://silentmatt.com/biginteger/
43922 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
43923 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
43924 Licensed under the MIT license.
43926 Support for arbitrary internal representation base was added by
43931 File: biginteger.js
43937 (function(exports) {
43941 An arbitrarily-large integer.
43943 <BigInteger> objects should be considered immutable. None of the "built-in"
43944 methods modify *this* or their arguments. All properties should be
43945 considered private.
43947 All the methods of
<BigInteger> instances can be called "statically". The
43948 static versions are convenient if you don't already have a
<BigInteger>
43951 As an example, these calls are equivalent.
43953 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
43954 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
43957 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
43960 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
43963 Constructor: BigInteger()
43964 Convert a value to a
<BigInteger>.
43966 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
43967 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
43968 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
43969 without a radix argument.
43971 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
43972 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
43973 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
43974 > var n3 = BigInteger(n2); // Return n2, unchanged
43976 The constructor form only takes an array and a sign. *n* must be an
43977 array of numbers in little-endian order, where each digit is between
0
43978 and BigInteger.base. The second parameter sets the sign: -
1 for
43979 negative, +
1 for positive, or
0 for zero. The array is *not copied and
43980 may be modified*. If the array contains only zeros, the sign parameter
43981 is ignored and is forced to zero.
43983 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
43987 n - Value to convert to a
<BigInteger>.
43991 A
<BigInteger> value.
43995 <parse>,
<BigInteger>
43997 function BigInteger(n, s, token) {
43998 if (token !== CONSTRUCT) {
43999 if (n instanceof BigInteger) {
44002 else if (typeof n === "undefined") {
44005 return BigInteger.parse(n);
44008 n = n || []; // Provide the nullary constructor for subclasses.
44009 while (n.length && !n[n.length -
1]) {
44013 this._s = n.length ? (s ||
1) :
0;
44016 BigInteger._construct = function(n, s) {
44017 return new BigInteger(n, s, CONSTRUCT);
44020 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
44021 // require base to be a power of
10.
10^
7 is the largest such power
44022 // that won't cause a precision loss when digits are multiplied.
44023 var BigInteger_base =
10000000;
44024 var BigInteger_base_log10 =
7;
44026 BigInteger.base = BigInteger_base;
44027 BigInteger.base_log10 = BigInteger_base_log10;
44029 var ZERO = new BigInteger([],
0, CONSTRUCT);
44032 BigInteger.ZERO = ZERO;
44034 var ONE = new BigInteger([
1],
1, CONSTRUCT);
44037 BigInteger.ONE = ONE;
44039 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
44041 //
<BigInteger> -
1.
44042 BigInteger.M_ONE = M_ONE;
44045 // Shortcut for
<ZERO>.
44046 BigInteger._0 = ZERO;
44049 // Shortcut for
<ONE>.
44050 BigInteger._1 = ONE;
44054 Array of
<BigIntegers> from
0 to
36.
44056 These are used internally for parsing, but useful when you need a "small"
44061 <ZERO>,
<ONE>,
<_0>,
<_1>
44063 BigInteger.small = [
44066 /* Assuming BigInteger_base
> 36 */
44067 new BigInteger( [
2],
1, CONSTRUCT),
44068 new BigInteger( [
3],
1, CONSTRUCT),
44069 new BigInteger( [
4],
1, CONSTRUCT),
44070 new BigInteger( [
5],
1, CONSTRUCT),
44071 new BigInteger( [
6],
1, CONSTRUCT),
44072 new BigInteger( [
7],
1, CONSTRUCT),
44073 new BigInteger( [
8],
1, CONSTRUCT),
44074 new BigInteger( [
9],
1, CONSTRUCT),
44075 new BigInteger([
10],
1, CONSTRUCT),
44076 new BigInteger([
11],
1, CONSTRUCT),
44077 new BigInteger([
12],
1, CONSTRUCT),
44078 new BigInteger([
13],
1, CONSTRUCT),
44079 new BigInteger([
14],
1, CONSTRUCT),
44080 new BigInteger([
15],
1, CONSTRUCT),
44081 new BigInteger([
16],
1, CONSTRUCT),
44082 new BigInteger([
17],
1, CONSTRUCT),
44083 new BigInteger([
18],
1, CONSTRUCT),
44084 new BigInteger([
19],
1, CONSTRUCT),
44085 new BigInteger([
20],
1, CONSTRUCT),
44086 new BigInteger([
21],
1, CONSTRUCT),
44087 new BigInteger([
22],
1, CONSTRUCT),
44088 new BigInteger([
23],
1, CONSTRUCT),
44089 new BigInteger([
24],
1, CONSTRUCT),
44090 new BigInteger([
25],
1, CONSTRUCT),
44091 new BigInteger([
26],
1, CONSTRUCT),
44092 new BigInteger([
27],
1, CONSTRUCT),
44093 new BigInteger([
28],
1, CONSTRUCT),
44094 new BigInteger([
29],
1, CONSTRUCT),
44095 new BigInteger([
30],
1, CONSTRUCT),
44096 new BigInteger([
31],
1, CONSTRUCT),
44097 new BigInteger([
32],
1, CONSTRUCT),
44098 new BigInteger([
33],
1, CONSTRUCT),
44099 new BigInteger([
34],
1, CONSTRUCT),
44100 new BigInteger([
35],
1, CONSTRUCT),
44101 new BigInteger([
36],
1, CONSTRUCT)
44104 // Used for parsing/radix conversion
44105 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
44109 Convert a
<BigInteger> to a string.
44111 When *base* is greater than
10, letters are upper case.
44115 base - Optional base to represent the number in (default is base
10).
44116 Must be between
2 and
36 inclusive, or an Error will be thrown.
44120 The string representation of the
<BigInteger>.
44122 BigInteger.prototype.toString = function(base) {
44123 base = +base ||
10;
44124 if (base <
2 || base
> 36) {
44125 throw new Error(
"illegal radix " + base +
".");
44127 if (this._s ===
0) {
44131 var str = this._s <
0 ?
"-" :
"";
44132 str += this._d[this._d.length -
1].toString();
44133 for (var i = this._d.length -
2; i
>=
0; i--) {
44134 var group = this._d[i].toString();
44135 while (group.length < BigInteger_base_log10) group = '
0' + group;
44141 var numerals = BigInteger.digits;
44142 base = BigInteger.small[base];
44143 var sign = this._s;
44145 var n = this.abs();
44149 while (n._s !==
0) {
44150 var divmod = n.divRem(base);
44153 // TODO: This could be changed to unshift instead of reversing at the end.
44154 // Benchmark both to compare speeds.
44155 digits.push(numerals[digit.valueOf()]);
44157 return (sign <
0 ? "-" : "") + digits.reverse().join("");
44161 // Verify strings for parsing
44162 BigInteger.radixRegex = [
44204 Parse a string into a
<BigInteger>.
44206 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
44207 *base* is not provided, it will be guessed based on the leading characters
44210 - "
0x" or "
0X": *base* =
16
44211 - "
0c" or "
0C": *base* =
8
44212 - "
0b" or "
0B": *base* =
2
44213 - else: *base* =
10
44215 If no base is provided, or *base* is
10, the number can be in exponential
44216 form. For example, these are all valid:
44218 > BigInteger.parse("
1e9"); // Same as "
1000000000"
44219 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
44220 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
44222 If any characters fall outside the range defined by the radix, an exception
44227 s - The string to parse.
44228 base - Optional radix (default is to guess based on *s*).
44232 a
<BigInteger> instance.
44234 BigInteger.parse = function(s, base) {
44235 // Expands a number in exponential form to decimal form.
44236 // expandExponential("-
13.441*
10^
5") === "
1344100";
44237 // expandExponential("
1.12300e-1") === "
0.112300";
44238 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
44239 function expandExponential(str) {
44240 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
44242 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
44245 var i = n.length + c;
44246 x = (l ? n : f).length;
44247 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
44248 var z = (new Array(c +
1)).join("
0");
44250 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
44255 if (typeof base === "undefined" || +base ===
10) {
44256 s = expandExponential(s);
44260 if (typeof base === "undefined") {
44261 prefixRE = '
0[xcb]';
44263 else if (base ==
16) {
44266 else if (base ==
8) {
44269 else if (base ==
2) {
44275 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
44277 var sign = parts[
1] || "+";
44278 var baseSection = parts[
2] || "";
44279 var digits = parts[
3] || "";
44281 if (typeof base === "undefined") {
44283 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
44286 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
44289 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
44296 else if (base <
2 || base
> 36) {
44297 throw new Error(
"Illegal radix " + base +
".");
44302 // Check for digits outside the range
44303 if (!(BigInteger.radixRegex[base].test(digits))) {
44304 throw new Error(
"Bad digit for radix " + base);
44307 // Strip leading zeros, and convert to array
44308 digits = digits.replace(/^
0+/,
"").split(
"");
44309 if (digits.length ===
0) {
44313 // Get the sign (we know it's not zero)
44314 sign = (sign ===
"-") ? -
1 :
1;
44319 while (digits.length
>= BigInteger_base_log10) {
44320 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
44322 d.push(parseInt(digits.join(''),
10));
44323 return new BigInteger(d, sign, CONSTRUCT);
44326 // Do the conversion
44328 base = BigInteger.small[base];
44329 var small = BigInteger.small;
44330 for (var i =
0; i < digits.length; i++) {
44331 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
44333 return new BigInteger(d._d, sign, CONSTRUCT);
44336 throw new Error("Invalid BigInteger format: " + s);
44342 Add two
<BigIntegers>.
44346 n - The number to add to *this*. Will be converted to a
<BigInteger>.
44350 The numbers added together.
44354 <subtract>,
<multiply>,
<quotient>,
<next>
44356 BigInteger.prototype.add = function(n) {
44357 if (this._s ===
0) {
44358 return BigInteger(n);
44365 if (this._s !== n._s) {
44367 return this.subtract(n);
44374 var sum = new Array(Math.max(al, bl) +
1);
44375 var size = Math.min(al, bl);
44379 for (var i =
0; i < size; i++) {
44380 digit = a[i] + b[i] + carry;
44381 sum[i] = digit % BigInteger_base;
44382 carry = (digit / BigInteger_base) |
0;
44388 for (i = size; carry && i < al; i++) {
44389 digit = a[i] + carry;
44390 sum[i] = digit % BigInteger_base;
44391 carry = (digit / BigInteger_base) |
0;
44397 for ( ; i < al; i++) {
44401 return new BigInteger(sum, this._s, CONSTRUCT);
44406 Get the additive inverse of a
<BigInteger>.
44410 A
<BigInteger> with the same magnatude, but with the opposite sign.
44416 BigInteger.prototype.negate = function() {
44417 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
44422 Get the absolute value of a
<BigInteger>.
44426 A
<BigInteger> with the same magnatude, but always positive (or zero).
44432 BigInteger.prototype.abs = function() {
44433 return (this._s <
0) ? this.negate() : this;
44438 Subtract two
<BigIntegers>.
44442 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
44446 The *n* subtracted from *this*.
44450 <add>,
<multiply>,
<quotient>,
<prev>
44452 BigInteger.prototype.subtract = function(n) {
44453 if (this._s ===
0) {
44454 return BigInteger(n).negate();
44461 if (this._s !== n._s) {
44463 return this.add(n);
44467 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
44469 m = new BigInteger(n._d,
1, CONSTRUCT);
44470 n = new BigInteger(this._d,
1, CONSTRUCT);
44473 // Both are positive =
> a - b
44474 var sign = m.compareAbs(n);
44478 else if (sign <
0) {
44490 var diff = new Array(al); // al
>= bl since a
> b
44495 for (i =
0; i < bl; i++) {
44496 digit = a[i] - borrow - b[i];
44498 digit += BigInteger_base;
44506 for (i = bl; i < al; i++) {
44507 digit = a[i] - borrow;
44509 digit += BigInteger_base;
44517 for ( ; i < al; i++) {
44521 return new BigInteger(diff, sign, CONSTRUCT);
44525 function addOne(n, sign) {
44527 var sum = a.slice();
44532 var digit = (a[i] ||
0) +
1;
44533 sum[i] = digit % BigInteger_base;
44534 if (digit <= BigInteger_base -
1) {
44540 return new BigInteger(sum, sign, CONSTRUCT);
44543 function subtractOne(n, sign) {
44545 var sum = a.slice();
44550 var digit = (a[i] ||
0) -
1;
44552 sum[i] = digit + BigInteger_base;
44561 return new BigInteger(sum, sign, CONSTRUCT);
44566 Get the next
<BigInteger> (add one).
44576 BigInteger.prototype.next = function() {
44581 return subtractOne(this, -
1);
44584 return addOne(this,
1);
44590 Get the previous
<BigInteger> (subtract one).
44600 BigInteger.prototype.prev = function() {
44605 return addOne(this, -
1);
44608 return subtractOne(this,
1);
44614 Function: compareAbs
44615 Compare the absolute value of two
<BigIntegers>.
44617 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
44621 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44625 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
44631 BigInteger.prototype.compareAbs = function(n) {
44636 if (!(n instanceof BigInteger)) {
44637 if (!isFinite(n)) {
44638 return(isNaN(n) ? n : -
1);
44643 if (this._s ===
0) {
44644 return (n._s !==
0) ? -
1 :
0;
44650 var l = this._d.length;
44651 var nl = n._d.length;
44661 for (var i = l-
1; i
>=
0; i--) {
44662 if (a[i] !== b[i]) {
44663 return a[i] < b[i] ? -
1 :
1;
44672 Compare two
<BigIntegers>.
44676 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44680 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
44684 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
44686 BigInteger.prototype.compare = function(n) {
44693 if (this._s ===
0) {
44697 if (this._s === n._s) { // both positive or both negative
44698 var cmp = this.compareAbs(n);
44699 return cmp * this._s;
44708 Return true iff *this* is either
1 or -
1.
44712 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
44716 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
44717 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
44719 BigInteger.prototype.isUnit = function() {
44720 return this === ONE ||
44722 (this._d.length ===
1 && this._d[
0] ===
1);
44727 Multiply two
<BigIntegers>.
44731 n - The number to multiply *this* by. Will be converted to a
44736 The numbers multiplied together.
44740 <add>,
<subtract>,
<quotient>,
<square>
44742 BigInteger.prototype.multiply = function(n) {
44743 // TODO: Consider adding Karatsuba multiplication for large numbers
44744 if (this._s ===
0) {
44752 if (this.isUnit()) {
44760 return this.negate();
44765 return this.square();
44768 var r = (this._d.length
>= n._d.length);
44769 var a = (r ? this : n)._d; // a will be longer than b
44770 var b = (r ? n : this)._d;
44775 var partial = new Array(pl);
44777 for (i =
0; i < pl; i++) {
44781 for (i =
0; i < bl; i++) {
44784 var jlimit = al + i;
44786 for (var j = i; j < jlimit; j++) {
44787 digit = partial[j] + bi * a[j - i] + carry;
44788 carry = (digit / BigInteger_base) |
0;
44789 partial[j] = (digit % BigInteger_base) |
0;
44792 digit = partial[j] + carry;
44793 carry = (digit / BigInteger_base) |
0;
44794 partial[j] = digit % BigInteger_base;
44797 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
44800 // Multiply a BigInteger by a single-digit native number
44801 // Assumes that this and n are
>=
0
44802 // This is not really intended to be used outside the library itself
44803 BigInteger.prototype.multiplySingleDigit = function(n) {
44804 if (n ===
0 || this._s ===
0) {
44812 if (this._d.length ===
1) {
44813 digit = this._d[
0] * n;
44814 if (digit
>= BigInteger_base) {
44815 return new BigInteger([(digit % BigInteger_base)|
0,
44816 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
44818 return new BigInteger([digit],
1, CONSTRUCT);
44822 return this.add(this);
44824 if (this.isUnit()) {
44825 return new BigInteger([n],
1, CONSTRUCT);
44832 var partial = new Array(pl);
44833 for (var i =
0; i < pl; i++) {
44838 for (var j =
0; j < al; j++) {
44839 digit = n * a[j] + carry;
44840 carry = (digit / BigInteger_base) |
0;
44841 partial[j] = (digit % BigInteger_base) |
0;
44844 partial[j] = carry;
44847 return new BigInteger(partial,
1, CONSTRUCT);
44852 Multiply a
<BigInteger> by itself.
44854 This is slightly faster than regular multiplication, since it removes the
44855 duplicated multiplcations.
44859 > this.multiply(this)
44864 BigInteger.prototype.square = function() {
44865 // Normally, squaring a
10-digit number would take
100 multiplications.
44866 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
44867 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
44868 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
44870 if (this._s ===
0) {
44873 if (this.isUnit()) {
44877 var digits = this._d;
44878 var length = digits.length;
44879 var imult1 = new Array(length + length +
1);
44880 var product, carry, k;
44883 // Calculate diagonal
44884 for (i =
0; i < length; i++) {
44886 product = digits[i] * digits[i];
44887 carry = (product / BigInteger_base) |
0;
44888 imult1[k] = product % BigInteger_base;
44889 imult1[k +
1] = carry;
44892 // Calculate repeating part
44893 for (i =
0; i < length; i++) {
44896 for (var j = i +
1; j < length; j++, k++) {
44897 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
44898 carry = (product / BigInteger_base) |
0;
44899 imult1[k] = product % BigInteger_base;
44902 var digit = carry + imult1[k];
44903 carry = (digit / BigInteger_base) |
0;
44904 imult1[k] = digit % BigInteger_base;
44905 imult1[k +
1] += carry;
44908 return new BigInteger(imult1,
1, CONSTRUCT);
44913 Divide two
<BigIntegers> and truncate towards zero.
44915 <quotient> throws an exception if *n* is zero.
44919 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
44923 The *this* / *n*, truncated to an integer.
44927 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
44929 BigInteger.prototype.quotient = function(n) {
44930 return this.divRem(n)[
0];
44935 Deprecated synonym for
<quotient>.
44937 BigInteger.prototype.divide = BigInteger.prototype.quotient;
44940 Function: remainder
44941 Calculate the remainder of two
<BigIntegers>.
44943 <remainder> throws an exception if *n* is zero.
44947 n - The remainder after *this* is divided *this* by *n*. Will be
44948 converted to a
<BigInteger>.
44956 <divRem>,
<quotient>
44958 BigInteger.prototype.remainder = function(n) {
44959 return this.divRem(n)[
1];
44964 Calculate the integer quotient and remainder of two
<BigIntegers>.
44966 <divRem> throws an exception if *n* is zero.
44970 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
44974 A two-element array containing the quotient and the remainder.
44978 is exactly equivalent to
44980 > [a.quotient(b), a.remainder(b)]
44982 except it is faster, because they are calculated at the same time.
44986 <quotient>,
<remainder>
44988 BigInteger.prototype.divRem = function(n) {
44991 throw new Error("Divide by zero");
44993 if (this._s ===
0) {
44994 return [ZERO, ZERO];
44996 if (n._d.length ===
1) {
44997 return this.divRemSmall(n._s * n._d[
0]);
45000 // Test for easy cases -- |n1| <= |n2|
45001 switch (this.compareAbs(n)) {
45002 case
0: // n1 == n2
45003 return [this._s === n._s ? ONE : M_ONE, ZERO];
45004 case -
1: // |n1| < |n2|
45005 return [ZERO, this];
45008 var sign = this._s * n._s;
45010 var b_digits = this._d;
45011 var b_index = b_digits.length;
45012 var digits = n._d.length;
45016 var part = new BigInteger([],
0, CONSTRUCT);
45019 part._d.unshift(b_digits[--b_index]);
45020 part = new BigInteger(part._d,
1, CONSTRUCT);
45022 if (part.compareAbs(n) <
0) {
45026 if (part._s ===
0) {
45030 var xlen = part._d.length, ylen = a._d.length;
45031 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
45032 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
45033 if (part._d.length
> a._d.length) {
45034 // The length of part._d can either match a._d length,
45035 // or exceed it by one.
45036 highx = (highx+
1)*BigInteger_base;
45038 guess = Math.ceil(highx/highy);
45041 var check = a.multiplySingleDigit(guess);
45042 if (check.compareAbs(part) <=
0) {
45052 var diff = part.subtract(check);
45053 part._d = diff._d.slice();
45056 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
45057 new BigInteger(part._d, this._s, CONSTRUCT)];
45060 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
45061 // [
1, BigInteger.base). It's not necessary to call this, since the
45062 // other division functions will call it if they are able to.
45063 BigInteger.prototype.divRemSmall = function(n) {
45067 throw new Error("Divide by zero");
45070 var n_s = n <
0 ? -
1 :
1;
45071 var sign = this._s * n_s;
45074 if (n <
1 || n
>= BigInteger_base) {
45075 throw new Error("Argument out of range");
45078 if (this._s ===
0) {
45079 return [ZERO, ZERO];
45082 if (n ===
1 || n === -
1) {
45083 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
45086 //
2 <= n < BigInteger_base
45088 // divide a single digit by a single digit
45089 if (this._d.length ===
1) {
45090 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
45091 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
45101 var digits = this._d.slice();
45102 var quot = new Array(digits.length);
45108 while (digits.length) {
45109 part = part * BigInteger_base + digits[digits.length -
1];
45113 diff = BigInteger_base * diff + part;
45120 guess = (part / n) |
0;
45123 var check = n * guess;
45124 diff = part - check;
45135 r = new BigInteger([diff],
1, CONSTRUCT);
45139 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
45144 Return true iff *this* is divisible by two.
45146 Note that
<BigInteger.ZERO
> is even.
45150 true if *this* is even, false otherwise.
45156 BigInteger.prototype.isEven = function() {
45157 var digits = this._d;
45158 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
45163 Return true iff *this* is not divisible by two.
45167 true if *this* is odd, false otherwise.
45173 BigInteger.prototype.isOdd = function() {
45174 return !this.isEven();
45179 Get the sign of a
<BigInteger>.
45189 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
45191 BigInteger.prototype.sign = function() {
45196 Function: isPositive
45197 Return true iff *this*
> 0.
45201 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
45205 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45207 BigInteger.prototype.isPositive = function() {
45208 return this._s
> 0;
45212 Function: isNegative
45213 Return true iff *this* <
0.
45217 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
45221 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45223 BigInteger.prototype.isNegative = function() {
45224 return this._s <
0;
45229 Return true iff *this* ==
0.
45233 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
45237 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
45239 BigInteger.prototype.isZero = function() {
45240 return this._s ===
0;
45245 Multiply a
<BigInteger> by a power of
10.
45247 This is equivalent to, but faster than
45250 > return this.multiply(BigInteger("
1e" + n));
45253 > return this.quotient(BigInteger("
1e" + -n));
45258 n - The power of
10 to multiply *this* by. *n* is converted to a
45259 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
45260 (
0x7FFFFFFF), or an exception will be thrown.
45264 *this* * (
10 ** *n*), truncated to an integer if necessary.
45270 BigInteger.prototype.exp10 = function(n) {
45275 if (Math.abs(n)
> Number(MAX_EXP)) {
45276 throw new Error("exponent too large in BigInteger.exp10");
45278 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
45279 if (this._s ===
0) {
45283 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45285 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45291 k = k.multiplySingleDigit(Math.pow(
10, n));
45292 return (this._s <
0 ? k.negate() : k);
45293 } else if (-n
>= this._d.length*BigInteger_base_log10) {
45296 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45298 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45301 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
45307 Raise a
<BigInteger> to a power.
45309 In this implementation,
0**
0 is
1.
45313 n - The exponent to raise *this* by. *n* must be no greater than
45314 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
45318 *this* raised to the *nth* power.
45324 BigInteger.prototype.pow = function(n) {
45325 if (this.isUnit()) {
45330 return BigInteger(n).isOdd() ? this : this.negate();
45338 else if (n._s <
0) {
45339 if (this._s ===
0) {
45340 throw new Error(
"Divide by zero");
45346 if (this._s ===
0) {
45353 if (n.compareAbs(MAX_EXP)
> 0) {
45354 throw new Error(
"exponent too large in BigInteger.pow");
45358 var two = BigInteger.small[
2];
45360 while (n.isPositive()) {
45362 aux = aux.multiply(x);
45368 n = n.quotient(two);
45376 Raise a
<BigInteger> to a power (mod m).
45378 Because it is reduced by a modulus,
<modPow> is not limited by
45379 <BigInteger.MAX_EXP
> like
<pow>.
45383 exponent - The exponent to raise *this* by. Must be positive.
45384 modulus - The modulus.
45388 *this* ^ *exponent* (mod *modulus*).
45394 BigInteger.prototype.modPow = function(exponent, modulus) {
45398 while (exponent.isPositive()) {
45399 if (exponent.isOdd()) {
45400 result = result.multiply(base).remainder(modulus);
45403 exponent = exponent.quotient(BigInteger.small[
2]);
45404 if (exponent.isPositive()) {
45405 base = base.square().remainder(modulus);
45414 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
45416 This is equivalent to
45418 > Math.log(this.toJSValue())
45420 but handles values outside of the native number range.
45430 BigInteger.prototype.log = function() {
45432 case
0: return -Infinity;
45433 case -
1: return NaN;
45434 default: // Fall through.
45437 var l = this._d.length;
45439 if (l*BigInteger_base_log10 <
30) {
45440 return Math.log(this.valueOf());
45443 var N = Math.ceil(
30/BigInteger_base_log10);
45444 var firstNdigits = this._d.slice(l - N);
45445 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
45450 Convert a
<BigInteger> to a native JavaScript integer.
45452 This is called automatically by JavaScipt to convert a
<BigInteger> to a
45457 > parseInt(this.toString(),
10)
45461 <toString>,
<toJSValue>
45463 BigInteger.prototype.valueOf = function() {
45464 return parseInt(this.toString(),
10);
45468 Function: toJSValue
45469 Convert a
<BigInteger> to a native JavaScript integer.
45471 This is the same as valueOf, but more explicitly named.
45475 > parseInt(this.toString(),
10)
45479 <toString>,
<valueOf>
45481 BigInteger.prototype.toJSValue = function() {
45482 return parseInt(this.toString(),
10);
45485 var MAX_EXP = BigInteger(
0x7FFFFFFF);
45486 // Constant: MAX_EXP
45487 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
45488 BigInteger.MAX_EXP = MAX_EXP;
45491 function makeUnary(fn) {
45492 return function(a) {
45493 return fn.call(BigInteger(a));
45497 function makeBinary(fn) {
45498 return function(a, b) {
45499 return fn.call(BigInteger(a), BigInteger(b));
45503 function makeTrinary(fn) {
45504 return function(a, b, c) {
45505 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
45511 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
45512 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
45513 var trinary = ["modPow"];
45515 for (i =
0; i < unary.length; i++) {
45517 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
45520 for (i =
0; i < binary.length; i++) {
45522 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
45525 for (i =
0; i < trinary.length; i++) {
45527 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
45530 BigInteger.exp10 = function(x, n) {
45531 return BigInteger(x).exp10(n);
45536 exports.BigInteger = BigInteger;
45537 })(typeof exports !== 'undefined' ? exports : this);
45539 <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){
45540 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;
45542 },{}],
2:[function(require,module,exports){
45543 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;
45545 },{"./scoring":
6}],
3:[function(require,module,exports){
45546 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(","),
45547 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(","),
45548 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(","),
45549 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(","),
45550 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;
45552 },{}],
4:[function(require,module,exports){
45553 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;
45555 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
45556 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;
45558 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
45559 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;
45561 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
45562 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;
45569 * Detects entropy from a string.
45576 * hexadecimal [
0-
9A-F]
45577 * card [A2-
9TJQK][CDHS]
45579 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
45580 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
45584 window.Entropy = new (function() {
45586 var TWO = new BigInteger(
2);
45588 // matchers returns an array of the matched events for each type of entropy.
45590 // matchers.binary("
010") returns ["
0", "
1", "
0"]
45591 // matchers.binary("a10") returns ["
1", "
0"]
45592 // matchers.hex("a10") returns ["a", "
1", "
0"]
45594 binary: function(str) {
45595 return str.match(/[
0-
1]/gi) || [];
45597 base6: function(str) {
45598 return str.match(/[
0-
5]/gi) || [];
45600 dice: function(str) {
45601 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
45603 base10: function(str) {
45604 return str.match(/[
0-
9]/gi) || [];
45606 hex: function(str) {
45607 return str.match(/[
0-
9A-F]/gi) || [];
45609 card: function(str) {
45610 // Format is NumberSuit, eg
45611 // AH ace of hearts
45612 //
8C eight of clubs
45613 // TD ten of diamonds
45614 // JS jack of spades
45615 // QH queen of hearts
45616 // KC king of clubs
45617 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
45621 // Convert array of cards from ["ac", "
4d", "ks"]
45622 // to numbers between
0 and
51 [
0,
16,
51]
45623 function convertCardsToInts(cards) {
45625 var values = "a23456789tjqk";
45626 var suits = "cdhs";
45627 for (var i=
0; i
<cards.length; i++) {
45628 var card = cards[i].toLowerCase();
45629 var value = card[
0];
45630 var suit = card[
1];
45631 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
45637 this.fromString = function(rawEntropyStr) {
45638 // Find type of entropy being used (binary, hex, dice etc)
45639 var base = getBase(rawEntropyStr);
45640 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
45641 // This is done by changing all
6s to
0s
45642 if (base.str ==
"dice") {
45645 for (var i=
0; i
<base.parts.length; i++) {
45646 var c = base.parts[i];
45647 if (
"12345".indexOf(c)
> -
1) {
45648 newParts[i] = base.parts[i];
45649 newInts[i] = base.ints[i];
45656 base.str = "base
6 (dice)";
45657 base.ints = newInts;
45658 base.parts = newParts;
45659 base.matcher = matchers.base6;
45661 // Detect empty entropy
45662 if (base.parts.length ==
0) {
45670 // Convert base.ints to BigInteger.
45671 // Due to using unusual bases, eg cards of base52, this is not as simple as
45672 // using BigInteger.parse()
45673 var entropyInt = BigInteger.ZERO;
45674 for (var i=base.ints.length-
1; i
>=
0; i--) {
45675 var thisInt = BigInteger.parse(base.ints[i]);
45676 var power = (base.ints.length -
1) - i;
45677 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
45678 entropyInt = entropyInt.add(additionalEntropy);
45680 // Convert entropy to binary
45681 var entropyBin = entropyInt.toString(
2);
45682 // If the first integer is small, it must be padded with zeros.
45683 // Otherwise the chance of the first bit being
1 is
100%, which is
45684 // obviously incorrect.
45685 // This is not perfect for non-
2^n bases.
45686 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
45687 while (entropyBin.length < expectedBits) {
45688 entropyBin = "
0" + entropyBin;
45690 // Calculate the number of bits per event
45691 var bitsPerEvent = Math.log2(base.asInt);
45692 // Cards binary must be handled differently, since they're not replaced
45693 if (base.asInt ==
52) {
45694 var cardEntropy = processCardEntropy(base.parts);
45695 entropyBin = cardEntropy.binaryStr;
45696 bitsPerEvent = cardEntropy.bitsPerEvent;
45698 // Supply a 'filtered' entropy string for display purposes
45699 var entropyClean = base.parts.join("");
45700 var entropyHtml = base.parts.join("");
45701 if (base.asInt ==
52) {
45702 entropyClean = base.parts.join(" ").toUpperCase();
45703 entropyClean = entropyClean.replace(/C/g, "\u2663");
45704 entropyClean = entropyClean.replace(/D/g, "\u2666");
45705 entropyClean = entropyClean.replace(/H/g, "\u2665");
45706 entropyClean = entropyClean.replace(/S/g, "\u2660");
45707 entropyHtml = base.parts.join(" ").toUpperCase();
45708 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
45709 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
45710 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
45711 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
45713 // Return the result
45715 binaryStr: entropyBin,
45716 cleanStr: entropyClean,
45717 cleanHtml: entropyHtml,
45718 bitsPerEvent: bitsPerEvent,
45724 function getSortedDeck() {
45726 var suits = "CDHS
";
45727 var values = "A23456789TJQK
";
45728 for (var i=0; i<suits.length; i++) {
45729 for (var j=0; j<values.length; j++) {
45730 s.push(values[j]+suits[i]);
45736 function getBase(str) {
45737 // Need to get the lowest base for the supplied entropy.
45738 // This prevents interpreting, say, dice rolls as hexadecimal.
45739 var binaryMatches = matchers.binary(str);
45740 var hexMatches = matchers.hex(str);
45741 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
45742 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
45743 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
45746 parts: binaryMatches,
45747 matcher: matchers.binary,
45752 var cardMatches = matchers.card(str);
45753 if (cardMatches.length >= hexMatches.length / 2) {
45754 var ints = convertCardsToInts(cardMatches);
45757 parts: cardMatches,
45758 matcher: matchers.card,
45763 var diceMatches = matchers.dice(str);
45764 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
45765 var ints = diceMatches.map(function(i) { return parseInt(i) });
45768 parts: diceMatches,
45769 matcher: matchers.dice,
45774 var base6Matches = matchers.base6(str);
45775 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
45776 var ints = base6Matches.map(function(i) { return parseInt(i) });
45779 parts: base6Matches,
45780 matcher: matchers.base6,
45785 var base10Matches = matchers.base10(str);
45786 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
45787 var ints = base10Matches.map(function(i) { return parseInt(i) });
45790 parts: base10Matches,
45791 matcher: matchers.base10,
45796 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
45800 matcher: matchers.hex,
45802 str:
"hexadecimal",
45806 // Assume cards are NOT replaced.
45807 // Additional entropy decreases as more cards are used. This means
45808 // total possible entropy is measured using n!, not base^n.
45809 // eg the second last card can be only one of two, not one of fifty two
45810 // so the added entropy for that card is only one bit at most
45811 function processCardEntropy(cards) {
45812 // Track how many instances of each card have been used, and thus
45813 // how many decks are in use.
45814 var cardCounts = {};
45815 var numberOfDecks =
0;
45816 // Work out number of decks by max(duplicates)
45817 for (var i=
0; i
<cards.length; i++) {
45818 // Get the card that was drawn
45819 var cardLower = cards[i];
45820 var card = cardLower.toUpperCase();
45821 // Initialize the count for this card if needed
45822 if (!(card in cardCounts)) {
45823 cardCounts[card] =
0;
45825 cardCounts[card] +=
1;
45826 // See if this is max(duplicates)
45827 if (cardCounts[card]
> numberOfDecks) {
45828 numberOfDecks = cardCounts[card];
45831 // Work out the total number of bits for this many decks
45832 // See http://crypto.stackexchange.com/q/
41886
45833 var gainedBits =
0;
45834 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
45835 // which becomes infinity for numberOfDecks
> 4
45836 for (var i=
1; i<=
52*numberOfDecks; i++) {
45837 gainedBits = gainedBits + Math.log2(i);
45839 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
45840 var maxBits = gainedBits - lostBits;
45841 // Convert the drawn cards to a binary representation.
45842 // The exact technique for doing this is unclear.
45844 // http://crypto.stackexchange.com/a/
41896
45845 //
"I even doubt that this is well defined (only the average entropy
45846 // is, I believe)."
45848 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
45849 //
"The binary representation can be the first log(permutations,2) bits
45850 // of the sha-2 hash of the normalized deck string."
45852 // In this specific implementation, the first N bits of the hash of the
45853 // normalized cards string is being used. Uppercase, no spaces; eg
45854 // sha256(
"AH8DQSTC2H")
45855 var totalCards = numberOfDecks *
52;
45856 var percentUsed = cards.length / totalCards;
45857 // Calculate the average number of bits of entropy for the number of
45859 var numberOfBits = Math.floor(maxBits * percentUsed);
45860 // Create a normalized string of the selected cards
45861 var normalizedCards = cards.join(
"").toUpperCase();
45862 // Convert to binary using the SHA256 hash of the normalized cards.
45863 // If the number of bits is more than
256, multiple hashes
45864 // are used until the required number of bits is reached.
45865 var entropyBin =
"";
45866 var iterations =
0;
45867 while (entropyBin.length < numberOfBits) {
45868 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
45869 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
45870 for (var i=
0; i
<hashHex.length; i++) {
45871 var decimal = parseInt(hashHex[i],
16);
45872 var binary = decimal.toString(
2);
45873 while (binary.length <
4) {
45874 binary =
"0" + binary;
45876 entropyBin = entropyBin + binary;
45878 iterations = iterations +
1;
45880 // Truncate to the appropriate number of bits.
45881 entropyBin = entropyBin.substring(
0, numberOfBits);
45882 // Get the number of bits per event
45883 bitsPerEvent = maxBits / totalCards;
45885 binaryStr: entropyBin,
45886 bitsPerEvent: bitsPerEvent,
45890 // Polyfill for Math.log2
45891 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
45892 Math.log2 = Math.log2 || function(x) {
45893 // The polyfill isn't good enough because of the poor accuracy of
45895 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
45896 // So instead use the BigInteger library to get it right.
45897 return BigInteger.log(x) / BigInteger.log(
2);
45900 // Depends on BigInteger
45901 function factorial(n) {
45905 f = BigInteger.ONE;
45906 for (var i=
1; i<=n; i++) {
45907 f = f.multiply(new BigInteger(i));
45914 <script>(function() {
45916 // mnemonics is populated as required by getLanguage
45917 var mnemonics = { "english": new Mnemonic("english") };
45918 var mnemonic = mnemonics["english"];
45920 var bip32RootKey = null;
45921 var bip32ExtendedKey = null;
45922 var network = bitcoinjs.bitcoin.networks.bitcoin;
45923 var addressRowTemplate = $("#address-row-template");
45925 var showIndex = true;
45926 var showAddress = true;
45927 var showPubKey = true;
45928 var showPrivKey = true;
45929 var showQr = false;
45930 var litecoinUseLtub = false;
45932 var entropyChangeTimeoutEvent = null;
45933 var phraseChangeTimeoutEvent = null;
45934 var rootKeyChangedTimeoutEvent = null;
45936 var generationProcesses = [];
45939 DOM.network = $(".network");
45940 DOM.bip32Client = $("#bip32-client");
45941 DOM.phraseNetwork = $("#network-phrase");
45942 DOM.useEntropy = $(".use-entropy");
45943 DOM.entropyContainer = $(".entropy-container");
45944 DOM.entropy = $(".entropy");
45945 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
45946 DOM.entropyType = DOM.entropyContainer.find(".type");
45947 DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
45948 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
45949 DOM.entropyBits = DOM.entropyContainer.find(".bits");
45950 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
45951 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
45952 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
45953 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
45954 DOM.entropyFilterWarning = DOM.entropyContainer.find(".filter-warning");
45955 DOM.phrase = $(".phrase");
45956 DOM.passphrase = $(".passphrase");
45957 DOM.generateContainer = $(".generate-container");
45958 DOM.generate = $(".generate");
45959 DOM.seed = $(".seed");
45960 DOM.rootKey = $(".root-key");
45961 DOM.litecoinLtubContainer = $(".litecoin-ltub-container");
45962 DOM.litecoinUseLtub = $(".litecoin-use-ltub");
45963 DOM.extendedPrivKey = $(".extended-priv-key");
45964 DOM.extendedPubKey = $(".extended-pub-key");
45965 DOM.bip32tab = $("#bip32-tab");
45966 DOM.bip44tab = $("#bip44-tab");
45967 DOM.bip49tab = $("#bip49-tab");
45968 DOM.bip32panel = $("#bip32");
45969 DOM.bip44panel = $("#bip44");
45970 DOM.bip49panel = $("#bip49");
45971 DOM.bip32path = $("#bip32-path");
45972 DOM.bip44path = $("#bip44-path");
45973 DOM.bip44purpose = $("#bip44 .purpose");
45974 DOM.bip44coin = $("#bip44 .coin");
45975 DOM.bip44account = $("#bip44 .account");
45976 DOM.bip44accountXprv = $("#bip44 .account-xprv");
45977 DOM.bip44accountXpub = $("#bip44 .account-xpub");
45978 DOM.bip44change = $("#bip44 .change");
45979 DOM.bip49unavailable = $("#bip49 .unavailable");
45980 DOM.bip49available = $("#bip49 .available");
45981 DOM.bip49path = $("#bip49-path");
45982 DOM.bip49purpose = $("#bip49 .purpose");
45983 DOM.bip49coin = $("#bip49 .coin");
45984 DOM.bip49account = $("#bip49 .account");
45985 DOM.bip49accountXprv = $("#bip49 .account-xprv");
45986 DOM.bip49accountXpub = $("#bip49 .account-xpub");
45987 DOM.bip49change = $("#bip49 .change");
45988 DOM.generatedStrength = $(".generate-container .strength");
45989 DOM.hardenedAddresses = $(".hardened-addresses");
45990 DOM.useP2wpkhNestedInP2sh = $(".p2wpkh-nested-in-p2sh");
45991 DOM.addresses = $(".addresses");
45992 DOM.rowsToAdd = $(".rows-to-add");
45993 DOM.more = $(".more");
45994 DOM.feedback = $(".feedback");
45995 DOM.tab = $(".derivation-type a");
45996 DOM.indexToggle = $(".index-toggle");
45997 DOM.addressToggle = $(".address-toggle");
45998 DOM.publicKeyToggle = $(".public-key-toggle");
45999 DOM.privateKeyToggle = $(".private-key-toggle");
46000 DOM.languages = $(".languages a");
46001 DOM.qrContainer = $(".qr-container");
46002 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
46003 DOM.qrImage = DOM.qrContainer.find(".qr-image");
46004 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
46005 DOM.showQrEls = $("[data-show-qr]");
46009 DOM.network.on("change", networkChanged);
46010 DOM.bip32Client.on("change", bip32ClientChanged);
46011 DOM.useEntropy.on("change", setEntropyVisibility);
46012 DOM.entropy.on("input", delayedEntropyChanged);
46013 DOM.entropyMnemonicLength.on("change", entropyChanged);
46014 DOM.phrase.on("input", delayedPhraseChanged);
46015 DOM.passphrase.on("input", delayedPhraseChanged);
46016 DOM.generate.on("click", generateClicked);
46017 DOM.more.on("click", showMore);
46018 DOM.rootKey.on("input", delayedRootKeyChanged);
46019 DOM.litecoinUseLtub.on("change", litecoinUseLtubChanged);
46020 DOM.bip32path.on("input", calcForDerivationPath);
46021 DOM.bip44account.on("input", calcForDerivationPath);
46022 DOM.bip44change.on("input", calcForDerivationPath);
46023 DOM.bip49account.on("input", calcForDerivationPath);
46024 DOM.bip49change.on("input", calcForDerivationPath);
46025 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
46026 DOM.hardenedAddresses.on("change", calcForDerivationPath);
46027 DOM.useP2wpkhNestedInP2sh.on("change", calcForDerivationPath);
46028 DOM.indexToggle.on("click", toggleIndexes);
46029 DOM.addressToggle.on("click", toggleAddresses);
46030 DOM.publicKeyToggle.on("click", togglePublicKeys);
46031 DOM.privateKeyToggle.on("click", togglePrivateKeys);
46032 DOM.languages.on("click", languageChanged);
46033 setQrEvents(DOM.showQrEls);
46036 hideValidationError();
46037 populateNetworkSelect();
46038 populateClientSelect();
46043 function networkChanged(e) {
46044 clearDerivedKeys();
46045 clearAddressesList();
46046 DOM.litecoinLtubContainer.addClass("hidden");
46047 var networkIndex = e.target.value;
46048 var network = networks[networkIndex];
46049 network.onSelect();
46050 if (network.p2wpkhNestedInP2shAvailable) {
46051 showP2wpkhNestedInP2shAvailable();
46054 showP2wpkhNestedInP2shUnavailable();
46056 if (seed != null) {
46064 function bip32ClientChanged(e) {
46065 var clientIndex = DOM.bip32Client.val();
46066 if (clientIndex == "custom") {
46067 DOM.bip32path.prop("readonly", false);
46070 DOM.bip32path.prop("readonly", true);
46071 clients[clientIndex].onSelect();
46072 if (seed != null) {
46081 function setEntropyVisibility() {
46082 if (isUsingOwnEntropy()) {
46083 DOM.entropyContainer.removeClass("hidden");
46084 DOM.generateContainer.addClass("hidden");
46085 DOM.phrase.prop("readonly", true);
46086 DOM.entropy.focus();
46090 DOM.entropyContainer.addClass("hidden");
46091 DOM.generateContainer.removeClass("hidden");
46092 DOM.phrase.prop("readonly", false);
46097 function delayedPhraseChanged() {
46098 hideValidationError();
46100 bip32RootKey = null;
46101 bip32ExtendedKey = null;
46102 clearAddressesList();
46104 if (phraseChangeTimeoutEvent != null) {
46105 clearTimeout(phraseChangeTimeoutEvent);
46107 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
46110 function phraseChanged() {
46112 setMnemonicLanguage();
46113 // Get the mnemonic phrase
46114 var phrase = DOM.phrase.val();
46115 var errorText = findPhraseErrors(phrase);
46117 showValidationError(errorText);
46120 // Calculate and display
46121 var passphrase = DOM.passphrase.val();
46122 calcBip32RootKeyFromSeed(phrase, passphrase);
46123 calcForDerivationPath();
46126 function delayedEntropyChanged() {
46127 hideValidationError();
46129 if (entropyChangeTimeoutEvent != null) {
46130 clearTimeout(entropyChangeTimeoutEvent);
46132 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
46135 function entropyChanged() {
46136 // If blank entropy, clear mnemonic, addresses, errors
46137 if (DOM.entropy.val().trim().length ==
0) {
46139 clearEntropyFeedback();
46140 DOM.phrase.val("");
46141 showValidationError("Blank entropy");
46144 // Get the current phrase to detect changes
46145 var phrase = DOM.phrase.val();
46146 // Set the phrase from the entropy
46147 setMnemonicFromEntropy();
46148 // Recalc addresses if the phrase has changed
46149 var newPhrase = DOM.phrase.val();
46150 if (newPhrase != phrase) {
46151 if (newPhrase.length ==
0) {
46163 function delayedRootKeyChanged() {
46164 // Warn if there is an existing mnemonic or passphrase.
46165 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
46166 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
46167 DOM.rootKey.val(bip32RootKey);
46171 hideValidationError();
46173 // Clear existing mnemonic and passphrase
46174 DOM.phrase.val(
"");
46175 DOM.passphrase.val(
"");
46177 if (rootKeyChangedTimeoutEvent != null) {
46178 clearTimeout(rootKeyChangedTimeoutEvent);
46180 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
46183 function rootKeyChanged() {
46185 hideValidationError();
46186 var rootKeyBase58 = DOM.rootKey.val();
46187 var errorText = validateRootKey(rootKeyBase58);
46189 showValidationError(errorText);
46192 // Calculate and display
46193 calcBip32RootKeyFromBase58(rootKeyBase58);
46194 calcForDerivationPath();
46197 function litecoinUseLtubChanged() {
46198 litecoinUseLtub = DOM.litecoinUseLtub.prop(
"checked");
46199 if (litecoinUseLtub) {
46200 network = bitcoinjs.bitcoin.networks.litecoinLtub;
46203 network = bitcoinjs.bitcoin.networks.litecoin;
46208 function calcForDerivationPath() {
46209 clearDerivedKeys();
46210 clearAddressesList();
46212 // Don't show bip49 if it's selected but network doesn't support it
46213 if (bip49TabSelected() && !networkHasBip49()) {
46216 // Get the derivation path
46217 var derivationPath = getDerivationPath();
46218 var errorText = findDerivationPathErrors(derivationPath);
46220 showValidationError(errorText);
46223 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
46224 if (bip44TabSelected()) {
46225 displayBip44Info();
46227 if (bip49TabSelected()) {
46228 displayBip49Info();
46230 displayBip32Info();
46233 function generateClicked() {
46234 if (isUsingOwnEntropy()) {
46239 setTimeout(function() {
46240 setMnemonicLanguage();
46241 var phrase = generateRandomPhrase();
46249 function languageChanged() {
46250 setTimeout(function() {
46251 setMnemonicLanguage();
46252 if (DOM.phrase.val().length
> 0) {
46253 var newPhrase = convertPhraseToNewLanguage();
46254 DOM.phrase.val(newPhrase);
46258 DOM.generate.trigger(
"click");
46263 function toggleIndexes() {
46264 showIndex = !showIndex;
46265 $(
"td.index span").toggleClass(
"invisible");
46268 function toggleAddresses() {
46269 showAddress = !showAddress;
46270 $(
"td.address span").toggleClass(
"invisible");
46273 function togglePublicKeys() {
46274 showPubKey = !showPubKey;
46275 $(
"td.pubkey span").toggleClass(
"invisible");
46278 function togglePrivateKeys() {
46279 showPrivKey = !showPrivKey;
46280 $(
"td.privkey span").toggleClass(
"invisible");
46285 function generateRandomPhrase() {
46286 if (!hasStrongRandom()) {
46287 var errorText =
"This browser does not support strong randomness";
46288 showValidationError(errorText);
46291 var numWords = parseInt(DOM.generatedStrength.val());
46292 var strength = numWords /
3 *
32;
46293 var words = mnemonic.generate(strength);
46294 DOM.phrase.val(words);
46298 function calcBip32RootKeyFromSeed(phrase, passphrase) {
46299 seed = mnemonic.toSeed(phrase, passphrase);
46300 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromSeedHex(seed, network);
46303 function calcBip32RootKeyFromBase58(rootKeyBase58) {
46304 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46307 function calcBip32ExtendedKey(path) {
46308 // Check there's a root key to derive from
46309 if (!bip32RootKey) {
46310 return bip32RootKey;
46312 var extendedKey = bip32RootKey;
46313 // Derive the key from the path
46314 var pathBits = path.split(
"/");
46315 for (var i=
0; i
<pathBits.length; i++) {
46316 var bit = pathBits[i];
46317 var index = parseInt(bit);
46318 if (isNaN(index)) {
46321 var hardened = bit[bit.length-
1] ==
"'";
46322 var isPriv = !(extendedKey.isNeutered());
46323 var invalidDerivationPath = hardened && !isPriv;
46324 if (invalidDerivationPath) {
46325 extendedKey = null;
46327 else if (hardened) {
46328 extendedKey = extendedKey.deriveHardened(index);
46331 extendedKey = extendedKey.derive(index);
46337 function showValidationError(errorText) {
46343 function hideValidationError() {
46349 function findPhraseErrors(phrase) {
46350 // Preprocess the words
46351 phrase = mnemonic.normalizeString(phrase);
46352 var words = phraseToWordArray(phrase);
46353 // Detect blank phrase
46354 if (words.length ==
0) {
46355 return
"Blank mnemonic";
46358 for (var i=
0; i
<words.length; i++) {
46359 var word = words[i];
46360 var language = getLanguage();
46361 if (WORDLISTS[language].indexOf(word) == -
1) {
46362 console.log(
"Finding closest match to " + word);
46363 var nearestWord = findNearestWord(word);
46364 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
46367 // Check the words are valid
46368 var properPhrase = wordArrayToPhrase(words);
46369 var isValid = mnemonic.check(properPhrase);
46371 return
"Invalid mnemonic";
46376 function validateRootKey(rootKeyBase58) {
46378 bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46381 return
"Invalid root key";
46386 function getDerivationPath() {
46387 if (bip44TabSelected()) {
46388 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46389 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46390 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46391 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
46393 path += purpose +
"'/";
46394 path += coin +
"'/";
46395 path += account +
"'/";
46397 DOM.bip44path.val(path);
46398 var derivationPath = DOM.bip44path.val();
46399 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
46400 return derivationPath;
46402 if (bip49TabSelected()) {
46403 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46404 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46405 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46406 var change = parseIntNoNaN(DOM.bip49change.val(),
0);
46408 path += purpose +
"'/";
46409 path += coin +
"'/";
46410 path += account +
"'/";
46412 DOM.bip49path.val(path);
46413 var derivationPath = DOM.bip49path.val();
46414 console.log(
"Using derivation path from BIP49 tab: " + derivationPath);
46415 return derivationPath;
46417 else if (bip32TabSelected()) {
46418 var derivationPath = DOM.bip32path.val();
46419 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
46420 return derivationPath;
46423 console.log(
"Unknown derivation path");
46427 function findDerivationPathErrors(path) {
46428 // TODO is not perfect but is better than nothing
46430 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
46432 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
46433 var maxDepth =
255; // TODO verify this!!
46434 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
46435 if (path[
0] !=
"m") {
46436 return
"First character must be 'm'";
46438 if (path.length
> 1) {
46439 if (path[
1] !=
"/") {
46440 return
"Separator must be '/'";
46442 var indexes = path.split(
"/");
46443 if (indexes.length
> maxDepth) {
46444 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
46446 for (var depth =
1; depth
<indexes.length; depth++) {
46447 var index = indexes[depth];
46448 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
46449 if (invalidChars.length
> 0) {
46450 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
46452 var indexValue = parseInt(index.replace(
"'",
""));
46453 if (isNaN(depth)) {
46454 return
"Invalid number at depth " + depth;
46456 if (indexValue
> maxIndexValue) {
46457 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
46461 // Check root key exists or else derivation path is useless!
46462 if (!bip32RootKey) {
46463 return "No root key";
46465 // Check no hardened derivation path when using xpub keys
46466 var hardenedPath = path.indexOf("'")
> -
1;
46467 var hardenedAddresses = bip32TabSelected() && DOM.hardenedAddresses.prop("checked");
46468 var hardened = hardenedPath || hardenedAddresses;
46469 var isXpubkey = bip32RootKey.isNeutered();
46470 if (hardened && isXpubkey) {
46471 return "Hardened derivation path is invalid with xpub key";
46476 function displayBip44Info() {
46477 // Get the derivation path for the account
46478 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46479 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46480 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46482 path += purpose + "'/";
46483 path += coin + "'/";
46484 path += account + "'/";
46485 // Calculate the account extended keys
46486 var accountExtendedKey = calcBip32ExtendedKey(path);
46487 var accountXprv = accountExtendedKey.toBase58();
46488 var accountXpub = accountExtendedKey.neutered().toBase58();
46489 // Display the extended keys
46490 DOM.bip44accountXprv.val(accountXprv);
46491 DOM.bip44accountXpub.val(accountXpub);
46494 function displayBip49Info() {
46495 // Get the derivation path for the account
46496 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46497 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46498 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46500 path += purpose + "'/";
46501 path += coin + "'/";
46502 path += account + "'/";
46503 // Calculate the account extended keys
46504 var accountExtendedKey = calcBip32ExtendedKey(path);
46505 var accountXprv = accountExtendedKey.toBase58();
46506 var accountXpub = accountExtendedKey.neutered().toBase58();
46507 // Display the extended keys
46508 DOM.bip49accountXprv.val(accountXprv);
46509 DOM.bip49accountXpub.val(accountXpub);
46512 function displayBip32Info() {
46514 DOM.seed.val(seed);
46515 var rootKey = bip32RootKey.toBase58();
46516 DOM.rootKey.val(rootKey);
46517 var xprvkeyB58 = "NA";
46518 if (!bip32ExtendedKey.isNeutered()) {
46519 xprvkeyB58 = bip32ExtendedKey.toBase58();
46521 var extendedPrivKey = xprvkeyB58;
46522 DOM.extendedPrivKey.val(extendedPrivKey);
46523 var extendedPubKey = bip32ExtendedKey.neutered().toBase58();
46524 DOM.extendedPubKey.val(extendedPubKey);
46525 // Display the addresses and privkeys
46526 clearAddressesList();
46527 displayAddresses(
0,
20);
46530 function displayAddresses(start, total) {
46531 generationProcesses.push(new (function() {
46535 this.stop = function() {
46536 for (var i=
0; i
<rows.length; i++) {
46537 rows[i].shouldGenerate = false;
46542 for (var i=
0; i
<total; i++) {
46543 var index = i + start;
46544 var isLast = i == total -
1;
46545 rows.push(new TableRow(index, isLast));
46551 function TableRow(index, isLast) {
46554 this.shouldGenerate = true;
46555 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
46556 var isP2wpkhNestedInP2sh = bip49TabSelected() || (bip32TabSelected() && useP2wpkhNestedInP2sh());
46557 var p2wpkhNestedInP2shAvailable = networkHasBip49();
46563 function calculateValues() {
46564 setTimeout(function() {
46565 if (!self.shouldGenerate) {
46569 if (useHardenedAddresses) {
46570 key = bip32ExtendedKey.deriveHardened(index);
46573 key = bip32ExtendedKey.derive(index);
46575 var address = key.getAddress().toString();
46576 var privkey =
"NA";
46577 if (!key.isNeutered()) {
46578 privkey = key.keyPair.toWIF(network);
46580 var pubkey = key.getPublicKeyBuffer().toString('hex');
46581 var indexText = getDerivationPath() +
"/" + index;
46582 if (useHardenedAddresses) {
46583 indexText = indexText +
"'";
46585 // Ethereum values are different
46586 if (networks[DOM.network.val()].name ==
"ETH - Ethereum") {
46587 var privKeyBuffer = key.keyPair.d.toBuffer();
46588 privkey = privKeyBuffer.toString('hex');
46589 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
46590 var hexAddress = addressBuffer.toString('hex');
46591 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
46592 address = ethUtil.addHexPrefix(checksumAddress);
46593 privkey = ethUtil.addHexPrefix(privkey);
46594 pubkey = ethUtil.addHexPrefix(pubkey);
46596 // Ripple values are different
46597 if (networks[DOM.network.val()].name ==
"XRP - Ripple") {
46598 privkey = convertRipplePriv(privkey);
46599 address = convertRippleAdrr(address);
46601 // BIP49 addresses are different
46602 if (isP2wpkhNestedInP2sh) {
46603 if (!p2wpkhNestedInP2shAvailable) {
46606 var keyhash = bitcoinjs.bitcoin.crypto.hash160(key.getPublicKeyBuffer());
46607 var scriptsig = bitcoinjs.bitcoin.script.witnessPubKeyHash.output.encode(keyhash);
46608 var addressbytes = bitcoinjs.bitcoin.crypto.hash160(scriptsig);
46609 var scriptpubkey = bitcoinjs.bitcoin.script.scriptHash.output.encode(addressbytes);
46610 address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network)
46612 addAddressToList(indexText, address, pubkey, privkey);
46623 function showMore() {
46624 var start = DOM.addresses.children().length;
46625 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
46626 if (isNaN(rowsToAdd)) {
46628 DOM.rowsToAdd.val(
"20");
46630 if (rowsToAdd
> 200) {
46631 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
46632 msg +=
"Do you want to continue?";
46633 if (!confirm(msg)) {
46637 displayAddresses(start, rowsToAdd);
46640 function clearDisplay() {
46641 clearAddressesList();
46643 hideValidationError();
46646 function clearAddressesList() {
46647 DOM.addresses.empty();
46651 function stopGenerating() {
46652 while (generationProcesses.length
> 0) {
46653 var generation = generationProcesses.shift();
46658 function clearKeys() {
46660 clearDerivedKeys();
46663 function clearRootKey() {
46664 DOM.rootKey.val(
"");
46667 function clearDerivedKeys() {
46668 DOM.extendedPrivKey.val(
"");
46669 DOM.extendedPubKey.val(
"");
46670 DOM.bip44accountXprv.val(
"");
46671 DOM.bip44accountXpub.val(
"");
46674 function addAddressToList(indexText, address, pubkey, privkey) {
46675 var row = $(addressRowTemplate.html());
46677 var indexCell = row.find(
".index span");
46678 var addressCell = row.find(
".address span");
46679 var pubkeyCell = row.find(
".pubkey span");
46680 var privkeyCell = row.find(
".privkey span");
46682 indexCell.text(indexText);
46683 addressCell.text(address);
46684 pubkeyCell.text(pubkey);
46685 privkeyCell.text(privkey);
46688 indexCell.addClass(
"invisible");
46690 if (!showAddress) {
46691 addressCell.addClass(
"invisible");
46694 pubkeyCell.addClass(
"invisible");
46696 if (!showPrivKey) {
46697 privkeyCell.addClass(
"invisible");
46699 DOM.addresses.append(row);
46700 var rowShowQrEls = row.find(
"[data-show-qr]");
46701 setQrEvents(rowShowQrEls);
46704 function hasStrongRandom() {
46705 return 'crypto' in window && window['crypto'] !== null;
46708 function disableForms() {
46709 $(
"form").on(
"submit", function(e) {
46710 e.preventDefault();
46714 function parseIntNoNaN(val, defaultVal) {
46715 var v = parseInt(val);
46722 function showPending() {
46724 .text(
"Calculating...")
46728 function findNearestWord(word) {
46729 var language = getLanguage();
46730 var words = WORDLISTS[language];
46731 var minDistance =
99;
46732 var closestWord = words[
0];
46733 for (var i=
0; i
<words.length; i++) {
46734 var comparedTo = words[i];
46735 if (comparedTo.indexOf(word) ==
0) {
46738 var distance = Levenshtein.get(word, comparedTo);
46739 if (distance < minDistance) {
46740 closestWord = comparedTo;
46741 minDistance = distance;
46744 return closestWord;
46747 function hidePending() {
46753 function populateNetworkSelect() {
46754 for (var i=
0; i
<networks.length; i++) {
46755 var network = networks[i];
46756 var option = $(
"<option>");
46757 option.attr(
"value", i);
46758 option.text(network.name);
46759 if (network.name ==
"BTC - Bitcoin") {
46760 option.prop(
"selected", true);
46762 DOM.phraseNetwork.append(option);
46766 function populateClientSelect() {
46767 for (var i=
0; i
<clients.length; i++) {
46768 var client = clients[i];
46769 var option = $(
"<option>");
46770 option.attr(
"value", i);
46771 option.text(client.name);
46772 DOM.bip32Client.append(option);
46776 function getLanguage() {
46777 var defaultLanguage =
"english";
46778 // Try to get from existing phrase
46779 var language = getLanguageFromPhrase();
46780 // Try to get from url if not from phrase
46781 if (language.length ==
0) {
46782 language = getLanguageFromUrl();
46784 // Default to English if no other option
46785 if (language.length ==
0) {
46786 language = defaultLanguage;
46791 function getLanguageFromPhrase(phrase) {
46792 // Check if how many words from existing phrase match a language.
46795 phrase = DOM.phrase.val();
46797 if (phrase.length
> 0) {
46798 var words = phraseToWordArray(phrase);
46799 var languageMatches = {};
46800 for (l in WORDLISTS) {
46801 // Track how many words match in this language
46802 languageMatches[l] =
0;
46803 for (var i=
0; i
<words.length; i++) {
46804 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
46805 if (wordInLanguage) {
46806 languageMatches[l]++;
46809 // Find languages with most word matches.
46810 // This is made difficult due to commonalities between Chinese
46811 // simplified vs traditional.
46812 var mostMatches =
0;
46813 var mostMatchedLanguages = [];
46814 for (var l in languageMatches) {
46815 var numMatches = languageMatches[l];
46816 if (numMatches
> mostMatches) {
46817 mostMatches = numMatches;
46818 mostMatchedLanguages = [l];
46820 else if (numMatches == mostMatches) {
46821 mostMatchedLanguages.push(l);
46825 if (mostMatchedLanguages.length
> 0) {
46826 // Use first language and warn if multiple detected
46827 language = mostMatchedLanguages[
0];
46828 if (mostMatchedLanguages.length
> 1) {
46829 console.warn(
"Multiple possible languages");
46830 console.warn(mostMatchedLanguages);
46837 function getLanguageFromUrl() {
46838 for (var language in WORDLISTS) {
46839 if (window.location.hash.indexOf(language)
> -
1) {
46846 function setMnemonicLanguage() {
46847 var language = getLanguage();
46848 // Load the bip39 mnemonic generator for this language if required
46849 if (!(language in mnemonics)) {
46850 mnemonics[language] = new Mnemonic(language);
46852 mnemonic = mnemonics[language];
46855 function convertPhraseToNewLanguage() {
46856 var oldLanguage = getLanguageFromPhrase();
46857 var newLanguage = getLanguageFromUrl();
46858 var oldPhrase = DOM.phrase.val();
46859 var oldWords = phraseToWordArray(oldPhrase);
46861 for (var i=
0; i
<oldWords.length; i++) {
46862 var oldWord = oldWords[i];
46863 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
46864 var newWord = WORDLISTS[newLanguage][index];
46865 newWords.push(newWord);
46867 newPhrase = wordArrayToPhrase(newWords);
46871 // TODO look at jsbip39 - mnemonic.splitWords
46872 function phraseToWordArray(phrase) {
46873 var words = phrase.split(/\s/g);
46875 for (var i=
0; i
<words.length; i++) {
46876 var word = words[i];
46877 if (word.length
> 0) {
46878 noBlanks.push(word);
46884 // TODO look at jsbip39 - mnemonic.joinWords
46885 function wordArrayToPhrase(words) {
46886 var phrase = words.join(
" ");
46887 var language = getLanguageFromPhrase(phrase);
46888 if (language ==
"japanese") {
46889 phrase = words.join(
"\u3000");
46894 function isUsingOwnEntropy() {
46895 return DOM.useEntropy.prop(
"checked");
46898 function setMnemonicFromEntropy() {
46899 clearEntropyFeedback();
46900 // Get entropy value
46901 var entropyStr = DOM.entropy.val();
46902 // Work out minimum base for entropy
46903 var entropy = Entropy.fromString(entropyStr);
46904 if (entropy.binaryStr.length ==
0) {
46907 // Show entropy details
46908 showEntropyFeedback(entropy);
46909 // Use entropy hash if not using raw entropy
46910 var bits = entropy.binaryStr;
46911 var mnemonicLength = DOM.entropyMnemonicLength.val();
46912 if (mnemonicLength !=
"raw") {
46913 // Get bits by hashing entropy with SHA256
46914 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
46915 var hex = sjcl.codec.hex.fromBits(hash);
46916 bits = BigInteger.parse(hex,
16).toString(
2);
46917 while (bits.length %
256 !=
0) {
46920 // Truncate hash to suit number of words
46921 mnemonicLength = parseInt(mnemonicLength);
46922 var numberOfBits =
32 * mnemonicLength /
3;
46923 bits = bits.substring(
0, numberOfBits);
46925 // Discard trailing entropy
46926 var bitsToUse = Math.floor(bits.length /
32) *
32;
46927 var start = bits.length - bitsToUse;
46928 var binaryStr = bits.substring(start);
46929 // Convert entropy string to numeric array
46930 var entropyArr = [];
46931 for (var i=
0; i
<binaryStr.length /
8; i++) {
46932 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
46933 var entropyByte = parseInt(byteAsBits,
2);
46934 entropyArr.push(entropyByte)
46936 // Convert entropy array to mnemonic
46937 var phrase = mnemonic.toMnemonic(entropyArr);
46938 // Set the mnemonic in the UI
46939 DOM.phrase.val(phrase);
46942 function clearEntropyFeedback() {
46943 DOM.entropyCrackTime.text(
"...");
46944 DOM.entropyType.text(
"");
46945 DOM.entropyWordCount.text(
"0");
46946 DOM.entropyEventCount.text(
"0");
46947 DOM.entropyBitsPerEvent.text(
"0");
46948 DOM.entropyBits.text(
"0");
46949 DOM.entropyFiltered.html(
" ");
46950 DOM.entropyBinary.html(
" ");
46953 function showEntropyFeedback(entropy) {
46954 var numberOfBits = entropy.binaryStr.length;
46955 var timeToCrack =
"unknown";
46957 var z = zxcvbn(entropy.base.parts.join(
""));
46958 timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
46959 if (z.feedback.warning !=
"") {
46960 timeToCrack = timeToCrack +
" - " + z.feedback.warning;
46964 console.log(
"Error detecting entropy strength with zxcvbn:");
46967 var entropyTypeStr = getEntropyTypeStr(entropy);
46968 var wordCount = Math.floor(numberOfBits /
32) *
3;
46969 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
46970 DOM.entropyFiltered.html(entropy.cleanHtml);
46971 DOM.entropyType.text(entropyTypeStr);
46972 DOM.entropyCrackTime.text(timeToCrack);
46973 DOM.entropyEventCount.text(entropy.base.ints.length);
46974 DOM.entropyBits.text(numberOfBits);
46975 DOM.entropyWordCount.text(wordCount);
46976 DOM.entropyBinary.text(entropy.binaryStr);
46977 DOM.entropyBitsPerEvent.text(bitsPerEvent);
46978 // detect and warn of filtering
46979 var rawNoSpaces = DOM.entropy.val().replace(/\s/g,
"");
46980 var cleanNoSpaces = entropy.cleanStr.replace(/\s/g,
"");
46981 var isFiltered = rawNoSpaces.length != cleanNoSpaces.length;
46983 DOM.entropyFilterWarning.removeClass('hidden');
46986 DOM.entropyFilterWarning.addClass('hidden');
46990 function getEntropyTypeStr(entropy) {
46991 var typeStr = entropy.base.str;
46992 // Add some detail if these are cards
46993 if (entropy.base.asInt ==
52) {
46994 var cardDetail = []; // array of message strings
46995 // Detect duplicates
46997 var dupeTracker = {};
46998 for (var i=
0; i
<entropy.base.parts.length; i++) {
46999 var card = entropy.base.parts[i];
47000 var cardUpper = card.toUpperCase();
47001 if (cardUpper in dupeTracker) {
47004 dupeTracker[cardUpper] = true;
47006 if (dupes.length
> 0) {
47007 var dupeWord =
"duplicates";
47008 if (dupes.length ==
1) {
47009 dupeWord =
"duplicate";
47011 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
47012 if (dupes.length
> 3) {
47015 cardDetail.push(msg);
47017 // Detect full deck
47018 var uniqueCards = [];
47019 for (var uniqueCard in dupeTracker) {
47020 uniqueCards.push(uniqueCard);
47022 if (uniqueCards.length ==
52) {
47023 cardDetail.unshift(
"full deck");
47025 // Detect missing cards
47026 var values =
"A23456789TJQK";
47027 var suits =
"CDHS";
47028 var missingCards = [];
47029 for (var i=
0; i
<suits.length; i++) {
47030 for (var j=
0; j
<values.length; j++) {
47031 var card = values[j] + suits[i];
47032 if (!(card in dupeTracker)) {
47033 missingCards.push(card);
47037 // Display missing cards if six or less, ie clearly going for full deck
47038 if (missingCards.length
> 0 && missingCards.length <=
6) {
47039 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
47040 if (missingCards.length
> 3) {
47043 cardDetail.push(msg);
47045 // Add card details to typeStr
47046 if (cardDetail.length
> 0) {
47047 typeStr +=
" (" + cardDetail.join(
", ") +
")";
47053 function setQrEvents(els) {
47054 els.on(
"mouseenter", createQr);
47055 els.on(
"mouseleave", destroyQr);
47056 els.on(
"click", toggleQr);
47059 function createQr(e) {
47060 var content = e.target.textContent || e.target.value;
47063 DOM.qrImage.qrcode({width: size, height: size, text: content});
47065 DOM.qrHider.addClass(
"hidden");
47068 DOM.qrHider.removeClass(
"hidden");
47070 DOM.qrContainer.removeClass(
"hidden");
47074 function destroyQr() {
47075 DOM.qrImage.text(
"");
47076 DOM.qrContainer.addClass(
"hidden");
47079 function toggleQr() {
47081 DOM.qrHider.toggleClass(
"hidden");
47082 DOM.qrHint.toggleClass(
"hidden");
47085 function bip44TabSelected() {
47086 return DOM.bip44tab.hasClass(
"active");
47089 function bip32TabSelected() {
47090 return DOM.bip32tab.hasClass(
"active");
47093 function useP2wpkhNestedInP2sh() {
47094 return DOM.useP2wpkhNestedInP2sh.prop(
"checked");
47097 function networkHasBip49() {
47098 return networks[DOM.network.val()].p2wpkhNestedInP2shAvailable;
47101 function bip49TabSelected() {
47102 return DOM.bip49tab.hasClass(
"active");
47105 function setHdCoin(coinValue) {
47106 DOM.bip44coin.val(coinValue);
47107 DOM.bip49coin.val(coinValue);
47110 function showP2wpkhNestedInP2shAvailable() {
47111 DOM.bip49unavailable.addClass(
"hidden");
47112 DOM.bip49available.removeClass(
"hidden");
47113 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", false);
47116 function showP2wpkhNestedInP2shUnavailable() {
47117 DOM.bip49available.addClass(
"hidden");
47118 DOM.bip49unavailable.removeClass(
"hidden");
47119 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", true);
47120 DOM.useP2wpkhNestedInP2sh.prop(
"checked", false);
47125 name:
"BCH - Bitcoin Cash",
47126 p2wpkhNestedInP2shAvailable: false,
47127 onSelect: function() {
47128 network = bitcoinjs.bitcoin.networks.bitcoin;
47133 name:
"BTC - Bitcoin",
47134 p2wpkhNestedInP2shAvailable: true,
47135 onSelect: function() {
47136 network = bitcoinjs.bitcoin.networks.bitcoin;
47141 name:
"BTC - Bitcoin Testnet",
47142 p2wpkhNestedInP2shAvailable: true,
47143 onSelect: function() {
47144 network = bitcoinjs.bitcoin.networks.testnet;
47149 name:
"CLAM - Clams",
47150 p2wpkhNestedInP2shAvailable: false,
47151 onSelect: function() {
47152 network = bitcoinjs.bitcoin.networks.clam;
47157 name:
"CRW - Crown",
47158 p2wpkhNestedInP2shAvailable: false,
47159 onSelect: function() {
47160 network = bitcoinjs.bitcoin.networks.crown;
47165 name:
"DASH - Dash",
47166 p2wpkhNestedInP2shAvailable: false,
47167 onSelect: function() {
47168 network = bitcoinjs.bitcoin.networks.dash;
47173 name:
"DASH - Dash Testnet",
47174 p2wpkhNestedInP2shAvailable: false,
47175 onSelect: function() {
47176 network = bitcoinjs.bitcoin.networks.dashtn;
47181 name:
"DOGE - Dogecoin",
47182 p2wpkhNestedInP2shAvailable: false,
47183 onSelect: function() {
47184 network = bitcoinjs.bitcoin.networks.dogecoin;
47189 name:
"ETH - Ethereum",
47190 p2wpkhNestedInP2shAvailable: false,
47191 onSelect: function() {
47192 network = bitcoinjs.bitcoin.networks.bitcoin;
47197 name:
"FJC - Fujicoin",
47198 p2wpkhNestedInP2shAvailable: false,
47199 onSelect: function() {
47200 network = bitcoinjs.bitcoin.networks.fujicoin;
47205 name:
"GAME - GameCredits",
47206 p2wpkhNestedInP2shAvailable: false,
47207 onSelect: function() {
47208 network = bitcoinjs.bitcoin.networks.game;
47213 name:
"JBS - Jumbucks",
47214 p2wpkhNestedInP2shAvailable: false,
47215 onSelect: function() {
47216 network = bitcoinjs.bitcoin.networks.jumbucks;
47221 name:
"LTC - Litecoin",
47222 p2wpkhNestedInP2shAvailable: false,
47223 onSelect: function() {
47224 network = bitcoinjs.bitcoin.networks.litecoin;
47226 DOM.litecoinLtubContainer.removeClass(
"hidden");
47230 name:
"MAZA - Maza",
47231 p2wpkhNestedInP2shAvailable: false,
47232 onSelect: function() {
47233 network = bitcoinjs.bitcoin.networks.maza;
47239 name:
"NMC - Namecoin",
47240 p2wpkhNestedInP2shAvailable: false,
47241 onSelect: function() {
47242 network = bitcoinjs.bitcoin.networks.namecoin;
47247 name:
"PIVX - PIVX",
47248 p2wpkhNestedInP2shAvailable: false,
47249 onSelect: function() {
47250 network = bitcoinjs.bitcoin.networks.pivx;
47255 name:
"PIVX - PIVX Testnet",
47256 p2wpkhNestedInP2shAvailable: false,
47257 onSelect: function() {
47258 network = bitcoinjs.bitcoin.networks.pivxtestnet;
47263 name:
"PPC - Peercoin",
47264 p2wpkhNestedInP2shAvailable: false,
47265 onSelect: function() {
47266 network = bitcoinjs.bitcoin.networks.peercoin;
47271 name:
"SDC - ShadowCash",
47272 p2wpkhNestedInP2shAvailable: false,
47273 onSelect: function() {
47274 network = bitcoinjs.bitcoin.networks.shadow;
47279 name:
"SDC - ShadowCash Testnet",
47280 p2wpkhNestedInP2shAvailable: false,
47281 onSelect: function() {
47282 network = bitcoinjs.bitcoin.networks.shadowtn;
47287 name:
"SLM - Slimcoin",
47288 p2wpkhNestedInP2shAvailable: false,
47289 onSelect: function() {
47290 network = bitcoinjs.bitcoin.networks.slimcoin;
47295 name:
"SLM - Slimcoin Testnet",
47296 p2wpkhNestedInP2shAvailable: false,
47297 onSelect: function() {
47298 network = bitcoinjs.bitcoin.networks.slimcointn;
47303 name:
"VIA - Viacoin",
47304 p2wpkhNestedInP2shAvailable: false,
47305 onSelect: function() {
47306 network = bitcoinjs.bitcoin.networks.viacoin;
47311 name:
"VIA - Viacoin Testnet",
47312 p2wpkhNestedInP2shAvailable: false,
47313 onSelect: function() {
47314 network = bitcoinjs.bitcoin.networks.viacointestnet;
47319 name:
"XMY - Myriadcoin",
47320 p2wpkhNestedInP2shAvailable: false,
47321 onSelect: function() {
47322 network = bitcoinjs.bitcoin.networks.myriadcoin;
47327 name:
"XRP - Ripple",
47328 p2wpkhNestedInP2shAvailable: false,
47329 onSelect: function() {
47330 network = bitcoinjs.bitcoin.networks.bitcoin;
47338 name:
"Bitcoin Core",
47339 onSelect: function() {
47340 DOM.bip32path.val(
"m/0'/0'");
47341 DOM.hardenedAddresses.prop('checked', true);
47345 name:
"blockchain.info",
47346 onSelect: function() {
47347 DOM.bip32path.val(
"m/44'/0'/0'");
47348 DOM.hardenedAddresses.prop('checked', false);
47352 name:
"MultiBit HD",
47353 onSelect: function() {
47354 DOM.bip32path.val(
"m/0'/0");
47355 DOM.hardenedAddresses.prop('checked', false);