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;
113 <div class=
"container">
115 <h1 class=
"text-center">Mnemonic Code Converter
</h1>
118 <div class=
"col-md-12">
120 <form class=
"form-horizontal" role=
"form">
121 <div class=
"form-group">
122 <div class=
"col-sm-2"></div>
123 <div class=
"col-sm-10">
124 <p data-translate
>You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).
</p>
125 <p data-translate-html
>
126 For more info see the
127 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target=
"_blank">BIP39 spec
</a>.
131 <div class=
"form-group generate-container">
132 <label class=
"col-sm-2 control-label"></label>
133 <div class=
"col-sm-10">
134 <div class=
"form-inline">
135 <div class=
"input-group-inline">
136 <span data-translate
>Generate a random mnemonic, or enter your own below
</span>:
137 <button class=
"btn generate">Generate
</button>
138 <select id=
"strength" class=
"strength form-control">
139 <option value=
"3">3</option>
140 <option value=
"6">6</option>
141 <option value=
"9">9</option>
142 <option value=
"12">12</option>
143 <option value=
"15" selected
>15</option>
144 <option value=
"18">18</option>
145 <option value=
"21">21</option>
146 <option value=
"24">24</option>
148 <span data-translate
>words
</span>
153 <div class=
"entropy-container hidden">
154 <div class=
"form-group text-danger">
155 <label class=
"col-sm-2 control-label" data-translate
>Warning
</label>
156 <div class=
"col-sm-10 form-control-static">
157 <span data-translate
>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
158 <a href=
"#entropy-notes" data-translate
>Read more
</a>
161 <div class=
"form-group">
162 <label for=
"entropy" class=
"col-sm-2 control-label" data-translate
>Entropy
</label>
163 <div class=
"col-sm-7">
164 <textarea id=
"entropy" rows=
"2" class=
"entropy form-control" placeholder=
"Accepts binary, base 6, 6-sided dice, base 10, hexadecimal, cards" data-translate-placeholder
></textarea>
166 <label class=
"col-sm-3 control-label" data-translate
>Strength
</label>
167 <div class=
"strength col-sm-3 form-control-static"></div>
168 <label class=
"col-sm-3 control-label" data-translate
>Event Count
</label>
169 <div class=
"event-count col-sm-3 form-control-static"></div>
172 <label class=
"col-sm-3 control-label" data-translate
>Entropy Type
</label>
173 <div class=
"type col-sm-3 form-control-static"></div>
174 <label class=
"col-sm-3 control-label" data-translate
>Bits Per Event
</label>
175 <div class=
"bits-per-event col-sm-3 form-control-static"></div>
178 <label class=
"col-sm-3 control-label" data-translate
>Word Count
</label>
179 <div class=
"word-count col-sm-3 form-control-static"></div>
180 <label class=
"col-sm-3 control-label" data-translate
><span class=
"more-info" data-translate-title
title=
"Total bits of entropy may be less than indicated if any entropy event uses a weak source.">Total Bits
</span></label>
181 <div class=
"bits col-sm-3 form-control-static"></div>
183 <label class=
"col-sm-3 control-label" data-translate
>Filtered Entropy
</label>
184 <div class=
"filtered col-sm-9 form-control-static"></div>
185 <label class=
"col-sm-3 control-label" data-translate
>Raw Binary
</label>
186 <div class=
"binary col-sm-9 form-control-static"></div>
187 <label class=
"col-sm-3 control-label" data-translate
>Mnemonic Length
</label>
188 <div class=
"col-sm-9">
189 <select class=
"mnemonic-length form-control">
190 <option value=
"raw" selected data-translate
>Use Raw Entropy (
3 words per
32 bits)
</option>
191 <option value=
"12">12 <span data-translate
>Words
</span></option>
192 <option value=
"15">15 <span data-translate
>Words
</option>
193 <option value=
"18">18 <span data-translate
>Words
</span></option>
194 <option value=
"21">21 <span data-translate
>Words
</span></option>
195 <option value=
"24">24 <span data-translate
>Words
</span></option>
199 <div class=
"col-sm-3">
200 <p data-translate
>Valid entropy values include:
</p>
202 <li><strong data-translate
>Binary
</strong> [
0-
1]
<br>101010011</li>
203 <li><strong data-translate
>Base
6</strong> [
0-
5]
<br>123434014</li>
204 <li><strong data-translate
>Dice
</strong> [
1-
6]
<br>62535634</li>
205 <li><strong data-translate
>Base
10</strong> [
0-
9]
<br>90834528</li>
206 <li><strong data-translate
>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
207 <li><strong data-translate
>Card
</strong> [A2-
9TJQK][CDHS]
<br>ahqs9dtc
</li>
212 <div class=
"form-group">
213 <div class=
"col-sm-2"></div>
214 <div class=
"col-sm-10 checkbox">
216 <input type=
"checkbox" class=
"use-entropy">
217 <span data-translate
>Supply my own source of entropy
</span>
221 <div class=
"form-group">
222 <label class=
"col-sm-2 control-label" data-translate
>Mnemonic Language
</label>
223 <div class=
"col-sm-10 languages">
224 <div class=
"form-control no-border">
225 <a href=
"#english">English
</a>
226 <a href=
"#japanese" title=
"Japanese">日本語
</a>
227 <a href=
"#spanish" title=
"Spanish">Español
</a>
228 <a href=
"#chinese_simplified" title=
"Chinese (Simplified)">中文(简体)
</a>
229 <a href=
"#chinese_traditional" title=
"Chinese (Traditional)">中文(繁體)
</a>
230 <a href=
"#french" title=
"French">Français
</a>
231 <a href=
"#italian" title=
"Italian">Italiano
</a>
235 <div class=
"form-group">
236 <label for=
"phrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Mnemonic
</label>
237 <div class=
"col-sm-10">
238 <textarea id=
"phrase" class=
"phrase form-control" data-show-qr
></textarea>
241 <div class=
"form-group">
242 <label for=
"passphrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Passphrase (optional)
</label>
243 <div class=
"col-sm-10">
244 <textarea id=
"passphrase" class=
"passphrase form-control"></textarea>
247 <div class=
"form-group">
248 <label for=
"seed" class=
"col-sm-2 control-label" data-translate
>BIP39 Seed
</label>
249 <div class=
"col-sm-10">
250 <textarea id=
"seed" class=
"seed form-control" readonly=
"readonly" data-show-qr
></textarea>
253 <div class=
"form-group">
254 <label for=
"network-phrase" class=
"col-sm-2 control-label" data-translate
>Coin
</label>
255 <div class=
"col-sm-10">
256 <select id=
"network-phrase" class=
"network form-control">
257 <!-- populated by javascript -->
261 <div class=
"form-group">
262 <label for=
"root-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Root Key
</label>
263 <div class=
"col-sm-10">
264 <textarea id=
"root-key" class=
"root-key form-control" data-show-qr
></textarea>
274 <div class=
"col-md-12">
275 <h2>Derivation Path
</h2>
276 <ul class=
"derivation-type nav nav-tabs" role=
"tablist">
277 <li id=
"bip44-tab" class=
"active">
278 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
281 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
284 <div class=
"derivation-type tab-content">
285 <div id=
"bip44" class=
"tab-pane active">
286 <form class=
"form-horizontal" role=
"form">
288 <div class=
"col-sm-2"></div>
289 <div class=
"col-sm-10">
290 <p data-translate-html
>
291 For more info see the
292 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
295 <div class=
"form-group">
296 <label for=
"purpose" class=
"col-sm-2 control-label">
297 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
299 <div class=
"col-sm-10">
300 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44">
303 <div class=
"form-group">
304 <label for=
"coin" class=
"col-sm-2 control-label">
305 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
307 <div class=
"col-sm-10">
308 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0">
311 <div class=
"form-group">
312 <label for=
"account" class=
"col-sm-2 control-label">
313 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
315 <div class=
"col-sm-10">
316 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
319 <div class=
"form-group">
320 <label for=
"change" class=
"col-sm-2 control-label">
321 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
323 <div class=
"col-sm-10">
324 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
327 <div class=
"form-group">
328 <label class=
"col-sm-2 control-label">
330 <div class=
"col-sm-10">
331 <p data-translate
>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
334 <div class=
"form-group">
335 <label for=
"account-xprv" class=
"col-sm-2 control-label">
336 <span data-translate
>Account Extended Private Key
</span>
338 <div class=
"col-sm-10">
339 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
342 <div class=
"form-group">
343 <label for=
"account-xpub" class=
"col-sm-2 control-label">
344 <span data-translate
>Account Extended Public Key
</span>
346 <div class=
"col-sm-10">
347 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
350 <div class=
"form-group">
351 <label class=
"col-sm-2 control-label">
353 <div class=
"col-sm-10">
354 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
357 <div class=
"form-group">
358 <label for=
"bip44-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
359 <div class=
"col-sm-10">
360 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
365 <div id=
"bip32" class=
"tab-pane">
366 <form class=
"form-horizontal" role=
"form">
368 <div class=
"col-sm-2"></div>
369 <div class=
"col-sm-10">
371 For more info see the
372 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
375 <div class=
"form-group">
376 <label for=
"bip32-client" class=
"col-sm-2 control-label" data-translate
>Client
</label>
377 <div class=
"col-sm-10">
378 <select id=
"bip32-client" class=
"client form-control">
379 <option value=
"custom">Custom derivation path
</option>
380 <!-- populated by javascript -->
384 <div class=
"form-group">
385 <label for=
"bip32-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
386 <div class=
"col-sm-10">
387 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
390 <div class=
"form-group">
391 <div class=
"col-sm-2"></div>
392 <label class=
"col-sm-10">
393 <input class=
"hardened-addresses" type=
"checkbox">
394 <span data-translate
>Use hardened addresses
</span>
397 <div class=
"form-group">
398 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Bitcoin Core
</label>
399 <div class=
"col-sm-10">
400 <p class=
"form-control no-border" data-translate-html
>
401 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
403 <p class=
"form-control no-border" data-translate-html
>
404 For more info see the
405 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
409 <div class=
"form-group">
410 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Multibit
</label>
411 <div class=
"col-sm-10">
412 <p class=
"form-control no-border">
413 <span data-translate-html
>Use path
<code>m/
0'/
0</code>.
</span>
415 <p class=
"form-control no-border">
416 <span data-translate
>For more info see
</span>
417 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
421 <div class=
"form-group">
422 <label class=
"col-sm-2 control-label" data-translate
>Block Explorers
</label>
423 <div class=
"col-sm-10">
424 <p class=
"form-control no-border">
425 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
426 <span data-translate-html
>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
428 <p class=
"form-control no-border">
429 <span data-translate
>Can be used with
</span>:
430 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
437 <form class=
"form-horizontal" role=
"form">
438 <div class=
"form-group">
439 <label for=
"extended-priv-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Private Key
</label>
440 <div class=
"col-sm-10">
441 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
444 <div class=
"form-group">
445 <label for=
"extended-pub-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Public Key
</label>
446 <div class=
"col-sm-10">
447 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
457 <div class=
"col-md-12">
458 <h2>Derived Addresses
</h2>
459 <p data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
460 <table class=
"table table-striped">
463 <div class=
"input-group">
464 <span data-translate
>Path
</span>
465 <button class=
"index-toggle" data-translate
>Toggle
</button>
469 <div class=
"input-group">
470 <span data-translate
>Address
</span>
471 <button class=
"address-toggle" data-translate
>Toggle
</button>
475 <div class=
"input-group">
476 <span data-translate
>Public Key
</span>
477 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
481 <div class=
"input-group">
482 <span data-translate
>Private Key
</span>
483 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
487 <tbody class=
"addresses monospace">
488 <tr><td> </td><td> </td><td> </td><td> </td></tr>
489 <tr><td> </td><td> </td><td> </td><td> </td></tr>
490 <tr><td> </td><td> </td><td> </td><td> </td></tr>
491 <tr><td> </td><td> </td><td> </td><td> </td></tr>
492 <tr><td> </td><td> </td><td> </td><td> </td></tr>
497 <span data-translate
>Show more rows
</span>:
498 <input type=
"number" class=
"rows-to-add" value=
"20">
499 <button class=
"more" data-translate
>Show
</button>
504 <div class=
"col-md-12">
505 <h2 data-translate
>More info
</h2>
506 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
507 <p data-translate-html
>
509 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
511 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
512 <p data-translate-html
>
514 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
516 <p data-translate-html
>
518 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
520 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
521 <p data-translate-html
>
523 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
525 <h3 data-translate
>Private Keys
</h3>
527 <span data-translate-html
>
529 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
531 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
533 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
535 <span data-translate-html
>
536 Entropy values must be sourced from a
537 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
539 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
540 <span data-translate-html
>
541 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
542 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
543 random enough for the needs of this tool.
547 <strong><span data-translate
>Do not store entropy.
</span></strong>
550 <span data-translate
>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a mnemonic.
</span>
551 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
552 <span data-translate-html
><a href=
"https://en.wikipedia.org/wiki/Steganography#Physical" target=
"_blank">Steganography
</a> may be beneficial when storing the mnemonic.
</span>
555 <span data-translate-html
>
556 The random mnemonic generator on this page uses a
557 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
559 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
560 <span data-translate
>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
</span>
561 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
564 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
566 <h3 data-translate
>License
</h3>
568 <span data-translate-html
>Please refer to
<a href=
"https://github.com/iancoleman/bip39/blob/master/LICENSE" target=
"_blank">the software license
</a> for more detail.
571 <p data-translate
>The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
</p>
578 <div class=
"col-md-12">
580 <h2 data-translate
>Offline Usage
</h2>
583 You can use this tool without having to be online.
586 In your browser, select file save-as, and save this page
590 Double-click that file to open it in a browser
591 on any offline computer.
594 <span data-translate
>Alternatively, download the file from the repository
</span>
596 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
605 <div class=
"col-md-12">
607 <h2 data-translate
>This project is
100% open-source code
</h2>
610 <span data-translate
>Get the source code from the repository
</span>
612 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
613 https://github.com/iancoleman/bip39
617 <h3 data-translate
>Libraries
</h3>
620 <span>BitcoinJS -
</span>
621 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
622 https://github.com/bitcoinjs/bitcoinjs-lib
627 <span>jsBIP39 -
</span>
628 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
629 https://github.com/iancoleman/jsbip39
635 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
636 https://github.com/bitwiseshiftleft/sjcl
641 <span>jQuery -
</span>
642 <a href=
"https://jquery.com/" target=
"_blank">
648 <span>Twitter Bootstrap -
</span>
649 <a href=
"http://getbootstrap.com/" target=
"_blank">
650 http://getbootstrap.com/
659 <div class=
"qr-container hidden">
660 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
661 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
662 <div class=
"qr-hider hidden">
663 <div class=
"qr-image"></div>
664 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
668 <div class=
"feedback-container">
669 <div class=
"feedback">Loading...
</div>
672 <script type=
"text/template" id=
"address-row-template">
674 <td class=
"index"><span></span></td>
675 <td class=
"address"><span data-show-qr
></span></td>
676 <td class=
"pubkey"><span data-show-qr
></span></td>
677 <td class=
"privkey"><span data-show-qr
></span></td>
681 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
682 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
683 // but is not required in any modern browsers.
684 // For more information, see
685 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
687 //----------------------------------------------------------------------
689 // ECMAScript
2015 Polyfills
691 //----------------------------------------------------------------------
696 // Set this to always override native implementations, for testing
697 // the polyfill in browsers with partial/full ES2015 support.
698 var OVERRIDE_NATIVE_FOR_TESTING = false;
700 var undefined = (void
0); // Paranoia
705 return o === global ? undefined : o;
708 function hook(o, p, f) {
710 console.assert(typeof op === 'function', 'Hooking a non-function');
712 var o = strict(this);
713 var r = f.apply(o, arguments);
714 return r !== undefined ? r : op.apply(o, arguments);
718 function isSymbol(s) {
719 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
722 function getPropertyDescriptor(target, name) {
723 var desc = Object.getOwnPropertyDescriptor(target, name);
724 var proto = Object.getPrototypeOf(target);
725 while (!desc && proto) {
726 desc = Object.getOwnPropertyDescriptor(proto, name);
727 proto = Object.getPrototypeOf(proto);
732 var enqueue = (function(nativePromise, nativeSetImmediate) {
734 return function(job) { nativePromise.resolve().then(function() { job(); }); };
735 if (nativeSetImmediate)
736 return function(job) { nativeSetImmediate(job); };
737 return function(job) { setTimeout(job,
0); };
738 }(global['Promise'], global['setImmediate']));
740 function define(o, p, v, override) {
741 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
744 if (typeof v === 'function') {
745 // Sanity check that functions are appropriately named (where possible)
746 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
747 Object.defineProperty(o, p, {
754 Object.defineProperty(o, p, {
763 function set_internal(o, p, v) {
764 Object.defineProperty(o, p, {
772 // Snapshot intrinsic functions
773 var $isNaN = global.isNaN,
774 $parseInt = global.parseInt,
775 $parseFloat = global.parseFloat;
778 LOG10E = Math.LOG10E,
788 random = Math.random,
791 var orig_match = String.prototype.match,
792 orig_replace = String.prototype.replace,
793 orig_search = String.prototype.search,
794 orig_split = String.prototype.split;
796 // These are used for implementing the polyfills, but not exported.
798 // Inspired by https://gist.github.com/
1638059
800 function EphemeronTable() {
801 var secretKey = ObjectCreate(null);
803 function conceal(o) {
804 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
805 Object.defineProperty(o, 'valueOf', {
806 value: (function(secretKey) {
807 return function (k) {
808 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
819 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
820 return v === o ? null : v;
825 secretKey = ObjectCreate(null);
827 remove: function(key) {
828 var secrets = reveal(key);
829 if (secrets && HasOwnProperty(secrets, 'value')) {
830 delete secrets.value;
835 get: function(key, defaultValue) {
836 var secrets = reveal(key);
837 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
840 var secrets = reveal(key);
841 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
843 set: function(key, value) {
844 var secrets = reveal(key) || conceal(key);
845 secrets.value = value;
850 var empty = Object.create(null);
852 //----------------------------------------------------------------------
855 // http://www.ecma-international.org/ecma-
262/
6.0/
857 //----------------------------------------------------------------------
859 // ---------------------------------------
860 //
19.4 Symbol Objects
861 // ---------------------------------------
863 // NOTE: Symbols are defined here - out of spec order - since we need the
864 // properties and prototype to be populated for other polyfills.
866 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
870 var secret = Object.create(null);
872 symbolForKey = function(k) {
876 var GlobalSymbolRegistry = [];
878 function unique(bits) {
879 return Array(bits +
1).join('x').replace(/x/g, function() {
880 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
884 //
19.4.1 The Symbol Constructor
885 //
19.4.1.1 Symbol ( description=undefined )
886 function Symbol(description) {
887 if (!(this instanceof Symbol)) return new Symbol(description, secret);
888 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
890 var descString = description === undefined ? undefined : String(description);
892 set_internal(this, '[[SymbolData]]', unique(
128));
893 set_internal(this, '[[Description]]', descString);
895 symbolMap[this] = this;
899 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
900 global.Symbol = Symbol;
902 //
19.4.2 Properties of the Symbol Constructor
904 //
19.4.2.1 Symbol.for (key)
905 define(Symbol, 'for', function for_(key) {
906 var stringKey = String(key);
907 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
908 var e = GlobalSymbolRegistry[i];
909 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
911 var newSymbol = Symbol(key);
912 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
916 //
19.4.2.2 Symbol.hasInstance
917 //
19.4.2.3 Symbol.isConcatSpreadable
919 //
19.4.2.4 Symbol.iterator
920 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
922 //
19.4.2.5 Symbol.keyFor (sym)
923 define(Symbol, 'keyFor', function keyFor(sym) {
924 if (!(sym instanceof Symbol)) throw TypeError();
925 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
926 var e = GlobalSymbolRegistry[i];
927 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
932 //
19.4.2.6 Symbol.match
933 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
935 //
19.4.2.7 Symbol.prototype
937 //
19.4.2.8 Symbol.replace
938 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
940 //
19.4.2.9 Symbol.search
941 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
943 //
19.4.2.10 Symbol.species
945 //
19.4.2.11 Symbol.search
946 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
948 //
19.4.2.12 Symbol.toPrimitive
950 //
19.4.2.13 Symbol.toStringTag
951 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
953 //
19.4.2.14 Symbol.unscopables
955 //
19.4.3 Properties of the Symbol Prototype Object
956 //
19.4.3.1 Symbol.prototype.constructor
958 //
19.4.3.2 Symbol.prototype.toString ( )
959 Object.defineProperty(Symbol.prototype, 'toString', {
960 value: function toString() {
961 var s = strict(this);
962 var desc = s['[[Description]]'];
963 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
965 configurable: true, writeable: true, enumerable: false });
967 //
19.4.3.3 Symbol.prototype.valueOf ( )
968 Object.defineProperty(Symbol.prototype, 'valueOf', {
969 value: function valueOf() {
970 // To prevent automatic string conversion:
973 // Spec has approximately the following:
974 //var s = strict(this);
975 //if (Type(s) === 'symbol') return s;
976 //if (Type(s) !== 'object') throw TypeError();
977 //if (!('[[SymbolData]]' in s)) throw TypeError();
978 //return s['[[SymbolData]]'];
980 configurable: true, writeable: true, enumerable: false });
982 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
983 // (Done later to polyfill partial implementations)
985 //
19.4.4 Properties of Symbol Instances
988 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
990 // Defined here so that other prototypes can reference it
991 //
25.1.2 The %IteratorPrototype% Object
992 var $IteratorPrototype$ = {};
994 //----------------------------------------
995 //
6 ECMAScript Data Types and Values
996 //----------------------------------------
998 //
6.1 ECMAScript Language Types
1000 // "Type(x)" is used as shorthand for "the type of x"...
1003 case 'undefined': return 'undefined';
1004 case 'boolean': return 'boolean';
1005 case 'number': return 'number';
1006 case 'string': return 'string';
1007 case 'symbol': return 'symbol';
1009 if (v === null) return 'null';
1010 if (v instanceof global.Symbol) return 'symbol';
1015 //
6.1.5.1 Well-Known Symbols
1016 var $$iterator = global.Symbol.iterator,
1017 $$match = global.Symbol.match,
1018 $$replace = global.Symbol.replace,
1019 $$search = global.Symbol.search,
1020 $$split = global.Symbol.split,
1021 $$toStringTag = global.Symbol.toStringTag;
1023 //----------------------------------------
1024 //
7 Abstract Operations
1025 //----------------------------------------
1027 //----------------------------------------
1028 //
7.1 Type Conversion
1029 //----------------------------------------
1031 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1032 // just use valueOf()
1034 //
7.1.2 ToBoolean ( argument )
1035 // just use Boolean()
1037 //
7.1.3 ToNumber ( argument )
1038 // just use Number()
1040 //
7.1.4 ToInteger ( argument )
1041 function ToInteger(n) {
1043 if ($isNaN(n)) return
0;
1044 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1045 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1048 //
7.1.5 ToInt32 ( argument )
1049 function ToInt32(v) { return v
>> 0; }
1051 //
7.1.6 ToUint32 ( argument )
1052 function ToUint32(v) { return v
>>> 0; }
1054 //
7.1.7 ToInt16 ( argument )
1055 function ToInt16(v) { return (v <<
16)
>> 16; }
1057 //
7.1.8 ToUint16 ( argument )
1058 function ToUint16(v) { return v &
0xFFFF; }
1060 //
7.1.9 ToInt8 ( argument )
1061 function ToInt8(v) { return (v <<
24)
>> 24; }
1063 //
7.1.10 ToUint8 ( argument )
1064 function ToUint8(v) { return v &
0xFF; }
1066 //
7.1.11 ToUint8Clamp ( argument )
1067 function ToUint8Clamp(argument) {
1068 var number = Number(argument);
1069 if ($isNaN(number)) return
0;
1070 if (number <=
0) return
0;
1071 if (number
>=
255) return
255;
1072 var f = floor(number);
1073 if ((f +
0.5) < number) return f +
1;
1074 if (number < (f +
0.5)) return f;
1075 if (f %
2) return f +
1;
1079 //
7.1.12 ToString ( argument )
1080 // just use String()
1082 //
7.1.13 ToObject ( argument )
1083 function ToObject(v) {
1084 if (v === null || v === undefined) throw TypeError();
1088 //
7.1.14 ToPropertyKey ( argument )
1089 function ToPropertyKey(v) {
1093 //
7.1.15 ToLength ( argument )
1094 function ToLength(v) {
1095 var len = ToInteger(v);
1096 if (len <=
0) return
0;
1097 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1098 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1101 //
7.1.16 CanonicalNumericIndexString ( argument )
1103 //----------------------------------------
1104 //
7.2 Testing and Comparison Operations
1105 //----------------------------------------
1107 //
7.2.1 RequireObjectCoercible ( argument )
1108 //
7.2.2 IsArray ( argument )
1110 //
7.2.3 IsCallable ( argument )
1111 function IsCallable(o) { return typeof o === 'function'; }
1113 //
7.2.4 IsConstructor ( argument )
1114 function IsConstructor(o) {
1115 // Hacks for Safari
7 TypedArray XXXConstructor objects
1116 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1117 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1118 // TODO: Can this be improved on?
1119 return typeof o === 'function';
1122 //
7.2.5 IsExtensible (O)
1123 //
7.2.6 IsInteger ( argument )
1125 //
7.2.7 IsPropertyKey ( argument )
1126 function IsPropertyKey(argument) {
1127 if (Type(argument) === 'string') return true;
1128 if (Type(argument) === 'symbol') return true;
1132 //
7.2.8 IsRegExp ( argument )
1133 //
7.2.5 IsConstructor ( argument )
1135 //
7.2.9 SameValue(x, y)
1136 function SameValue(x, y) {
1137 if (typeof x !== typeof y) return false;
1142 if (x !== x && y !== y) return true;
1143 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1153 //
7.2.10 SameValueZero(x, y)
1154 function SameValueZero(x, y) {
1155 if (typeof x !== typeof y) return false;
1160 if (x !== x && y !== y) return true;
1170 //----------------------------------------
1171 //
7.3 Operations on Objects
1172 //----------------------------------------
1175 // - just use o.p or o[p]
1177 //
7.3.2 GetV (V, P)
1178 function GetV(v, p) {
1179 var o = ToObject(v);
1183 //
7.3.3 Set (O, P, V, Throw)
1184 // - just use o.p = v or o[p] = v
1189 //
7.3.9 GetMethod (O, P)
1190 function GetMethod(o, p) {
1191 var func = GetV(o, p);
1192 if (func === undefined || func === null) return undefined;
1193 if (!IsCallable(func)) throw TypeError();
1197 //
7.3.10 HasProperty (O, P)
1198 function HasProperty(o, p) {
1200 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1201 if (Type(o) !== 'object') return false;
1202 o = Object.getPrototypeOf(o);
1207 //
7.3.11 HasOwnProperty (O, P)
1208 function HasOwnProperty(o, p) {
1209 return Object.prototype.hasOwnProperty.call(o, p);
1212 //----------------------------------------
1213 //
7.4 Operations on Iterator Objects
1214 //----------------------------------------
1216 //
7.4.1 GetIterator ( obj, method )
1217 function GetIterator(obj, method) {
1218 if (arguments.length <
2)
1219 method = GetMethod(obj, $$iterator);
1220 var iterator = method.call(obj);
1221 if (Type(iterator) !== 'object') throw TypeError();
1225 //
7.4.2 IteratorNext ( iterator, value )
1226 function IteratorNext(iterator, value) {
1227 if (arguments.length <
2)
1228 var result = iterator.next();
1230 result = iterator.next(value);
1231 if (Type(result) !== 'object') throw TypeError();
1235 //
7.4.3 IteratorComplete ( iterResult )
1236 function IteratorComplete(iterResult) {
1237 console.assert(Type(iterResult) === 'object');
1238 return Boolean(iterResult.done);
1241 //
7.4.4 IteratorValue ( iterResult )
1242 function IteratorValue(iterResult) {
1243 console.assert(Type(iterResult) === 'object');
1244 return iterResult.value;
1247 //
7.4.5 IteratorStep ( iterator )
1248 function IteratorStep( iterator, value ) {
1249 var result = IteratorNext(iterator, value);
1250 var done = result['done'];
1251 if (Boolean(done) === true) return false;
1255 //
7.4.6 IteratorClose( iterator, completion )
1256 function IteratorClose( iterator, completion ) {
1257 console.assert(Type(iterator) === 'object');
1258 var _return = GetMethod(iterator, 'return');
1259 if (_return === undefined) return completion;
1261 var innerResult = _return[iterator]();
1263 // TODO: If completion.[[type]] is throw, return completion
1266 if (Type(innerResult) !== 'object') throw TypeError();
1270 //
7.4.7 CreateIterResultObject (value, done)
1271 function CreateIterResultObject(value, done) {
1272 console.assert(Type(done) === 'boolean');
1274 obj["value"] = value;
1279 //
7.4.8 CreateListIterator (list)
1280 //
7.4.8.1 ListIterator next( )
1281 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1282 //
7.4.9.1 CompoundIterator next( )
1284 //----------------------------------------
1285 //
8 Executable Code and Execution Contexts
1286 //----------------------------------------
1288 //----------------------------------------
1289 //
8.4 Jobs and Job Queues
1290 //----------------------------------------
1292 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1293 function EnqueueJob(queueName, job, args) {
1294 var fn = function() { job.apply(undefined, args); };
1298 //
8.4.2 NextJob result
1299 function NextJob(result) {
1303 //----------------------------------------
1304 //
9 Ordinary and Exotic Objects Behaviors
1305 //----------------------------------------
1307 //
9.1.11 [[Enumerate]] ()
1308 function Enumerate(obj) {
1310 if (Object(obj) !== obj) return e;
1311 var visited = new Set;
1312 while (obj !== null) {
1313 Object.getOwnPropertyNames(obj).forEach(function(name) {
1314 if (!visited.has(name)) {
1315 var desc = Object.getOwnPropertyDescriptor(obj, name);
1318 if (desc.enumerable) e.push(name);
1322 obj = Object.getPrototypeOf(obj);
1324 return e[$$iterator]();
1327 //
9.1.12 [[OwnPropertyKeys]] ( )
1328 function OwnPropertyKeys(o) {
1329 return Object.getOwnPropertyNames(o);
1332 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1333 function ObjectCreate(proto, internalSlotsList) {
1334 return Object.create(proto, internalSlotsList);
1337 // ---------------------------------------
1338 //
19 Fundamental Objects
1339 // ---------------------------------------
1341 // ---------------------------------------
1342 //
19.1 Object Objects
1343 // ---------------------------------------
1345 //
19.1.1 The Object Constructor
1346 //
19.1.1.1 Object ( [ value ] )
1347 //
19.1.2 Properties of the Object Constructor
1348 //
19.1.2.1 Object.assign ( target, ...sources )
1351 function assign(target, /*...*/sources) {
1352 var to = ToObject(target);
1353 if (arguments.length <
2) return to;
1355 var sourcesIndex =
1;
1356 while (sourcesIndex < arguments.length) {
1357 var nextSource = arguments[sourcesIndex++];
1358 if (nextSource === undefined || nextSource === null) {
1361 var from = ToObject(nextSource);
1362 keys = OwnPropertyKeys(from);
1364 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1365 var nextKey = keys[keysIndex];
1366 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1367 if (desc !== undefined && desc.enumerable) {
1368 var propValue = from[nextKey];
1369 to[nextKey] = propValue;
1376 //
19.1.2.2 Object.create ( O [ , Properties ] )
1377 //
19.1.2.3 Object.defineProperties ( O, Properties )
1378 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1379 //
19.1.2.5 Object.freeze ( O )
1380 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1383 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1384 $getOwnPropertyNames = Object.getOwnPropertyNames,
1385 $keys = Object.keys,
1386 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1388 function isStringKey(k) { return !symbolForKey(k); }
1390 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1392 Object, 'getOwnPropertyNames',
1393 function getOwnPropertyNames(o) {
1394 if (Object.prototype.toString.call(o) === '[object Window]') {
1395 // Workaround for cross-realm calling by IE itself.
1396 // https://github.com/inexorabletash/polyfill/issues/
96
1398 return $getOwnPropertyNames(o).filter(isStringKey);
1400 return $window_names.slice();
1403 return $getOwnPropertyNames(o).filter(isStringKey);
1406 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1408 Object, 'getOwnPropertySymbols',
1409 function getOwnPropertySymbols(o) {
1410 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1413 //
19.1.2.14 Object.keys ( O )
1417 return $keys(o).filter(isStringKey);
1421 //
19.1.2.9 Object.getPrototypeOf ( O )
1422 //
19.1.2.10 Object.is ( value1, value2 )
1425 function is(value1, value2) {
1426 return SameValue(value1, value2);
1429 //
19.1.2.11 Object.isExtensible ( O )
1430 //
19.1.2.12 Object.isFrozen ( O )
1431 //
19.1.2.13 Object.isSealed ( O )
1433 //
19.1.2.14 Object.keys ( O )
1436 //
19.1.2.15 Object.preventExtensions ( O )
1437 //
19.1.2.16 Object.prototype
1438 //
19.1.2.17 Object.seal ( O )
1440 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1442 Object, 'setPrototypeOf',
1443 function setPrototypeOf(o, proto) {
1444 if (Type(o) !== 'object') throw TypeError();
1445 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1446 o.__proto__ = proto;
1451 //
19.1.3 Properties of the Object Prototype Object
1452 //
19.1.3.1 Object.prototype.constructor
1453 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1454 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1455 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1456 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1457 //
19.1.3.6 Object.prototype.toString ( )
1458 hook(Object.prototype, 'toString',
1460 var o = strict(this);
1461 if (o === Object(o) && $$toStringTag in o) {
1462 return '[object ' + o[$$toStringTag] + ']';
1467 //
19.1.3.7 Object.prototype.valueOf ( )
1468 //
19.1.4 Properties of Object Instances
1470 // ---------------------------------------
1471 //
19.2 Function Objects
1472 // ---------------------------------------
1474 //
19.2.1 The Function Constructor
1475 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1476 //
19.2.2 Properties of the Function Constructor
1477 //
19.2.2.1 Function.length
1478 //
19.2.2.2 Function.prototype
1479 //
19.2.3 Properties of the Function Prototype Object
1480 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1481 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1482 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1483 //
19.2.3.4 Function.prototype.constructor
1484 //
19.2.3.5 Function.prototype.toString ( )
1485 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1486 //
19.2.4 Function Instances
1489 //
19.2.4.3 prototype
1491 // (No polyfillable changes from ES5)
1493 // ---------------------------------------
1494 //
19.3 Boolean Objects
1495 // ---------------------------------------
1497 //
19.3.1 The Boolean Constructor
1498 //
19.3.1.1 Boolean ( value )
1499 //
19.3.2 Properties of the Boolean Constructor
1500 //
19.3.2.1 Boolean.prototype
1501 //
19.3.3 Properties of the Boolean Prototype Object
1502 //
19.3.3.1 Boolean.prototype.constructor
1503 //
19.3.3.2 Boolean.prototype.toString ( )
1504 //
19.3.3.3 Boolean.prototype.valueOf ( )
1505 //
19.3.4 Properties of Boolean Instances
1507 // (No polyfillable changes from ES5)
1509 // ---------------------------------------
1510 //
19.4 Symbol Objects
1511 // ---------------------------------------
1513 // Moved earlier in this script, so that other polyfills can depend on them.
1515 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1516 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1518 // ---------------------------------------
1519 //
19.5 Error Objects
1520 // ---------------------------------------
1522 //
19.5.1 The Error Constructor
1523 //
19.5.1.1 Error ( message )
1524 //
19.5.1.2 new Error( ...argumentsList )
1525 //
19.5.2 Properties of the Error Constructor
1526 //
19.5.2.1 Error.prototype
1527 //
19.5.3 Properties of the Error Prototype Object
1528 //
19.5.3.1 Error.prototype.constructor
1529 //
19.5.3.2 Error.prototype.message
1530 //
19.5.3.3 Error.prototype.name
1531 //
19.5.3.4 Error.prototype.toString ( )
1532 //
19.5.4 Properties of Error Instances
1533 //
19.5.5 Native Error Types Used in This Standard
1534 //
19.5.5.1 EvalError
1535 //
19.5.5.2 RangeError
1536 //
19.5.5.3 ReferenceError
1537 //
19.5.5.4 SyntaxError
1538 //
19.5.5.5 TypeError
1539 //
19.5.5.6 URIError
1540 //
19.5.6 NativeError Object Structure
1541 //
19.5.6.1 NativeError Constructors
1542 //
19.5.6.1.1 NativeError ( message )
1543 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1544 //
19.5.6.2 Properties of the NativeError Constructors
1545 //
19.5.6.2.1 NativeError.prototype
1546 //
19.5.6.3 Properties of the NativeError Prototype Objects
1547 //
19.5.6.4 Properties of NativeError Instances
1549 // (No polyfillable changes from ES5)
1551 // ---------------------------------------
1552 //
20 Numbers and Dates
1553 // ---------------------------------------
1555 // ---------------------------------------
1556 //
20.1 Number Objects
1557 // ---------------------------------------
1559 //
20.1.1 The Number Constructor
1560 //
20.1.1.1 Number ( [ value ] )
1561 //
20.1.1.2 new Number ( ...argumentsList )
1562 //
20.1.2 Properties of the Number Constructor
1564 //
20.1.2.1 Number.EPSILON
1569 for (next =
1;
1 + next !==
1; next = next /
2)
1574 //
20.1.2.2 Number.isFinite ( number )
1577 function isFinite(number) {
1578 if (Type(number) !== 'number') return false;
1579 if (number !== number || number === +Infinity || number === -Infinity) return false;
1583 //
20.1.2.3 Number.isInteger ( number )
1585 Number, 'isInteger',
1586 function isInteger(number) {
1587 if (Type(number) !== 'number') return false;
1588 if (number !== number || number === +Infinity || number === -Infinity) return false;
1589 var integer = ToInteger(number);
1590 if (integer !== number) return false;
1594 //
20.1.2.4 Number.isNaN ( number )
1597 function isNaN(number) {
1598 if (Type(number) !== 'number') return false;
1599 if (number !== number) return true;
1603 //
20.1.2.5 Number.isSafeInteger ( number )
1605 Number, 'isSafeInteger',
1606 function isSafeInteger(number) {
1607 if (Type(number) !== 'number') return false;
1608 if (number !== number || number === +Infinity || number === -Infinity) return false;
1609 var integer = ToInteger(number);
1610 if (integer !== number) return false;
1611 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1616 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1618 Number, 'MAX_SAFE_INTEGER',
1619 9007199254740991); //
2^
53-
1
1621 //
20.1.2.7 Number.MAX_VALUE
1623 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1625 Number, 'MIN_SAFE_INTEGER',
1626 -
9007199254740991); // -
2^
53+
1
1628 //
20.1.2.9 Number.MIN_VALUE
1629 //
20.1.2.10 Number.NaN
1630 //
20.1.2.11 Number.NEGATIVE_INFINITY
1632 //
20.1.2.12 Number.parseFloat ( string )
1633 define(Number, 'parseFloat', $parseFloat);
1635 //
20.1.2.13 Number.parseInt ( string, radix )
1636 define(Number, 'parseInt', $parseInt);
1638 //
20.1.2.14 Number.POSITIVE_INFINITY
1639 //
20.1.2.15 Number.prototype
1641 //
20.1.3 Properties of the Number Prototype Object
1642 //
20.1.3.1 Number.prototype.constructor
1643 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1644 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1645 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1646 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1647 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1648 //
20.1.3.7 Number.prototype.valueOf ( )
1649 //
20.1.4 Properties of Number Instances
1651 // ---------------------------------------
1652 //
20.2 The Math Object
1653 // ---------------------------------------
1655 //
20.2.1 Value Properties of the Math Object
1657 //
20.2.1.2 Math.LN10
1658 //
20.2.1.3 Math.LN2
1659 //
20.2.1.4 Math.LOG10E
1660 //
20.2.1.5 Math.LOG2E
1662 //
20.2.1.7 Math.SQRT1_2
1663 //
20.2.1.8 Math.SQRT2
1665 //
20.2.1.9 Math [ @@toStringTag ]
1666 define(Math, $$toStringTag, 'Math');
1668 //
20.2.2 Function Properties of the Math Object
1669 //
20.2.2.1 Math.abs ( x )
1670 //
20.2.2.2 Math.acos ( x )
1672 //
20.2.2.3 Math.acosh(x)
1677 return log(x + sqrt(x * x -
1));
1680 //
20.2.2.4 Math.asin ( x )
1682 //
20.2.2.5 Math.asinh( x )
1687 if (SameValue(x, -
0)) {
1690 var s = sqrt(x * x +
1);
1691 return (s === -x) ? log(
0) : log(x + s);
1694 //
20.2.2.6 Math.atan ( x )
1696 //
20.2.2.7 Math.atanh( x )
1701 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1704 //
20.2.2.8 Math.atan2 ( y, x )
1706 //
20.2.2.9 Math.cbrt ( x )
1714 var r = pow(abs(x),
1/
3);
1716 return r + (r * (t-r) / (
2*r + t));
1719 //
20.2.2.10 Math.ceil ( x )
1721 //
20.2.2.11 Math.clz32 ( x )
1726 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1727 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1730 return x &
0xff000000 ? clz8(x
>> 24) :
1731 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1732 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1737 //
20.2.2.12 Math.cos ( x )
1739 //
20.2.2.13 Math.cosh ( x )
1744 return (pow(E, x) + pow(E, -x)) /
2;
1747 //
20.2.2.14 Math.exp ( x )
1749 //
20.2.2.15 Math.expm1 ( x )
1754 // from: http://www.johndcook.com/cpp_log1p.html
1755 if (SameValue(x, -
0)) {
1757 } else if (abs(x) <
1e-5) {
1758 return x +
0.5 * x * x; // two terms of Taylor expansion
1764 //
20.2.2.16 Math.floor ( x )
1766 //
20.2.2.17 Math.fround ( x )
1769 function fround(x) {
1773 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1776 return (new Float32Array([x]))[
0];
1779 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1784 var m =
0, sawNaN = false;
1785 for (var i =
0; i < arguments.length; ++i) {
1786 var n = abs(Number(arguments[i]));
1787 if (n === Infinity) return n;
1788 if (n !== n) sawNaN = true;
1792 if (sawNaN) return NaN;
1793 if (m ===
0) return +
0;
1795 for (i =
0; i < values.length; ++i) {
1796 var r = values[i] / m;
1799 return m * sqrt(sum);
1802 //
20.2.2.19 Math.imul ( x, y )
1805 function imul(x, y) {
1806 var a = ToUint32(x);
1807 var b = ToUint32(y);
1808 // (slow but accurate)
1809 var ah = (a
>>> 16) &
0xffff;
1810 var al = a &
0xffff;
1811 var bh = (b
>>> 16) &
0xffff;
1812 var bl = b &
0xffff;
1813 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1814 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1817 //
20.2.2.20 Math.log ( x )
1819 //
20.2.2.21 Math.log1p ( x )
1824 // from: http://www.johndcook.com/cpp_expm1.html
1827 } else if (SameValue(x, -
0)) {
1829 } else if (abs(x)
> 1e-4) {
1832 return (-
0.5 * x +
1) * x;
1836 //
20.2.2.22 Math.log10 ( x )
1841 return log(x) * LOG10E;
1844 //
20.2.2.23 Math.log2 ( x )
1849 return log(x) * LOG2E;
1852 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1853 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1854 //
20.2.2.26 Math.pow ( x, y )
1855 //
20.2.2.27 Math.random ( )
1856 //
20.2.2.28 Math.round ( x )
1858 //
20.2.2.29 Math.sign(x)
1863 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1866 //
20.2.2.30 Math.sin ( x )
1868 //
20.2.2.31 Math.sinh( x )
1873 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1876 //
20.2.2.32 Math.sqrt ( x )
1877 //
20.2.2.33 Math.tan ( x )
1879 //
20.2.2.34 Math.tanh ( x )
1884 var n = pow(E,
2 * x) -
1,
1885 d = pow(E,
2 * x) +
1;
1886 if (SameValue(x, -
0))
1888 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
1891 //
20.2.2.35 Math.trunc ( x )
1896 return $isNaN(x) ? NaN :
1897 x <
0 ? ceil(x) : floor(x);
1900 // ---------------------------------------
1901 //
20.3 Date Objects
1902 // ---------------------------------------
1904 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
1905 //
20.3.1.1 Time Values and Time Range
1906 //
20.3.1.2 Day Number and Time within Day
1907 //
20.3.1.3 Year Number
1908 //
20.3.1.4 Month Number
1909 //
20.3.1.5 Date Number
1910 //
20.3.1.6 Week Day
1911 //
20.3.1.7 Local Time Zone Adjustment
1912 //
20.3.1.8 Daylight Saving Time Adjustment
1913 //
20.3.1.9 Local Time
1914 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
1915 //
20.3.1.11 MakeTime (hour, min, sec, ms)
1916 //
20.3.1.12 MakeDay (year, month, date)
1917 //
20.3.1.13 MakeDate (day, time)
1918 //
20.3.1.14 TimeClip (time)
1919 //
20.3.1.15 Date Time String Format
1920 //
20.3.1.15.1 Extended years
1921 //
20.3.2 The Date Constructor
1922 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1923 //
20.3.2.2 Date ( value )
1924 //
20.3.2.3 Date ( )
1925 //
20.3.3 Properties of the Date Constructor
1926 //
20.3.3.1 Date.now ( )
1927 //
20.3.3.2 Date.parse (string)
1928 //
20.3.3.3 Date.prototype
1929 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1930 //
20.3.4 Properties of the Date Prototype Object
1931 //
20.3.4.1 Date.prototype.constructor
1932 //
20.3.4.2 Date.prototype.getDate ( )
1933 //
20.3.4.3 Date.prototype.getDay ( )
1934 //
20.3.4.4 Date.prototype.getFullYear ( )
1935 //
20.3.4.5 Date.prototype.getHours ( )
1936 //
20.3.4.6 Date.prototype.getMilliseconds ( )
1937 //
20.3.4.7 Date.prototype.getMinutes ( )
1938 //
20.3.4.8 Date.prototype.getMonth ( )
1939 //
20.3.4.9 Date.prototype.getSeconds ( )
1940 //
20.3.4.10 Date.prototype.getTime ( )
1941 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
1942 //
20.3.4.12 Date.prototype.getUTCDate ( )
1943 //
20.3.4.13 Date.prototype.getUTCDay ( )
1944 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
1945 //
20.3.4.15 Date.prototype.getUTCHours ( )
1946 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
1947 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
1948 //
20.3.4.18 Date.prototype.getUTCMonth ( )
1949 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
1950 //
20.3.4.20 Date.prototype.setDate ( date )
1951 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
1952 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
1953 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
1954 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
1955 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
1956 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
1957 //
20.3.4.27 Date.prototype.setTime ( time )
1958 //
20.3.4.28 Date.prototype.setUTCDate ( date )
1959 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
1960 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
1961 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
1962 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
1963 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
1964 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
1965 //
20.3.4.35 Date.prototype.toDateString ( )
1966 //
20.3.4.36 Date.prototype.toISOString ( )
1967 //
20.3.4.37 Date.prototype.toJSON ( key )
1968 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
1969 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1970 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
1971 //
20.3.4.41 Date.prototype.toString ( )
1972 //
20.3.4.42 Date.prototype.toTimeString ( )
1973 //
20.3.4.43 Date.prototype.toUTCString ( )
1974 //
20.3.4.44 Date.prototype.valueOf ( )
1975 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
1976 //
20.3.5 Properties of Date Instances
1978 // (No polyfillable changes from ES5)
1980 // ---------------------------------------
1981 //
21 Text Processing
1982 // ---------------------------------------
1984 var string_regexp_dispatch = (function() {
1985 var faux = {}, secret = Symbol();
1986 faux[Symbol.match] = function() { return secret; };
1987 return (
"").match(faux) === secret;
1990 //
21.1 String Objects
1991 //
21.1.1 The String Constructor
1992 //
21.1.1.1 String ( value )
1993 //
21.1.2 Properties of the String Constructor
1994 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
1996 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
1998 String, 'fromCodePoint',
1999 function fromCodePoint(/*...codePoints*/) {
2000 var codePoints = arguments,
2001 length = codePoints.length,
2004 while (nextIndex < length) {
2005 var next = codePoints[nextIndex];
2006 var nextCP = Number(next);
2007 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2008 nextCP <
0 || nextCP
> 0x10FFFF) {
2009 throw RangeError('Invalid code point ' + nextCP);
2011 if (nextCP <
0x10000) {
2012 elements.push(String.fromCharCode(nextCP));
2015 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2016 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2020 return elements.join('');
2023 //
21.1.2.3 String.prototype
2025 //
21.1.2.4 String.raw ( template , ...substitutions )
2028 function raw(template /*, ...substitutions*/) {
2029 var substitutions = [].slice.call(arguments,
1);
2031 var cooked = Object(template);
2032 var rawValue = cooked['raw'];
2033 var raw = Object(rawValue);
2034 var len = raw['length'];
2035 var literalSegments = ToLength(len);
2036 if (literalSegments <=
0) return '';
2037 var stringElements = [];
2040 var next = raw[nextIndex];
2041 var nextSeg = String(next);
2042 stringElements.push(nextSeg);
2043 if (nextIndex +
1 === literalSegments)
2044 return stringElements.join('');
2045 next = substitutions[nextIndex];
2046 var nextSub = String(next);
2047 stringElements.push(nextSub);
2048 nextIndex = nextIndex +
1;
2052 // See https://githib.com/inexorabletash/uate for a more useful version.
2054 //
21.1.3 Properties of the String Prototype Object
2055 //
21.1.3.1 String.prototype.charAt ( pos )
2056 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2058 //
21.1.3.3 String.prototype.codePointAt ( pos )
2060 String.prototype, 'codePointAt',
2061 function codePointAt(pos) {
2062 var o = strict(this);
2064 var position = ToInteger(pos);
2065 var size = s.length;
2066 if (position <
0 || position
>= size) return undefined;
2067 var first = s.charCodeAt(position);
2068 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2069 var second = s.charCodeAt(position +
1);
2070 if (second <
0xDC00 || second
> 0xDFFF) return first;
2071 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2074 //
21.1.3.4 String.prototype.concat ( ...args )
2075 //
21.1.3.5 String.prototype.constructor
2077 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2079 String.prototype, 'endsWith',
2080 function endsWith(searchString) {
2081 var endPosition = arguments[
1];
2083 var o = strict(this);
2085 var searchStr = String(searchString);
2087 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2088 var end = min(max(pos,
0), len);
2089 var searchLength = searchStr.length;
2090 var start = end - searchLength;
2091 if (start <
0) return false;
2092 if (s.substring(start, start + searchLength) === searchStr) return true;
2096 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2098 String.prototype, 'includes',
2099 function includes(searchString) {
2100 var position = arguments[
1];
2102 var o = strict(this);
2104 var searchStr = String(searchString);
2105 var pos = ToInteger(position);
2107 var start = min(max(pos,
0), len);
2108 return s.indexOf(searchStr, start) !== -
1;
2111 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2112 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2113 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2114 //
21.1.3.11 String.prototype.match ( regexp )
2116 String.prototype, 'match',
2117 function match(regexp) {
2118 var o = strict(this);
2120 if (HasProperty(regexp, $$match)) var rx = regexp;
2121 else rx = new RegExp(regexp);
2122 return rx[$$match](s);
2123 }, !string_regexp_dispatch);
2125 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2127 // Not practical due to table sizes; if needed, pull in:
2128 // https://github.com/walling/unorm/
2130 //
21.1.3.13 String.prototype.repeat ( count )
2132 String.prototype, 'repeat',
2133 function repeat(count) {
2134 var o = strict(this);
2136 var n = ToInteger(count);
2137 if (n <
0) throw RangeError();
2138 if (n === Infinity) throw RangeError();
2139 var t = new Array(n +
1).join(s);
2143 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2145 String.prototype, 'replace',
2146 function replace(searchValue, replaceValue) {
2147 var o = strict(this);
2148 if (HasProperty(searchValue, $$replace))
2149 return searchValue[$$replace](o, replaceValue);
2150 return orig_replace.call(o, searchValue, replaceValue);
2151 }, !string_regexp_dispatch);
2153 //
21.1.3.15 String.prototype.search ( regexp )
2155 String.prototype, 'search',
2156 function search(regexp) {
2157 var o = strict(this);
2158 var string = String(o);
2159 if (HasProperty(regexp, $$search)) var rx = regexp;
2160 else rx = new RegExp(regexp);
2161 return rx[$$search](string);
2162 }, !string_regexp_dispatch);
2164 //
21.1.3.16 String.prototype.slice ( start, end )
2165 //
21.1.3.17 String.prototype.split ( separator, limit )
2167 String.prototype, 'split',
2168 function split(separator, limit) {
2169 var o = strict(this);
2170 if (HasProperty(separator, $$split))
2171 return separator[$$split](o, limit);
2172 return orig_split.call(o, separator, limit);
2173 }, !string_regexp_dispatch);
2175 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2177 String.prototype, 'startsWith',
2178 function startsWith(searchString) {
2179 var position = arguments[
1];
2181 var o = strict(this);
2183 var searchStr = String(searchString);
2184 var pos = ToInteger(position);
2186 var start = min(max(pos,
0), len);
2187 var searchLength = searchStr.length;
2188 if (searchLength + start
> len) return false;
2189 if (s.substring(start, start + searchLength) === searchStr) return true;
2193 //
21.1.3.19 String.prototype.substring ( start, end )
2194 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2195 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2196 //
21.1.3.22 String.prototype.toLowerCase ( )
2197 //
21.1.3.23 String.prototype.toString ( )
2198 //
21.1.3.24 String.prototype.toUpperCase ( )
2199 //
21.1.3.25 String.prototype.trim ( )
2200 //
21.1.3.26 String.prototype.valueOf ( )
2202 //
21.1.3.27 String.prototype [ @@iterator ]( )
2204 String.prototype, $$iterator,
2205 function entries() {
2206 return CreateStringIterator(this, 'value');
2209 //
21.1.4 Properties of String Instances
2212 //
21.1.5 String Iterator Objects
2214 function StringIterator() {}
2216 //
21.1.5.1 CreateStringIterator Abstract Operation
2217 function CreateStringIterator(string, kind) {
2218 var s = String(string);
2219 var iterator = new StringIterator;
2220 set_internal(iterator, '[[IteratedString]]', s);
2221 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2222 set_internal(iterator, '[[StringIterationKind]]', kind);
2226 //
21.1.5.2 The %StringIteratorPrototype% Object
2227 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2228 StringIterator.prototype = $StringIteratorPrototype$;
2230 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2232 $StringIteratorPrototype$, 'next',
2234 var o = ToObject(this);
2235 var s = String(o['[[IteratedString]]']),
2236 index = o['[[StringIteratorNextIndex]]'],
2239 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2240 return CreateIterResultObject(undefined, true);
2242 var cp = s.codePointAt(index);
2243 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2244 return CreateIterResultObject(String.fromCodePoint(cp), false);
2247 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2248 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2250 //
21.1.5.3 Properties of String Iterator Instances
2252 // ---------------------------------------
2253 //
21.2 RegExp (Regular Expression) Objects
2254 // ---------------------------------------
2257 //
21.2.2 Pattern Semantics
2258 //
21.2.2.1 Notation
2260 //
21.2.2.3 Disjunction
2261 //
21.2.2.4 Alternative
2263 //
21.2.2.6 Assertion
2264 //
21.2.2.7 Quantifier
2266 //
21.2.2.9 AtomEscape
2267 //
21.2.2.10 CharacterEscape
2268 //
21.2.2.11 DecimalEscape
2269 //
21.2.2.12 CharacterClassEscape
2270 //
21.2.2.13 CharacterClass
2271 //
21.2.2.14 ClassRanges
2272 //
21.2.2.15 NonemptyClassRanges
2273 //
21.2.2.16 NonemptyClassRangesNoDash
2274 //
21.2.2.17 ClassAtom
2275 //
21.2.2.18 ClassAtomNoDash
2276 //
21.2.2.19 ClassEscape
2277 //
21.2.3 The RegExp Constructor
2278 //
21.2.3.1 RegExp ( pattern, flags )
2279 //
21.2.3.2 new RegExp( ...argumentsList )
2280 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2281 //
21.2.4 Properties of the RegExp Constructor
2282 //
21.2.4.1 RegExp.prototype
2283 //
21.2.5 Properties of the RegExp Prototype Object
2284 //
21.2.5.1 RegExp.prototype.constructor
2285 //
21.2.5.2 RegExp.prototype.exec ( string )
2287 //
21.2.5.3 get RegExp.prototype.flags
2288 if (!('flags' in RegExp.prototype)) {
2289 Object.defineProperty(
2290 RegExp.prototype, 'flags', {
2292 var s = String(this);
2293 return s.substring(s.lastIndexOf('/') +
1);
2298 //
21.2.5.4 get RegExp.prototype.global
2299 //
21.2.5.5 get RegExp.prototype.ignoreCase
2301 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2302 define(RegExp.prototype, $$match, function(string) {
2303 var o = strict(this);
2304 return orig_match.call(string, o);
2307 //
21.2.5.7 get RegExp.prototype.multiline
2309 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2310 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2311 var o = strict(this);
2312 return orig_replace.call(string, o, replaceValue);
2315 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2316 define(RegExp.prototype, $$search, function(string) {
2317 var o = strict(this);
2318 return orig_search.call(string, o);
2321 //
21.2.5.10 get RegExp.prototype.source
2323 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2324 define(RegExp.prototype, $$split, function(string, limit) {
2325 var o = strict(this);
2326 return orig_split.call(string, o, limit);
2329 //
21.2.5.12 get RegExp.prototype.sticky
2330 //
21.2.5.13 RegExp.prototype.test( S )
2331 //
21.2.5.14 RegExp.prototype.toString ( )
2332 //
21.2.5.15 get RegExp.prototype.unicode
2334 //
21.2.6 Properties of RegExp Instances
2335 //
21.2.6.1 lastIndex
2337 // (No polyfillable changes from ES5)
2339 // ---------------------------------------
2340 //
22 Indexed Collections
2341 // ---------------------------------------
2343 // ---------------------------------------
2344 //
22.1 Array Objects
2345 // ---------------------------------------
2347 //
22.1.1 The Array Constructor
2348 //
22.1.1.1 Array ( )
2349 //
22.1.1.2 Array (len)
2350 //
22.1.1.3 Array (...items )
2352 //
22.1.2 Properties of the Array Constructor
2354 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2357 function from(items) {
2358 var mapfn = arguments[
1];
2359 var thisArg = arguments[
2];
2361 var c = strict(this);
2362 if (mapfn === undefined) {
2363 var mapping = false;
2365 if (!IsCallable(mapfn)) throw TypeError();
2369 var usingIterator = GetMethod(items, $$iterator);
2370 if (usingIterator !== undefined) {
2371 if (IsConstructor(c)) {
2376 var iterator = GetIterator(items, usingIterator);
2379 var next = IteratorStep(iterator);
2380 if (next === false) {
2384 var nextValue = IteratorValue(next);
2386 var mappedValue = mapfn.call(t, nextValue);
2388 mappedValue = nextValue;
2393 var arrayLike = ToObject(items);
2394 var lenValue = arrayLike.length;
2395 var len = ToLength(lenValue);
2396 if (IsConstructor(c)) {
2403 var kValue = arrayLike[k];
2405 mappedValue = mapfn.call(t, kValue, k);
2407 mappedValue = kValue;
2415 //
22.1.2.2 Array.isArray ( arg )
2417 //
22.1.2.3 Array.of ( ...items )
2421 var items = arguments;
2423 var lenValue = items.length;
2424 var len = ToUint32(lenValue);
2425 var c = strict(this), a;
2426 if (IsConstructor(c)) {
2441 //
22.1.2.4 Array.prototype
2442 //
22.1.2.5 get Array [ @@species ]
2443 //
22.1.3 Properties of the Array Prototype Object
2444 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2445 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2446 //
22.1.3.2 Array.prototype.constructor
2447 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2449 Array.prototype, 'copyWithin',
2450 function copyWithin(target, start/*, end*/) {
2451 var end = arguments[
2];
2453 var o = ToObject(this);
2454 var lenVal = o.length;
2455 var len = ToLength(lenVal);
2457 var relativeTarget = ToInteger(target);
2459 if (relativeTarget <
0)
2460 to = max(len + relativeTarget,
0);
2462 to = min(relativeTarget, len);
2463 var relativeStart = ToInteger(start);
2465 if (relativeStart <
0)
2466 from = max(len + relativeStart,
0);
2468 from = min(relativeStart, len);
2470 if (end === undefined)
2473 relativeEnd = ToInteger(end);
2475 if (relativeEnd <
0)
2476 final = max(len + relativeEnd,
0);
2478 final = min(relativeEnd, len);
2479 var count = min(final - from, len - to);
2481 if (from < to && to < from + count) {
2483 from = from + count -
1;
2484 to = to + count -
1;
2489 var fromKey = String(from);
2490 var toKey = String(to);
2491 var fromPresent = HasProperty(o, fromKey);
2493 var fromVal = o[fromKey];
2498 from = from + direction;
2499 to = to + direction;
2505 //
22.1.3.4 Array.prototype.entries ( )
2506 var nativeArrayIteratorMethods =
2507 ('entries' in Array.prototype && 'next' in [].entries());
2510 Array.prototype, 'entries',
2511 function entries() {
2512 return CreateArrayIterator(this, 'key+value');
2513 }, !nativeArrayIteratorMethods);
2515 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2517 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2519 Array.prototype, 'fill',
2520 function fill(value/*, start, end*/) {
2521 var start = arguments[
1],
2524 var o = ToObject(this);
2525 var lenVal = o.length;
2526 var len = ToLength(lenVal);
2528 var relativeStart = ToInteger(start);
2530 if (relativeStart <
0)
2531 k = max((len + relativeStart),
0);
2533 k = min(relativeStart, len);
2535 if (end === undefined)
2538 relativeEnd = ToInteger(end);
2540 if (relativeEnd <
0)
2541 final = max((len + relativeEnd),
0);
2543 final = min(relativeEnd, len);
2552 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2554 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2556 Array.prototype, 'find',
2557 function find(predicate) {
2558 var o = ToObject(this);
2559 var lenValue = o.length;
2560 var len = ToInteger(lenValue);
2561 if (!IsCallable(predicate)) throw TypeError();
2562 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2566 var kPresent = HasProperty(o, pk);
2569 var testResult = predicate.call(t, kValue, k, o);
2570 if (Boolean(testResult)) {
2579 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2581 Array.prototype, 'findIndex',
2582 function findIndex(predicate) {
2583 var o = ToObject(this);
2584 var lenValue = o.length;
2585 var len = ToLength(lenValue);
2586 if (!IsCallable(predicate)) throw TypeError();
2587 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2591 var kPresent = HasProperty(o, pk);
2594 var testResult = predicate.call(t, kValue, k, o);
2595 if (Boolean(testResult)) {
2604 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2605 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2606 //
22.1.3.12 Array.prototype.join (separator)
2608 //
22.1.3.13 Array.prototype.keys ( )
2610 Array.prototype, 'keys',
2612 return CreateArrayIterator(this, 'key');
2613 }, !nativeArrayIteratorMethods);
2615 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2616 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2617 //
22.1.3.16 Array.prototype.pop ( )
2618 //
22.1.3.17 Array.prototype.push ( ...items )
2619 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2620 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2621 //
22.1.3.20 Array.prototype.reverse ( )
2622 //
22.1.3.21 Array.prototype.shift ( )
2623 //
22.1.3.22 Array.prototype.slice (start, end)
2624 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2625 //
22.1.3.24 Array.prototype.sort (comparefn)
2626 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2627 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2628 //
22.1.3.27 Array.prototype.toString ( )
2629 //
22.1.3.28 Array.prototype.unshift ( ...items )
2631 //
22.1.3.29 Array.prototype.values ( )
2633 Array.prototype, 'values',
2635 return CreateArrayIterator(this, 'value');
2636 }, !nativeArrayIteratorMethods);
2638 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2640 Array.prototype, $$iterator,
2641 Array.prototype.values
2644 //
22.1.3.31 Array.prototype [ @@unscopables ]
2645 //
22.1.4 Properties of Array Instances
2648 //
22.1.5 Array Iterator Objects
2649 function ArrayIterator() {}
2651 //
22.1.5.1 CreateArrayIterator Abstract Operation
2652 function CreateArrayIterator(array, kind) {
2653 var o = ToObject(array);
2654 var iterator = new ArrayIterator;
2655 set_internal(iterator, '[[IteratedObject]]', o);
2656 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2657 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2661 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2662 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2663 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2665 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2667 $ArrayIteratorPrototype$, 'next',
2669 var o = strict(this);
2670 if (Type(o) !== 'object') throw TypeError();
2671 var a = o['[[IteratedObject]]'],
2672 index = o['[[ArrayIteratorNextIndex]]'],
2673 itemKind = o['[[ArrayIterationKind]]'],
2674 lenValue = a.length,
2675 len = ToUint32(lenValue),
2678 if (itemKind.indexOf('sparse') !== -
1) {
2680 while (!found && index < len) {
2681 elementKey = String(index);
2682 found = HasProperty(a, elementKey);
2689 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2690 return CreateIterResultObject(undefined, true);
2693 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2694 if (itemKind.indexOf('value') !== -
1)
2695 elementValue = a[elementKey];
2696 if (itemKind.indexOf('key+value') !== -
1)
2697 return CreateIterResultObject([elementKey, elementValue], false);
2698 if (itemKind.indexOf('key') !== -
1)
2699 return CreateIterResultObject(elementKey, false);
2700 if (itemKind === 'value')
2701 return CreateIterResultObject(elementValue, false);
2702 throw Error('Internal error');
2705 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2706 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2708 //
22.1.5.3 Properties of Array Iterator Instances
2711 // ---------------------------------------
2712 //
22.2 TypedArray Objects
2713 // ---------------------------------------
2715 // See typedarray.js for TypedArray polyfill
2717 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2718 'Int16Array', 'Uint16Array',
2719 'Int32Array', 'Uint32Array',
2720 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2721 if (!($TypedArrayName$ in global))
2723 var $TypedArray$ = global[$TypedArrayName$];
2725 //
22.2.1 The %TypedArray% Intrinsic Object
2726 //
22.2.1.1 %TypedArray% ( length )
2727 //
22.2.1.2 %TypedArray% ( typedArray )
2728 //
22.2.1.3 %TypedArray% ( object )
2729 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2730 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2731 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2733 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2735 $TypedArray$, 'from',
2736 function from(source) {
2737 var mapfn = arguments[
1];
2738 var thisArg = arguments[
2];
2740 var c = strict(this);
2741 if (!IsConstructor(c)) throw TypeError();
2742 if (mapfn === undefined) {
2743 var mapping = false;
2745 if (IsCallable(mapfn)) throw TypeError();
2749 var usingIterator = GetMethod(source, $$iterator);
2750 if (usingIterator !== undefined) {
2751 var iterator = GetIterator(source, usingIterator);
2754 while (next !== false) {
2755 next = IteratorStep(iterator);
2756 if (next !== false) {
2757 var nextValue = IteratorValue(next);
2758 values.push(nextValue);
2761 var len = values.length;
2762 var newObj = new c(len);
2765 var kValue = values.shift();
2767 var mappedValue = mapfn.call(t, kValue);
2769 mappedValue = kValue;
2771 newObj[k] = mappedValue;
2774 console.assert(values.length ===
0);
2777 var arrayLike = ToObject(source);
2778 var lenValue = arrayLike.length;
2779 len = ToLength(lenValue);
2780 newObj = new c(len);
2783 kValue = arrayLike[k];
2785 mappedValue = mapfn.call(t, kValue, k);
2787 mappedValue = kValue;
2789 newObj[k] = mappedValue;
2795 //
22.2.2.2 %TypedArray%.of ( ...items )
2799 var items = arguments;
2801 var len = items.length;
2802 var c = strict(this);
2803 var newObj = new c(len);
2806 newObj[k] = items[k];
2812 //
22.2.2.3 %TypedArray%.prototype
2813 //
22.2.2.4 get %TypedArray% [ @@species ]
2814 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2815 //
22.2.3.1 get %TypedArray%.prototype.buffer
2816 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2817 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2818 //
22.2.3.4 %TypedArray%.prototype.constructor
2820 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2821 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2823 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2824 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2826 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2827 define($TypedArray$.prototype, 'every', Array.prototype.every);
2829 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2831 $TypedArray$.prototype, 'fill',
2832 //Array.prototype.fill // Doesn't work in Safari
7
2833 function fill(value/*, start, end*/) {
2834 var start = arguments[
1],
2837 var o = ToObject(this);
2838 var lenVal = o.length;
2839 var len = ToLength(lenVal);
2841 var relativeStart = ToInteger(start);
2843 if (relativeStart <
0) k = max((len + relativeStart),
0);
2844 else k = min(relativeStart, len);
2846 if (end === undefined) relativeEnd = len;
2847 else relativeEnd = ToInteger(end);
2849 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2850 else final = min(relativeEnd, len);
2859 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2861 $TypedArray$.prototype, 'filter',
2862 function filter(callbackfn) {
2863 var thisArg = arguments[
1];
2865 var o = ToObject(this);
2866 var lenVal = o.length;
2867 var len = ToLength(lenVal);
2868 if (!IsCallable(callbackfn)) throw TypeError();
2870 var c = o.constructor;
2876 var selected = callbackfn.call(t, kValue, k, o);
2883 var a = new c(captured);
2885 for (var i =
0; i < kept.length; ++i) {
2893 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
2894 define($TypedArray$.prototype, 'find', Array.prototype.find);
2896 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
2897 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
2899 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
2900 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
2902 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
2903 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
2905 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
2906 define($TypedArray$.prototype, 'join', Array.prototype.join);
2908 //
22.2.3.15 %TypedArray%.prototype.keys ( )
2909 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
2911 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2912 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
2914 //
22.2.3.17 get %TypedArray%.prototype.length
2916 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
2918 $TypedArray$.prototype, 'map',
2919 function map(callbackfn) {
2920 var thisArg = arguments[
1];
2922 var o = ToObject(this);
2923 var lenValue = o.length;
2924 var len = ToLength(lenValue);
2925 if (!IsCallable(callbackfn)) throw TypeError();
2928 var c = o.constructor;
2929 if (IsConstructor(c))
2931 if (a === undefined)
2935 var kPresent = HasProperty(o, k);
2938 var mappedValue = callbackfn.call(t, kValue, k, o);
2946 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
2947 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
2949 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
2950 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
2952 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
2953 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
2955 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
2956 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
2957 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
2959 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
2961 $TypedArray$.prototype, 'slice',
2962 function slice(start, end) {
2963 var o = ToObject(this);
2964 var lenVal = o.length;
2965 var len = ToLength(lenVal);
2966 var relativeStart = ToInteger(start);
2967 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
2968 var relativeEnd = (end === undefined) ? len : ToInteger(end);
2969 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
2970 var count = final - k;
2971 var c = o.constructor;
2972 if (IsConstructor(c)) {
2973 var a = new c(count);
2987 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
2988 define($TypedArray$.prototype, 'some', Array.prototype.some);
2990 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
2992 $TypedArray$.prototype, 'sort',
2994 var comparefn = arguments[
0];
2996 function sortCompare(x, y) {
2997 console.assert(Type(x) === 'number' && Type(y) === 'number');
2998 if (x !== x && y !== y) return +
0;
2999 if (x !== x) return
1;
3000 if (y !== y) return -
1;
3001 if (comparefn !== undefined) {
3002 return comparefn(x, y);
3004 if (x < y) return -
1;
3005 if (x
> y) return
1;
3008 return Array.prototype.sort.call(this, sortCompare);
3011 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3012 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3013 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3015 //
22.2.3.29 %TypedArray%.prototype.values ( )
3016 define($TypedArray$.prototype, 'values', Array.prototype.values);
3018 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3020 $TypedArray$.prototype, $$iterator,
3021 $TypedArray$.prototype.values
3024 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3025 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3027 //
22.2.4 The TypedArray Constructors
3028 //
22.2.4.1TypedArray( ... argumentsList)
3029 //
22.2.5 Properties of the TypedArray Constructors
3030 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3031 //
22.2.5.2 TypedArray.prototype
3032 //
22.2.6 Properties of TypedArray Prototype Objects
3033 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3034 //
22.2.6.2 TypedArray.prototype.constructor
3035 //
22.2.7 Properties of TypedArray Instances
3038 // ---------------------------------------
3039 //
23 Keyed Collection
3040 // ---------------------------------------
3042 // ---------------------------------------
3044 // ---------------------------------------
3047 //
23.1.1 The Map Constructor
3049 //
23.1.1.1 Map ( [ iterable ] )
3051 function Map(/*iterable*/) {
3052 var map = strict(this);
3053 var iterable = arguments[
0];
3055 if (Type(map) !== 'object') throw TypeError();
3056 if ('[[MapData]]' in map) throw TypeError();
3058 if (iterable !== undefined) {
3059 var adder = map['set'];
3060 if (!IsCallable(adder)) throw TypeError();
3061 var iter = GetIterator(ToObject(iterable));
3063 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3064 if (iter === undefined) return map;
3066 var next = IteratorStep(iter);
3069 var nextItem = IteratorValue(next);
3070 if (Type(nextItem) !== 'object') throw TypeError();
3071 var k = nextItem[
0];
3072 var v = nextItem[
1];
3073 adder.call(map, k, v);
3079 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3080 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3081 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3082 (new global.Map([['a',
1]]).size !==
1))
3086 function MapDataIndexOf(mapData, key) {
3088 if (key === key) return mapData.keys.indexOf(key);
3089 // Slow case for NaN
3090 for (i =
0; i < mapData.keys.length; i +=
1)
3091 if (SameValueZero(mapData.keys[i], key)) return i;
3095 //
23.1.1.2 new Map ( ... argumentsList )
3096 //
23.1.2 Properties of the Map Constructor
3097 //
23.1.2.1 Map.prototype
3098 var $MapPrototype$ = {};
3099 Map.prototype = $MapPrototype$;
3101 //
23.1.2.2 get Map [ @@species ]
3103 //
23.1.3 Properties of the Map Prototype Object
3104 //
23.1.3.1 Map.prototype.clear ()
3106 Map.prototype, 'clear',
3108 var m = strict(this);
3109 if (Type(m) !== 'object') throw TypeError();
3110 if (!('[[MapData]]' in m)) throw TypeError();
3111 if (m['[[MapData]]'] === undefined) throw TypeError();
3112 var entries = m['[[MapData]]'];
3113 entries.keys.length =
0;
3114 entries.values.length =
0;
3118 //
23.1.3.2 Map.prototype.constructor
3120 //
23.1.3.3 Map.prototype.delete ( key )
3122 Map.prototype, 'delete',
3123 function delete_(key) {
3124 var m = strict(this);
3125 if (Type(m) !== 'object') throw TypeError();
3126 if (!('[[MapData]]' in m)) throw TypeError();
3127 if (m['[[MapData]]'] === undefined) throw TypeError();
3128 var entries = m['[[MapData]]'];
3129 var i = MapDataIndexOf(entries, key);
3130 if (i <
0) return false;
3131 entries.keys[i] = empty;
3132 entries.values[i] = empty;
3136 //
23.1.3.4 Map.prototype.entries ( )
3138 Map.prototype, 'entries',
3139 function entries() {
3140 var m = strict(this);
3141 if (Type(m) !== 'object') throw TypeError();
3142 return CreateMapIterator(m, 'key+value');
3145 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3147 Map.prototype, 'forEach',
3148 function forEach(callbackfn /*, thisArg*/) {
3149 var thisArg = arguments[
1];
3151 var m = strict(this);
3152 if (Type(m) !== 'object') throw TypeError();
3153 if (!('[[MapData]]' in m)) throw TypeError();
3154 if (m['[[MapData]]'] === undefined) throw TypeError();
3155 var entries = m['[[MapData]]'];
3157 if (!IsCallable(callbackfn)) {
3158 throw TypeError('First argument to forEach is not callable.');
3160 for (var i =
0; i < entries.keys.length; ++i) {
3161 if (entries.keys[i] !== empty) {
3162 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3168 //
23.1.3.6 Map.prototype.get ( key )
3170 Map.prototype, 'get',
3172 var m = strict(this);
3173 if (Type(m) !== 'object') throw TypeError();
3174 if (!('[[MapData]]' in m)) throw TypeError();
3175 if (m['[[MapData]]'] === undefined) throw TypeError();
3176 var entries = m['[[MapData]]'];
3177 var i = MapDataIndexOf(entries, key);
3178 if (i
>=
0) return entries.values[i];
3182 //
23.1.3.7 Map.prototype.has ( key )
3184 Map.prototype, 'has',
3186 var m = strict(this);
3187 if (Type(m) !== 'object') throw TypeError();
3188 if (!('[[MapData]]' in m)) throw TypeError();
3189 if (m['[[MapData]]'] === undefined) throw TypeError();
3190 var entries = m['[[MapData]]'];
3191 if (MapDataIndexOf(entries, key)
>=
0) return true;
3195 //
23.1.3.8 Map.prototype.keys ( )
3197 Map.prototype, 'keys',
3199 var m = strict(this);
3200 if (Type(m) !== 'object') throw TypeError();
3201 return CreateMapIterator(m, 'key');
3204 //
23.1.3.9 Map.prototype.set ( key , value )
3206 Map.prototype, 'set',
3207 function set(key, value) {
3208 var m = strict(this);
3209 if (Type(m) !== 'object') throw TypeError();
3210 if (!('[[MapData]]' in m)) throw TypeError();
3211 if (m['[[MapData]]'] === undefined) throw TypeError();
3212 var entries = m['[[MapData]]'];
3213 var i = MapDataIndexOf(entries, key);
3214 if (i <
0) i = entries.keys.length;
3215 if (SameValue(key, -
0)) key =
0;
3216 entries.keys[i] = key;
3217 entries.values[i] = value;
3221 //
23.1.3.10 get Map.prototype.size
3222 Object.defineProperty(
3223 Map.prototype, 'size', {
3225 var m = strict(this);
3226 if (Type(m) !== 'object') throw TypeError();
3227 if (!('[[MapData]]' in m)) throw TypeError();
3228 if (m['[[MapData]]'] === undefined) throw TypeError();
3229 var entries = m['[[MapData]]'];
3231 for (var i =
0; i < entries.keys.length; ++i) {
3232 if (entries.keys[i] !== empty)
3239 //
23.1.3.11 Map.prototype.values ( )
3241 Map.prototype, 'values',
3243 var m = strict(this);
3244 if (Type(m) !== 'object') throw TypeError();
3245 return CreateMapIterator(m, 'value');
3248 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3250 Map.prototype, $$iterator,
3252 var m = strict(this);
3253 if (Type(m) !== 'object') throw TypeError();
3254 return CreateMapIterator(m, 'key+value');
3257 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3258 define(global.Map.prototype, $$toStringTag, 'Map');
3260 //
23.1.4 Properties of Map Instances
3261 //
23.1.5 Map Iterator Objects
3264 function MapIterator() {}
3266 //
23.1.5.1 CreateMapIterator Abstract Operation
3267 function CreateMapIterator(map, kind) {
3268 if (Type(map) !== 'object') throw TypeError();
3269 if (!('[[MapData]]' in map)) throw TypeError();
3270 if (map['[[MapData]]'] === undefined) throw TypeError();
3271 var iterator = new MapIterator;
3272 set_internal(iterator, '[[Map]]', map);
3273 set_internal(iterator, '[[MapNextIndex]]',
0);
3274 set_internal(iterator, '[[MapIterationKind]]', kind);
3278 //
23.1.5.2 The %MapIteratorPrototype% Object
3279 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3280 MapIterator.prototype = $MapIteratorPrototype$;
3282 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3284 $MapIteratorPrototype$, 'next',
3286 var o = strict(this);
3287 if (Type(o) !== 'object') throw TypeError();
3288 var m = o['[[Map]]'],
3289 index = o['[[MapNextIndex]]'],
3290 itemKind = o['[[MapIterationKind]]'],
3291 entries = m['[[MapData]]'];
3292 while (index < entries.keys.length) {
3293 var e = {key: entries.keys[index], value: entries.values[index]};
3295 set_internal(o, '[[MapNextIndex]]', index);
3296 if (e.key !== empty) {
3297 if (itemKind === 'key') {
3298 return CreateIterResultObject(e.key, false);
3299 } else if (itemKind === 'value') {
3300 return CreateIterResultObject(e.value, false);
3302 return CreateIterResultObject([e.key, e.value], false);
3306 return CreateIterResultObject(undefined, true);
3309 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3310 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3312 //
23.1.5.3 Properties of Map Iterator Instances
3315 // ---------------------------------------
3317 // ---------------------------------------
3320 //
23.2.1 The Set Constructor
3321 //
23.2.1.1 Set ( [ iterable ] )
3324 function Set(/*iterable*/) {
3325 var set = strict(this);
3326 var iterable = arguments[
0];
3328 if (Type(set) !== 'object') throw TypeError();
3329 if ('[[SetData]]' in set) throw TypeError();
3331 if (iterable !== undefined) {
3332 var adder = set['add'];
3333 if (!IsCallable(adder)) throw TypeError();
3334 var iter = GetIterator(ToObject(iterable));
3336 set_internal(set, '[[SetData]]', []);
3337 if (iter === undefined) return set;
3339 var next = IteratorStep(iter);
3342 var nextValue = IteratorValue(next);
3343 adder.call(set, nextValue);
3349 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3350 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3351 (new global.Set([
1]).size !==
1))
3354 function SetDataIndexOf(setData, key) {
3357 return setData.indexOf(key);
3358 // Slow case for NaN
3359 for (i =
0; i < setData.length; i +=
1)
3360 if (SameValueZero(setData[i], key)) return i;
3364 //
23.2.1.2 new Set ( ...argumentsList )
3365 //
23.2.2 Properties of the Set Constructor
3367 //
23.2.2.1 Set.prototype
3368 var $SetPrototype$ = {};
3369 Set.prototype = $SetPrototype$;
3371 //
23.2.2.2 get Set [ @@species ]
3372 //
23.2.3 Properties of the Set Prototype Object
3374 //
23.2.3.1 Set.prototype.add (value )
3376 Set.prototype, 'add',
3377 function add(value) {
3378 var s = strict(this);
3379 if (Type(s) !== 'object') throw TypeError();
3380 if (!('[[SetData]]' in s)) throw TypeError();
3381 if (s['[[SetData]]'] === undefined) throw TypeError();
3382 if (SameValue(value, -
0)) value =
0;
3383 var entries = s['[[SetData]]'];
3384 var i = SetDataIndexOf(entries, value);
3385 if (i <
0) i = s['[[SetData]]'].length;
3386 s['[[SetData]]'][i] = value;
3391 //
23.2.3.2 Set.prototype.clear ()
3393 Set.prototype, 'clear',
3395 var s = strict(this);
3396 if (Type(s) !== 'object') throw TypeError();
3397 if (!('[[SetData]]' in s)) throw TypeError();
3398 if (s['[[SetData]]'] === undefined) throw TypeError();
3399 var entries = s['[[SetData]]'];
3404 //
23.2.3.3 Set.prototype.constructor
3405 //
23.2.3.4 Set.prototype.delete ( value )
3407 Set.prototype, 'delete',
3408 function delete_(value) {
3409 var s = strict(this);
3410 if (Type(s) !== 'object') throw TypeError();
3411 if (!('[[SetData]]' in s)) throw TypeError();
3412 if (s['[[SetData]]'] === undefined) throw TypeError();
3413 var entries = s['[[SetData]]'];
3414 var i = SetDataIndexOf(entries, value);
3415 if (i <
0) return false;
3420 //
23.2.3.5 Set.prototype.entries ( )
3422 Set.prototype, 'entries',
3423 function entries() {
3424 var s = strict(this);
3425 if (Type(s) !== 'object') throw TypeError();
3426 return CreateSetIterator(s, 'key+value');
3429 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3431 Set.prototype, 'forEach',
3432 function forEach(callbackfn/*, thisArg*/) {
3433 var thisArg = arguments[
1];
3435 var s = strict(this);
3436 if (Type(s) !== 'object') throw TypeError();
3437 if (!('[[SetData]]' in s)) throw TypeError();
3438 if (s['[[SetData]]'] === undefined) throw TypeError();
3439 var entries = s['[[SetData]]'];
3441 if (!IsCallable(callbackfn)) {
3442 throw TypeError('First argument to forEach is not callable.');
3444 for (var i =
0; i < entries.length; ++i) {
3445 if (entries[i] !== empty) {
3446 callbackfn.call(thisArg, entries[i], entries[i], s);
3451 //
23.2.3.7 Set.prototype.has ( value )
3453 Set.prototype, 'has',
3455 var s = strict(this);
3456 if (Type(s) !== 'object') throw TypeError();
3457 if (!('[[SetData]]' in s)) throw TypeError();
3458 if (s['[[SetData]]'] === undefined) throw TypeError();
3459 var entries = s['[[SetData]]'];
3460 return SetDataIndexOf(entries, key) !== -
1;
3463 //
23.2.3.8 Set.prototype.keys ( )
3464 // See Set.prototype.values
3466 //
23.2.3.9 get Set.prototype.size
3467 Object.defineProperty(
3468 Set.prototype, 'size', {
3470 var s = strict(this);
3471 if (Type(s) !== 'object') throw TypeError();
3472 if (!('[[SetData]]' in s)) throw TypeError();
3473 if (s['[[SetData]]'] === undefined) throw TypeError();
3474 var entries = s['[[SetData]]'];
3476 for (var i =
0; i < entries.length; ++i) {
3477 if (entries[i] !== empty)
3484 //
23.2.3.10 Set.prototype.values ( )
3486 Set.prototype, 'values',
3488 var s = strict(this);
3489 if (Type(s) !== 'object') throw TypeError();
3490 return CreateSetIterator(s, 'value');
3492 // NOTE: function name is still 'values':
3493 Set.prototype.keys = Set.prototype.values;
3495 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3497 Set.prototype, $$iterator,
3499 var s = strict(this);
3500 if (Type(s) !== 'object') throw TypeError();
3501 return CreateSetIterator(s);
3504 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3505 define(global.Set.prototype, $$toStringTag, 'Set');
3507 //
23.2.4 Properties of Set Instances
3508 //
23.2.5 Set Iterator Objects
3510 function SetIterator() {}
3512 //
23.2.5.1 CreateSetIterator Abstract Operation
3513 function CreateSetIterator(set, kind) {
3514 if (Type(set) !== 'object') throw TypeError();
3515 if (!('[[SetData]]' in set)) throw TypeError();
3516 if (set['[[SetData]]'] === undefined) throw TypeError();
3517 var iterator = new SetIterator;
3518 set_internal(iterator, '[[IteratedSet]]', set);
3519 set_internal(iterator, '[[SetNextIndex]]',
0);
3520 set_internal(iterator, '[[SetIterationKind]]', kind);
3524 //
23.2.5.2 The %SetIteratorPrototype% Object
3525 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3526 SetIterator.prototype = $SetIteratorPrototype$;
3528 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3530 $SetIteratorPrototype$, 'next',
3532 var o = strict(this);
3533 if (Type(o) !== 'object') throw TypeError();
3534 var s = o['[[IteratedSet]]'],
3535 index = o['[[SetNextIndex]]'],
3536 itemKind = o['[[SetIterationKind]]'],
3537 entries = s['[[SetData]]'];
3538 while (index < entries.length) {
3539 var e = entries[index];
3541 set_internal(o, '[[SetNextIndex]]', index);
3543 if (itemKind === 'key+value')
3544 return CreateIterResultObject([e, e], false);
3545 return CreateIterResultObject(e, false);
3548 return CreateIterResultObject(undefined, true);
3551 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3552 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3554 //
23.2.5.3 Properties of Set Iterator Instances
3558 // ---------------------------------------
3559 //
23.3 WeakMap Objects
3560 // ---------------------------------------
3563 //
23.3.1 The WeakMap Constructor
3564 //
23.3.1.1 WeakMap ( [ iterable ] )
3566 function WeakMap(/*iterable*/) {
3567 var map = strict(this);
3568 var iterable = arguments[
0];
3570 if (Type(map) !== 'object') throw TypeError();
3571 if ('[[WeakMapData]]' in map) throw TypeError();
3573 if (iterable !== undefined) {
3574 var adder = map['set'];
3575 if (!IsCallable(adder)) throw TypeError();
3576 var iter = GetIterator(ToObject(iterable));
3578 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3579 if (iter === undefined) return map;
3581 var next = IteratorStep(iter);
3584 var nextValue = IteratorValue(next);
3585 if (Type(nextValue) !== 'object') throw TypeError();
3586 var k = nextValue[
0];
3587 var v = nextValue[
1];
3588 adder.call(map, k, v);
3594 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3595 global.WeakMap = WeakMap;
3597 //
23.3.2 Properties of the WeakMap Constructor
3598 //
23.3.2.1 WeakMap.prototype
3599 var $WeakMapPrototype$ = {};
3600 WeakMap.prototype = $WeakMapPrototype$;
3604 //
23.3.2.2 WeakMap[ @@create ] ( )
3605 //
23.3.3 Properties of the WeakMap Prototype Object
3607 //
23.3.3.1 WeakMap.prototype.constructor
3609 //
23.3.3.2 WeakMap.prototype.delete ( key )
3611 WeakMap.prototype, 'delete',
3612 function delete_(key) {
3613 var M = strict(this);
3614 if (Type(M) !== 'object') throw TypeError();
3615 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3616 if (Type(key) !== 'object') throw TypeError('Expected object');
3617 return M['[[WeakMapData]]'].remove(key);
3620 //
23.3.3.3 WeakMap.prototype.get ( key )
3622 WeakMap.prototype, 'get',
3623 function get(key, defaultValue) {
3624 var M = strict(this);
3625 if (Type(M) !== 'object') throw TypeError();
3626 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3627 if (Type(key) !== 'object') throw TypeError('Expected object');
3628 return M['[[WeakMapData]]'].get(key, defaultValue);
3631 //
23.3.3.4 WeakMap.prototype.has ( key )
3633 WeakMap.prototype, 'has',
3635 var M = strict(this);
3636 if (Type(M) !== 'object') throw TypeError();
3637 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3638 if (Type(key) !== 'object') throw TypeError('Expected object');
3639 return M['[[WeakMapData]]'].has(key);
3642 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3644 WeakMap.prototype, 'set',
3645 function set(key, value) {
3646 var M = strict(this);
3647 if (Type(M) !== 'object') throw TypeError();
3648 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3649 if (Type(key) !== 'object') throw TypeError('Expected object');
3650 M['[[WeakMapData]]'].set(key, value);
3654 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3655 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3657 //
23.3.4 Properties of WeakMap Instances
3659 // Polyfills for incomplete native implementations:
3661 var wm = new global.WeakMap();
3662 var orig = global.WeakMap.prototype.set;
3663 define(global.WeakMap.prototype, 'set', function set() {
3664 orig.apply(this, arguments);
3666 }, wm.set({},
0) !== wm);
3670 // ---------------------------------------
3671 //
23.4 WeakSet Objects
3672 // ---------------------------------------
3675 //
23.4.1 The WeakSet Constructor
3676 //
23.4.1.1 WeakSet ( [ iterable ] )
3678 function WeakSet(/*iterable*/) {
3679 var set = strict(this);
3680 var iterable = arguments[
0];
3682 if (Type(set) !== 'object') throw TypeError();
3683 if ('[[WeakSetData]]' in set) throw TypeError();
3685 if (iterable !== undefined) {
3686 var adder = set['add'];
3687 if (!IsCallable(adder)) throw TypeError();
3688 var iter = GetIterator(ToObject(iterable));
3690 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3691 if (iter === undefined) return set;
3693 var next = IteratorStep(iter);
3696 var nextValue = IteratorValue(next);
3697 adder.call(set, nextValue);
3703 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3704 global.WeakSet = WeakSet;
3706 //
23.4.2 Properties of the WeakSet Constructor
3707 //
23.4.2.1 WeakSet.prototype
3708 var $WeakSetPrototype$ = {};
3709 WeakSet.prototype = $WeakSetPrototype$;
3711 //
23.4.3 Properties of the WeakSet Prototype Object
3712 //
23.4.3.1 WeakSet.prototype.add (value )
3714 WeakSet.prototype, 'add',
3715 function add(value) {
3716 var S = strict(this);
3717 if (Type(S) !== 'object') throw TypeError();
3718 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3719 if (Type(value) !== 'object') throw TypeError('Expected object');
3720 S['[[WeakSetData]]'].set(value, true);
3724 //
23.4.3.2 WeakSet.prototype.constructor
3725 //
23.4.3.3 WeakSet.prototype.delete ( value )
3727 WeakSet.prototype, 'delete',
3728 function delete_(value) {
3729 var S = strict(this);
3730 if (Type(S) !== 'object') throw TypeError();
3731 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3732 if (Type(value) !== 'object') throw TypeError('Expected object');
3733 return S['[[WeakSetData]]'].remove(value);
3736 //
23.4.3.4 WeakSet.prototype.has ( value )
3738 WeakSet.prototype, 'has',
3740 var S = strict(this);
3741 if (Type(S) !== 'object') throw TypeError();
3742 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3743 if (Type(key) !== 'object') throw TypeError('Expected object');
3744 return S['[[WeakSetData]]'].has(key);
3747 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3748 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3750 //
23.4.4 Properties of WeakSet Instances
3752 // Polyfills for incomplete native implementations:
3754 var ws = new global.WeakSet();
3755 var orig = global.WeakSet.prototype.add;
3756 define(global.WeakSet.prototype, 'add', function add() {
3757 orig.apply(this, arguments);
3759 }, ws.add({}) !== ws);
3763 // ---------------------------------------
3764 //
24 Structured Data
3765 // ---------------------------------------
3767 // ---------------------------------------
3768 //
24.1 ArrayBuffer Objects
3769 // ---------------------------------------
3771 // See typedarray.js for TypedArray polyfill
3774 if (!('ArrayBuffer' in global))
3777 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3778 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3779 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3780 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3781 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3782 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3783 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3784 //
24.1.2 The ArrayBuffer Constructor
3785 //
24.1.2.1 ArrayBuffer( length )
3786 //
24.1.3 Properties of the ArrayBuffer Constructor
3788 //
24.1.3.1 ArrayBuffer.isView ( arg )
3790 ArrayBuffer, 'isView',
3791 function isView(arg) {
3792 if (Type(arg) !== 'object') return false;
3793 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3797 //
24.1.3.2 ArrayBuffer.prototype
3798 //
24.1.3.3 get ArrayBuffer [ @@species ]
3799 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3800 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3801 //
24.1.4.2 ArrayBuffer.prototype.constructor
3802 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3804 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3805 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3807 //
24.1.5 Properties of the ArrayBuffer Instances
3810 // ---------------------------------------
3811 //
24.2 DataView Objects
3812 // ---------------------------------------
3814 // See typedarray.js for TypedArray polyfill
3817 if (!('DataView' in global))
3820 //
24.2.1 Abstract Operations For DataView Objects
3821 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3822 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3823 //
24.2.2 The DataView Constructor
3824 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3825 //
24.2.3 Properties of the DataView Constructor
3826 //
24.2.3.1 DataView.prototype
3827 //
24.2.4 Properties of the DataView Prototype Object
3828 //
24.2.4.1 get DataView.prototype.buffer
3829 //
24.2.4.2 get DataView.prototype.byteLength
3830 //
24.2.4.3 get DataView.prototype.byteOffset
3831 //
24.2.4.4 DataView.prototype.constructor
3832 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3833 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3834 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3835 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3836 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3837 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3838 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3839 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3840 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3841 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3842 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3843 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3844 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3845 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3846 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3847 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3849 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3850 define(DataView.prototype, $$toStringTag, 'DataView');
3852 //
24.2.5 Properties of DataView Instances
3855 // ---------------------------------------
3856 //
24.3 The JSON Object
3857 // ---------------------------------------
3859 //
24.3.1 JSON.parse ( text [ , reviver ] )
3860 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3861 //
24.3.3 JSON [ @@toStringTag ]
3862 define(JSON, $$toStringTag, 'JSON');
3864 // ---------------------------------------
3866 // ---------------------------------------
3868 //
25.1.1 Common Iteration Interfaces
3869 //
25.1.1.1 The Iterable Interface
3870 //
25.1.1.2 The Iterator Interface
3871 //
25.1.1.3 The IteratorResult Interface
3873 //
25.1.2 The %IteratorPrototype% Object
3874 // Defined earlier, so other prototypes can reference it.
3875 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3876 define($IteratorPrototype$, $$iterator, function() {
3881 // ---------------------------------------
3882 //
25.4 Promise Objects
3883 // ---------------------------------------
3886 //
25.4 Promise Objects
3888 //
25.4.1 Promise Abstract Operations
3890 //
25.4.1.1 PromiseCapability Records
3891 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
3893 function IfAbruptRejectPromise(value, capability) {
3894 var rejectResult = capability['[[Reject]]'].call(undefined, value);
3895 return capability['[[Promise]]'];
3898 //
25.4.1.2 PromiseReaction Records
3900 //
25.4.1.3 CreateResolvingFunctions ( promise )
3902 function CreateResolvingFunctions(promise) {
3903 var alreadyResolved = {'[[value]]': false};
3904 var resolve = PromiseResolveFunction();
3905 set_internal(resolve, '[[Promise]]', promise);
3906 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
3907 var reject = PromiseRejectFunction();
3908 set_internal(reject, '[[Promise]]', promise);
3909 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
3910 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
3913 //
25.4.1.3.1 Promise Reject Functions
3915 function PromiseRejectFunction() {
3916 var F = function(reason) {
3917 console.assert(Type(F['[[Promise]]']) === 'object');
3918 var promise = F['[[Promise]]'];
3919 var alreadyResolved = F['[[AlreadyResolved]]'];
3920 if (alreadyResolved['[[value]]']) return undefined;
3921 set_internal(alreadyResolved, '[[value]]', true);
3922 return RejectPromise(promise, reason);
3927 //
25.4.1.3.2 Promise Resolve Functions
3929 function PromiseResolveFunction() {
3930 var F = function(resolution) {
3931 console.assert(Type(F['[[Promise]]']) === 'object');
3932 var promise = F['[[Promise]]'];
3933 var alreadyResolved = F['[[AlreadyResolved]]'];
3934 if (alreadyResolved['[[value]]']) return undefined;
3935 set_internal(alreadyResolved, '[[value]]', true);
3937 if (SameValue(resolution, promise)) {
3938 var selfResolutionError = TypeError();
3939 return RejectPromise(promise, selfResolutionError);
3941 if (Type(resolution) !== 'object')
3942 return FulfillPromise(promise, resolution);
3944 var then = resolution['then'];
3946 return RejectPromise(promise, then);
3948 if (!IsCallable(then))
3949 return FulfillPromise(promise, resolution);
3950 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
3956 //
25.4.1.4 FulfillPromise ( promise, value )
3958 function FulfillPromise(promise, value) {
3959 console.assert(promise['[[PromiseState]]'] === 'pending');
3960 var reactions = promise['[[PromiseFulfillReactions]]'];
3961 set_internal(promise, '[[PromiseResult]]', value);
3962 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
3963 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
3964 set_internal(promise, '[[PromiseState]]', 'fulfilled');
3965 return TriggerPromiseReactions(reactions, value);
3968 //
25.4.1.5 NewPromiseCapability ( C )
3970 function NewPromiseCapability(c) {
3971 // To keep Promise hermetic, this doesn't look much like the spec.
3972 return CreatePromiseCapabilityRecord(undefined, c);
3975 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
3977 function CreatePromiseCapabilityRecord(promise, constructor) {
3978 // To keep Promise hermetic, this doesn't look much like the spec.
3979 console.assert(IsConstructor(constructor));
3980 var promiseCapability = {};
3981 set_internal(promiseCapability, '[[Promise]]', promise);
3982 set_internal(promiseCapability, '[[Resolve]]', undefined);
3983 set_internal(promiseCapability, '[[Reject]]', undefined);
3984 var executor = GetCapabilitiesExecutor();
3985 set_internal(executor, '[[Capability]]', promiseCapability);
3987 // NOTE: Differs from spec; object is constructed here
3988 var constructorResult = promise = new constructor(executor);
3989 set_internal(promiseCapability, '[[Promise]]', promise);
3991 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
3992 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
3993 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
3994 return promiseCapability;
3997 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
3999 function GetCapabilitiesExecutor() {
4000 var F = function(resolve, reject) {
4001 console.assert(F['[[Capability]]']);
4002 var promiseCapability = F['[[Capability]]'];
4003 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4004 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4005 set_internal(promiseCapability, '[[Resolve]]', resolve);
4006 set_internal(promiseCapability, '[[Reject]]', reject);
4012 //
25.4.1.6 IsPromise ( x )
4014 function IsPromise(x) {
4015 if (Type(x) !== 'object') return false;
4016 if (!('[[PromiseState]]' in x)) return false;
4017 if (x['[[PromiseState]]'] === undefined) return false;
4021 //
25.4.1.7 RejectPromise ( promise, reason )
4023 function RejectPromise(promise, reason) {
4024 console.assert(promise['[[PromiseState]]'] === 'pending');
4025 var reactions = promise['[[PromiseRejectReactions]]'];
4026 set_internal(promise, '[[PromiseResult]]', reason);
4027 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4028 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4029 set_internal(promise, '[[PromiseState]]', 'rejected');
4030 return TriggerPromiseReactions(reactions, reason);
4033 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4035 function TriggerPromiseReactions(reactions, argument) {
4036 for (var i =
0, len = reactions.length; i < len; ++i)
4037 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4041 //
25.4.2 Promise Jobs
4043 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4045 function PromiseReactionJob(reaction, argument) {
4046 var promiseCapability = reaction['[[Capabilities]]'];
4047 var handler = reaction['[[Handler]]'];
4048 var handlerResult, status;
4050 if (handler === 'Identity') handlerResult = argument;
4051 else if (handler === 'Thrower') throw argument;
4052 else handlerResult = handler.call(undefined, argument);
4053 } catch (handlerResult) {
4054 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4055 NextJob(status); return;
4057 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4061 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4063 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4064 // SPEC BUG: promise vs. promiseToResolve
4065 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4067 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4068 resolvingFunctions['[[Reject]]']);
4069 } catch (thenCallResult) {
4070 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4071 NextJob(status); return;
4073 NextJob(thenCallResult);
4076 //
25.4.3 The Promise Constructor
4078 //
25.4.3.1 Promise ( executor )
4080 function Promise(executor) {
4081 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4082 Object.defineProperty(this, '[[PromiseState]]', config);
4083 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4084 Object.defineProperty(this, '[[PromiseResult]]', config);
4085 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4086 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4089 if (Type(promise) !== 'object') throw new TypeError();
4090 if (!('[[PromiseState]]' in promise)) throw TypeError();
4091 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4092 if (!IsCallable(executor)) throw TypeError();
4094 set_internal(promise, '[[PromiseConstructor]]', Promise);
4096 return InitializePromise(promise, executor);
4099 //
25.4.3.1.1 InitializePromise ( promise, executor )
4101 function InitializePromise(promise, executor) {
4102 console.assert('[[PromiseState]]' in promise);
4103 console.assert(IsCallable(executor));
4104 set_internal(promise, '[[PromiseState]]', 'pending');
4105 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4106 set_internal(promise, '[[PromiseRejectReactions]]', []);
4107 var resolvingFunctions = CreateResolvingFunctions(promise);
4109 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4110 resolvingFunctions['[[Reject]]']);
4111 } catch (completion) {
4112 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4117 //
25.4.4 Properties of the Promise Constructor
4118 //
25.4.4.1 Promise.all ( iterable )
4120 define(Promise, 'all', function all(iterable) {
4121 var c = strict(this);
4122 var promiseCapability = NewPromiseCapability(c);
4124 var iterator = GetIterator(iterable);
4126 promiseCapability['[[Reject]]'].call(undefined, value);
4127 return promiseCapability['[[Promise]]'];
4130 var remainingElementsCount = { value:
1 };
4134 var next = IteratorStep(iterator);
4136 promiseCapability['[[Reject]]'].call(undefined, value);
4137 return promiseCapability['[[Promise]]'];
4140 remainingElementsCount.value -=
1;
4141 if (remainingElementsCount.value ===
0) {
4142 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4146 return promiseCapability['[[Promise]]'];
4149 var nextValue = IteratorValue(next);
4151 promiseCapability['[[Reject]]'].call(undefined, value);
4152 return promiseCapability['[[Promise]]'];
4155 var nextPromise = c.resolve(nextValue);
4157 promiseCapability['[[Reject]]'].call(undefined, value);
4158 return promiseCapability['[[Promise]]'];
4160 var resolveElement = PromiseAllResolveElementFunction();
4161 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4162 set_internal(resolveElement, '[[Index]]', index);
4163 set_internal(resolveElement, '[[Values]]', values);
4164 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4165 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4166 remainingElementsCount.value +=
1;
4168 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4170 promiseCapability['[[Reject]]'].call(undefined, value);
4171 return promiseCapability['[[Promise]]'];
4177 //
25.4.4.1.1 Promise.all Resolve Element Functions
4179 function PromiseAllResolveElementFunction() {
4180 var F = function(x) {
4181 var alreadyCalled = F['[[AlreadyCalled]]'];
4182 if (alreadyCalled.value) return undefined;
4183 alreadyCalled.value = true;
4184 var index = F['[[Index]]'];
4185 var values = F['[[Values]]'];
4186 var promiseCapability = F['[[Capabilities]]'];
4187 var remainingElementsCount = F['[[RemainingElements]]'];
4191 promiseCapability['[[Reject]]'].call(undefined, result);
4192 return promiseCapability['[[Promise]]'];
4194 remainingElementsCount.value -=
1;
4195 if (remainingElementsCount.value ===
0)
4196 return promiseCapability['[[Resolve]]'].call(undefined, values);
4202 //
25.4.4.2 Promise.prototype
4204 Promise.prototype = {};
4206 //
25.4.4.3 Promise.race ( iterable )
4208 define(Promise, 'race', function race(iterable) {
4209 var c = strict(this);
4210 var promiseCapability = NewPromiseCapability(c);
4212 var iterator = GetIterator(iterable);
4214 promiseCapability['[[Reject]]'].call(undefined, value);
4215 return promiseCapability['[[Promise]]'];
4219 var next = IteratorStep(iterator);
4221 promiseCapability['[[Reject]]'].call(undefined, value);
4222 return promiseCapability['[[Promise]]'];
4224 if (!next) return promiseCapability['[[Promise]]'];
4226 var nextValue = IteratorValue(next);
4228 promiseCapability['[[Reject]]'].call(undefined, value);
4229 return promiseCapability['[[Promise]]'];
4232 var nextPromise = c.resolve(nextValue);
4234 promiseCapability['[[Reject]]'].call(undefined, value);
4235 return promiseCapability['[[Promise]]'];
4238 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4240 promiseCapability['[[Reject]]'].call(undefined, value);
4241 return promiseCapability['[[Promise]]'];
4246 //
25.4.4.4 Promise.reject ( r )
4248 define(Promise, 'reject', function reject(r) {
4249 var c = strict(this);
4250 var promiseCapability = NewPromiseCapability(c);
4251 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4252 return promiseCapability['[[Promise]]'];
4255 //
25.4.4.5 Promise.resolve ( x )
4257 define(Promise, 'resolve', function resolve(x) {
4258 var c = strict(this);
4260 var constructor = x['[[PromiseConstructor]]'];
4261 if (SameValue(constructor, c)) return x;
4263 var promiseCapability = NewPromiseCapability(c);
4264 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4265 return promiseCapability['[[Promise]]'];
4268 //
25.4.4.6 Promise [ @@create ] ( )
4269 //
25.4.4.6.1 AllocatePromise ( constructor )
4270 //
25.4.5 Properties of the Promise Prototype Object
4271 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4273 define(Promise.prototype, 'catch', function catch_(onRejected) {
4275 return promise.then(undefined, onRejected);
4278 //
25.4.5.2 Promise.prototype.constructor
4280 Promise.prototype.constructor = Promise;
4282 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4284 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4286 if (!IsPromise(promise)) throw TypeError();
4287 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4288 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4289 var c = promise.constructor;
4290 var promiseCapability = NewPromiseCapability(c);
4291 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4292 '[[Handler]]': onFulfilled };
4293 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4294 '[[Handler]]': onRejected };
4295 if (promise['[[PromiseState]]'] === 'pending') {
4296 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4297 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4298 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4299 var value = promise['[[PromiseResult]]'];
4300 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4301 } else if (promise['[[PromiseState]]'] === 'rejected') {
4302 var reason = promise['[[PromiseResult]]'];
4303 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4305 return promiseCapability['[[Promise]]'];
4308 //
25.4.6 Properties of Promise Instances
4310 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4311 global.Promise = Promise;
4313 // Patch early Promise.cast vs. Promise.resolve implementations
4314 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4317 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4318 define(Promise.prototype, $$toStringTag, 'Promise');
4320 // ---------------------------------------
4322 // ---------------------------------------
4325 //
26.1 The Reflect Object
4326 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4327 global.Reflect = {};
4329 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4332 function apply(target, thisArgument, argumentsList) {
4333 if (!IsCallable(target)) throw TypeError();
4334 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4337 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4339 Reflect, 'construct',
4340 function construct(target, argumentsList) {
4341 return __cons(target, argumentsList);
4344 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4346 Reflect, 'defineProperty',
4347 function defineProperty(target, propertyKey, attributes) {
4349 Object.defineProperty(target, propertyKey, attributes);
4356 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4358 Reflect, 'deleteProperty',
4359 function deleteProperty(target,name) {
4361 delete target[name];
4362 return !HasOwnProperty(target, name);
4368 //
26.1.5 Reflect.enumerate ( target )
4370 Reflect, 'enumerate',
4371 function enumerate(target) {
4372 target = ToObject(target);
4373 var iterator = Enumerate(target);
4377 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4380 function get(target, name, receiver) {
4381 target = ToObject(target);
4382 name = String(name);
4383 receiver = (receiver === undefined) ? target : ToObject(receiver);
4384 var desc = getPropertyDescriptor(target, name);
4385 if (desc && 'get' in desc)
4386 return Function.prototype.call.call(desc['get'], receiver);
4387 return target[name];
4390 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4392 Reflect, 'getOwnPropertyDescriptor',
4393 Object.getOwnPropertyDescriptor);
4395 //
26.1.8 Reflect.getPrototypeOf ( target )
4397 Reflect, 'getPrototypeOf',
4398 Object.getPrototypeOf);
4400 //
26.1.9 Reflect.has ( target, propertyKey )
4403 function has(target,name) {
4404 return String(name) in ToObject(target);
4407 //
26.1.10 Reflect.isExtensible (target)
4409 Reflect, 'isExtensible',
4410 Object.isExtensible);
4412 //
26.1.11 Reflect.ownKeys ( target )
4415 function ownKeys(target) {
4416 var obj = ToObject(target);
4417 return Object.getOwnPropertyNames(obj);
4420 //
26.1.12 Reflect.preventExtensions ( target )
4422 Reflect, 'preventExtensions',
4423 function preventExtensions(target) {
4424 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4427 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4430 function set(target, name, value, receiver) {
4431 target = ToObject(target);
4432 name = String(name);
4433 receiver = (receiver === undefined) ? target : ToObject(receiver);
4434 var desc = getPropertyDescriptor(target, name);
4436 if (desc && 'set' in desc)
4437 Function.prototype.call.call(desc['set'], receiver, value);
4439 target[name] = value;
4446 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4448 Reflect, 'setPrototypeOf',
4449 function setPrototypeOf(target, proto) {
4451 target.__proto__ = proto;
4452 return Reflect.getPrototypeOf(target) === proto;
4460 // ---------------------------------------
4461 //
26.2 Proxy Objects
4462 // ---------------------------------------
4464 // Not polyfillable.
4468 // This helper is defined outside the main scope so that the use of
4469 // 'eval' does not taint the scope for minifiers.
4470 function __cons(t, a) {
4471 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4474 <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){
4477 exports.byteLength = byteLength
4478 exports.toByteArray = toByteArray
4479 exports.fromByteArray = fromByteArray
4483 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4485 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4486 for (var i =
0, len = code.length; i < len; ++i) {
4488 revLookup[code.charCodeAt(i)] = i
4491 revLookup['-'.charCodeAt(
0)] =
62
4492 revLookup['_'.charCodeAt(
0)] =
63
4494 function placeHoldersCount (b64) {
4495 var len = b64.length
4497 throw new Error('Invalid string. Length must be a multiple of
4')
4500 // the number of equal signs (place holders)
4501 // if there are two placeholders, than the two characters before it
4502 // represent one byte
4503 // if there is only one, then the three characters before it represent
2 bytes
4504 // this is just a cheap hack to not do indexOf twice
4505 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4508 function byteLength (b64) {
4509 // base64 is
4/
3 + up to two characters of the original data
4510 return b64.length *
3 /
4 - placeHoldersCount(b64)
4513 function toByteArray (b64) {
4514 var i, j, l, tmp, placeHolders, arr
4515 var len = b64.length
4516 placeHolders = placeHoldersCount(b64)
4518 arr = new Arr(len *
3 /
4 - placeHolders)
4520 // if there are placeholders, only get up to the last complete
4 chars
4521 l = placeHolders
> 0 ? len -
4 : len
4525 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4526 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4527 arr[L++] = (tmp
>> 16) &
0xFF
4528 arr[L++] = (tmp
>> 8) &
0xFF
4529 arr[L++] = tmp &
0xFF
4532 if (placeHolders ===
2) {
4533 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4534 arr[L++] = tmp &
0xFF
4535 } else if (placeHolders ===
1) {
4536 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4537 arr[L++] = (tmp
>> 8) &
0xFF
4538 arr[L++] = tmp &
0xFF
4544 function tripletToBase64 (num) {
4545 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4548 function encodeChunk (uint8, start, end) {
4551 for (var i = start; i < end; i +=
3) {
4552 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4553 output.push(tripletToBase64(tmp))
4555 return output.join('')
4558 function fromByteArray (uint8) {
4560 var len = uint8.length
4561 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4564 var maxChunkLength =
16383 // must be multiple of
3
4566 // go through the array every three bytes, we'll deal with trailing stuff later
4567 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4568 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4571 // pad the end with zeros, but make sure to not forget the extra bytes
4572 if (extraBytes ===
1) {
4573 tmp = uint8[len -
1]
4574 output += lookup[tmp
>> 2]
4575 output += lookup[(tmp <<
4) &
0x3F]
4577 } else if (extraBytes ===
2) {
4578 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4579 output += lookup[tmp
>> 10]
4580 output += lookup[(tmp
>> 4) &
0x3F]
4581 output += lookup[(tmp <<
2) &
0x3F]
4587 return parts.join('')
4590 },{}],
2:[function(require,module,exports){
4592 * The buffer module from node.js, for the browser.
4594 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4597 /* eslint-disable no-proto */
4601 var base64 = require('base64-js')
4602 var ieee754 = require('ieee754')
4604 exports.Buffer = Buffer
4605 exports.SlowBuffer = SlowBuffer
4606 exports.INSPECT_MAX_BYTES =
50
4608 var K_MAX_LENGTH =
0x7fffffff
4609 exports.kMaxLength = K_MAX_LENGTH
4612 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4613 * === true Use Uint8Array implementation (fastest)
4614 * === false Print warning and recommend using `buffer` v4.x which has an Object
4615 * implementation (most compatible, even IE6)
4617 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4618 * Opera
11.6+, iOS
4.2+.
4620 * We report that the browser does not support typed arrays if the are not subclassable
4621 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4622 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4623 * for __proto__ and has a buggy typed array implementation.
4625 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4627 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4628 typeof console.error === 'function') {
4630 'This browser lacks typed array (Uint8Array) support which is required by ' +
4631 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4635 function typedArraySupport () {
4636 // Can typed array instances can be augmented?
4638 var arr = new Uint8Array(
1)
4639 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4640 return arr.foo() ===
42
4646 function createBuffer (length) {
4647 if (length
> K_MAX_LENGTH) {
4648 throw new RangeError('Invalid typed array length')
4650 // Return an augmented `Uint8Array` instance
4651 var buf = new Uint8Array(length)
4652 buf.__proto__ = Buffer.prototype
4657 * The Buffer constructor returns instances of `Uint8Array` that have their
4658 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4659 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4660 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4661 * returns a single octet.
4663 * The `Uint8Array` prototype remains unmodified.
4666 function Buffer (arg, encodingOrOffset, length) {
4668 if (typeof arg === 'number') {
4669 if (typeof encodingOrOffset === 'string') {
4671 'If encoding is specified then the first argument must be a string'
4674 return allocUnsafe(arg)
4676 return from(arg, encodingOrOffset, length)
4679 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4680 if (typeof Symbol !== 'undefined' && Symbol.species &&
4681 Buffer[Symbol.species] === Buffer) {
4682 Object.defineProperty(Buffer, Symbol.species, {
4690 Buffer.poolSize =
8192 // not used by this implementation
4692 function from (value, encodingOrOffset, length) {
4693 if (typeof value === 'number') {
4694 throw new TypeError('"value" argument must not be a number')
4697 if (value instanceof ArrayBuffer) {
4698 return fromArrayBuffer(value, encodingOrOffset, length)
4701 if (typeof value === 'string') {
4702 return fromString(value, encodingOrOffset)
4705 return fromObject(value)
4709 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4710 * if value is a number.
4711 * Buffer.from(str[, encoding])
4712 * Buffer.from(array)
4713 * Buffer.from(buffer)
4714 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4716 Buffer.from = function (value, encodingOrOffset, length) {
4717 return from(value, encodingOrOffset, length)
4720 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4721 // https://github.com/feross/buffer/pull/
148
4722 Buffer.prototype.__proto__ = Uint8Array.prototype
4723 Buffer.__proto__ = Uint8Array
4725 function assertSize (size) {
4726 if (typeof size !== 'number') {
4727 throw new TypeError('"size" argument must be a number')
4728 } else if (size <
0) {
4729 throw new RangeError('"size" argument must not be negative')
4733 function alloc (size, fill, encoding) {
4736 return createBuffer(size)
4738 if (fill !== undefined) {
4739 // Only pay attention to encoding if it's a string. This
4740 // prevents accidentally sending in a number that would
4741 // be interpretted as a start offset.
4742 return typeof encoding === 'string'
4743 ? createBuffer(size).fill(fill, encoding)
4744 : createBuffer(size).fill(fill)
4746 return createBuffer(size)
4750 * Creates a new filled Buffer instance.
4751 * alloc(size[, fill[, encoding]])
4753 Buffer.alloc = function (size, fill, encoding) {
4754 return alloc(size, fill, encoding)
4757 function allocUnsafe (size) {
4759 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4763 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4765 Buffer.allocUnsafe = function (size) {
4766 return allocUnsafe(size)
4769 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4771 Buffer.allocUnsafeSlow = function (size) {
4772 return allocUnsafe(size)
4775 function fromString (string, encoding) {
4776 if (typeof encoding !== 'string' || encoding === '') {
4780 if (!Buffer.isEncoding(encoding)) {
4781 throw new TypeError('"encoding" must be a valid string encoding')
4784 var length = byteLength(string, encoding) |
0
4785 var buf = createBuffer(length)
4787 var actual = buf.write(string, encoding)
4789 if (actual !== length) {
4790 // Writing a hex string, for example, that contains invalid characters will
4791 // cause everything after the first invalid character to be ignored. (e.g.
4792 // 'abxxcd' will be treated as 'ab')
4793 buf = buf.slice(
0, actual)
4799 function fromArrayLike (array) {
4800 var length = array.length <
0 ?
0 : checked(array.length) |
0
4801 var buf = createBuffer(length)
4802 for (var i =
0; i < length; i +=
1) {
4803 buf[i] = array[i] &
255
4808 function fromArrayBuffer (array, byteOffset, length) {
4809 if (byteOffset <
0 || array.byteLength < byteOffset) {
4810 throw new RangeError('\'offset\' is out of bounds')
4813 if (array.byteLength < byteOffset + (length ||
0)) {
4814 throw new RangeError('\'length\' is out of bounds')
4818 if (byteOffset === undefined && length === undefined) {
4819 buf = new Uint8Array(array)
4820 } else if (length === undefined) {
4821 buf = new Uint8Array(array, byteOffset)
4823 buf = new Uint8Array(array, byteOffset, length)
4826 // Return an augmented `Uint8Array` instance
4827 buf.__proto__ = Buffer.prototype
4831 function fromObject (obj) {
4832 if (Buffer.isBuffer(obj)) {
4833 var len = checked(obj.length) |
0
4834 var buf = createBuffer(len)
4836 if (buf.length ===
0) {
4840 obj.copy(buf,
0,
0, len)
4845 if (isArrayBufferView(obj) || 'length' in obj) {
4846 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4847 return createBuffer(
0)
4849 return fromArrayLike(obj)
4852 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
4853 return fromArrayLike(obj.data)
4857 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
4860 function checked (length) {
4861 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
4862 // length is NaN (which is otherwise coerced to zero.)
4863 if (length
>= K_MAX_LENGTH) {
4864 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
4865 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
4870 function SlowBuffer (length) {
4871 if (+length != length) { // eslint-disable-line eqeqeq
4874 return Buffer.alloc(+length)
4877 Buffer.isBuffer = function isBuffer (b) {
4878 return b != null && b._isBuffer === true
4881 Buffer.compare = function compare (a, b) {
4882 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
4883 throw new TypeError('Arguments must be Buffers')
4886 if (a === b) return
0
4891 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
4892 if (a[i] !== b[i]) {
4899 if (x < y) return -
1
4904 Buffer.isEncoding = function isEncoding (encoding) {
4905 switch (String(encoding).toLowerCase()) {
4923 Buffer.concat = function concat (list, length) {
4924 if (!Array.isArray(list)) {
4925 throw new TypeError('"list" argument must be an Array of Buffers')
4928 if (list.length ===
0) {
4929 return Buffer.alloc(
0)
4933 if (length === undefined) {
4935 for (i =
0; i < list.length; ++i) {
4936 length += list[i].length
4940 var buffer = Buffer.allocUnsafe(length)
4942 for (i =
0; i < list.length; ++i) {
4944 if (!Buffer.isBuffer(buf)) {
4945 throw new TypeError('"list" argument must be an Array of Buffers')
4947 buf.copy(buffer, pos)
4953 function byteLength (string, encoding) {
4954 if (Buffer.isBuffer(string)) {
4955 return string.length
4957 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
4958 return string.byteLength
4960 if (typeof string !== 'string') {
4961 string = '' + string
4964 var len = string.length
4965 if (len ===
0) return
0
4967 // Use a for loop to avoid recursion
4968 var loweredCase = false
4978 return utf8ToBytes(string).length
4987 return base64ToBytes(string).length
4989 if (loweredCase) return utf8ToBytes(string).length // assume utf8
4990 encoding = ('' + encoding).toLowerCase()
4995 Buffer.byteLength = byteLength
4997 function slowToString (encoding, start, end) {
4998 var loweredCase = false
5000 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5001 // property of a typed array.
5003 // This behaves neither like String nor Uint8Array in that we set start/end
5004 // to their upper/lower bounds if the value passed is out of range.
5005 // undefined is handled specially as per ECMA-
262 6th Edition,
5006 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5007 if (start === undefined || start <
0) {
5010 // Return early if start
> this.length. Done here to prevent potential uint32
5011 // coercion fail below.
5012 if (start
> this.length) {
5016 if (end === undefined || end
> this.length) {
5024 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5032 if (!encoding) encoding = 'utf8'
5037 return hexSlice(this, start, end)
5041 return utf8Slice(this, start, end)
5044 return asciiSlice(this, start, end)
5048 return latin1Slice(this, start, end)
5051 return base64Slice(this, start, end)
5057 return utf16leSlice(this, start, end)
5060 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5061 encoding = (encoding + '').toLowerCase()
5067 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5068 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5069 // reliably in a browserify context because there could be multiple different
5070 // copies of the 'buffer' package in use. This method works even for Buffer
5071 // instances that were created from another copy of the `buffer` package.
5072 // See: https://github.com/feross/buffer/issues/
154
5073 Buffer.prototype._isBuffer = true
5075 function swap (b, n, m) {
5081 Buffer.prototype.swap16 = function swap16 () {
5082 var len = this.length
5083 if (len %
2 !==
0) {
5084 throw new RangeError('Buffer size must be a multiple of
16-bits')
5086 for (var i =
0; i < len; i +=
2) {
5087 swap(this, i, i +
1)
5092 Buffer.prototype.swap32 = function swap32 () {
5093 var len = this.length
5094 if (len %
4 !==
0) {
5095 throw new RangeError('Buffer size must be a multiple of
32-bits')
5097 for (var i =
0; i < len; i +=
4) {
5098 swap(this, i, i +
3)
5099 swap(this, i +
1, i +
2)
5104 Buffer.prototype.swap64 = function swap64 () {
5105 var len = this.length
5106 if (len %
8 !==
0) {
5107 throw new RangeError('Buffer size must be a multiple of
64-bits')
5109 for (var i =
0; i < len; i +=
8) {
5110 swap(this, i, i +
7)
5111 swap(this, i +
1, i +
6)
5112 swap(this, i +
2, i +
5)
5113 swap(this, i +
3, i +
4)
5118 Buffer.prototype.toString = function toString () {
5119 var length = this.length
5120 if (length ===
0) return ''
5121 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5122 return slowToString.apply(this, arguments)
5125 Buffer.prototype.equals = function equals (b) {
5126 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5127 if (this === b) return true
5128 return Buffer.compare(this, b) ===
0
5131 Buffer.prototype.inspect = function inspect () {
5133 var max = exports.INSPECT_MAX_BYTES
5134 if (this.length
> 0) {
5135 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5136 if (this.length
> max) str += ' ... '
5138 return '
<Buffer ' + str + '
>'
5141 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5142 if (!Buffer.isBuffer(target)) {
5143 throw new TypeError('Argument must be a Buffer')
5146 if (start === undefined) {
5149 if (end === undefined) {
5150 end = target ? target.length :
0
5152 if (thisStart === undefined) {
5155 if (thisEnd === undefined) {
5156 thisEnd = this.length
5159 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5160 throw new RangeError('out of range index')
5163 if (thisStart
>= thisEnd && start
>= end) {
5166 if (thisStart
>= thisEnd) {
5178 if (this === target) return
0
5180 var x = thisEnd - thisStart
5182 var len = Math.min(x, y)
5184 var thisCopy = this.slice(thisStart, thisEnd)
5185 var targetCopy = target.slice(start, end)
5187 for (var i =
0; i < len; ++i) {
5188 if (thisCopy[i] !== targetCopy[i]) {
5195 if (x < y) return -
1
5200 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5201 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5204 // - buffer - a Buffer to search
5205 // - val - a string, Buffer, or number
5206 // - byteOffset - an index into `buffer`; will be clamped to an int32
5207 // - encoding - an optional encoding, relevant is val is a string
5208 // - dir - true for indexOf, false for lastIndexOf
5209 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5210 // Empty buffer means no match
5211 if (buffer.length ===
0) return -
1
5213 // Normalize byteOffset
5214 if (typeof byteOffset === 'string') {
5215 encoding = byteOffset
5217 } else if (byteOffset
> 0x7fffffff) {
5218 byteOffset =
0x7fffffff
5219 } else if (byteOffset < -
0x80000000) {
5220 byteOffset = -
0x80000000
5222 byteOffset = +byteOffset // Coerce to Number.
5223 if (numberIsNaN(byteOffset)) {
5224 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5225 byteOffset = dir ?
0 : (buffer.length -
1)
5228 // Normalize byteOffset: negative offsets start from the end of the buffer
5229 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5230 if (byteOffset
>= buffer.length) {
5232 else byteOffset = buffer.length -
1
5233 } else if (byteOffset <
0) {
5234 if (dir) byteOffset =
0
5239 if (typeof val === 'string') {
5240 val = Buffer.from(val, encoding)
5243 // Finally, search either indexOf (if dir is true) or lastIndexOf
5244 if (Buffer.isBuffer(val)) {
5245 // Special case: looking for empty string/buffer always fails
5246 if (val.length ===
0) {
5249 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5250 } else if (typeof val === 'number') {
5251 val = val &
0xFF // Search for a byte value [
0-
255]
5252 if (typeof Uint8Array.prototype.indexOf === 'function') {
5254 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5256 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5259 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5262 throw new TypeError('val must be string, number or Buffer')
5265 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5267 var arrLength = arr.length
5268 var valLength = val.length
5270 if (encoding !== undefined) {
5271 encoding = String(encoding).toLowerCase()
5272 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5273 encoding === 'utf16le' || encoding === 'utf-
16le') {
5274 if (arr.length <
2 || val.length <
2) {
5284 function read (buf, i) {
5285 if (indexSize ===
1) {
5288 return buf.readUInt16BE(i * indexSize)
5295 for (i = byteOffset; i < arrLength; i++) {
5296 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5297 if (foundIndex === -
1) foundIndex = i
5298 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5300 if (foundIndex !== -
1) i -= i - foundIndex
5305 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5306 for (i = byteOffset; i
>=
0; i--) {
5308 for (var j =
0; j < valLength; j++) {
5309 if (read(arr, i + j) !== read(val, j)) {
5321 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5322 return this.indexOf(val, byteOffset, encoding) !== -
1
5325 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5326 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5329 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5330 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5333 function hexWrite (buf, string, offset, length) {
5334 offset = Number(offset) ||
0
5335 var remaining = buf.length - offset
5339 length = Number(length)
5340 if (length
> remaining) {
5345 // must be an even number of digits
5346 var strLen = string.length
5347 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5349 if (length
> strLen /
2) {
5352 for (var i =
0; i < length; ++i) {
5353 var parsed = parseInt(string.substr(i *
2,
2),
16)
5354 if (numberIsNaN(parsed)) return i
5355 buf[offset + i] = parsed
5360 function utf8Write (buf, string, offset, length) {
5361 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5364 function asciiWrite (buf, string, offset, length) {
5365 return blitBuffer(asciiToBytes(string), buf, offset, length)
5368 function latin1Write (buf, string, offset, length) {
5369 return asciiWrite(buf, string, offset, length)
5372 function base64Write (buf, string, offset, length) {
5373 return blitBuffer(base64ToBytes(string), buf, offset, length)
5376 function ucs2Write (buf, string, offset, length) {
5377 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5380 Buffer.prototype.write = function write (string, offset, length, encoding) {
5381 // Buffer#write(string)
5382 if (offset === undefined) {
5384 length = this.length
5386 // Buffer#write(string, encoding)
5387 } else if (length === undefined && typeof offset === 'string') {
5389 length = this.length
5391 // Buffer#write(string, offset[, length][, encoding])
5392 } else if (isFinite(offset)) {
5393 offset = offset
>>> 0
5394 if (isFinite(length)) {
5395 length = length
>>> 0
5396 if (encoding === undefined) encoding = 'utf8'
5403 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5407 var remaining = this.length - offset
5408 if (length === undefined || length
> remaining) length = remaining
5410 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5411 throw new RangeError('Attempt to write outside buffer bounds')
5414 if (!encoding) encoding = 'utf8'
5416 var loweredCase = false
5420 return hexWrite(this, string, offset, length)
5424 return utf8Write(this, string, offset, length)
5427 return asciiWrite(this, string, offset, length)
5431 return latin1Write(this, string, offset, length)
5434 // Warning: maxLength not taken into account in base64Write
5435 return base64Write(this, string, offset, length)
5441 return ucs2Write(this, string, offset, length)
5444 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5445 encoding = ('' + encoding).toLowerCase()
5451 Buffer.prototype.toJSON = function toJSON () {
5454 data: Array.prototype.slice.call(this._arr || this,
0)
5458 function base64Slice (buf, start, end) {
5459 if (start ===
0 && end === buf.length) {
5460 return base64.fromByteArray(buf)
5462 return base64.fromByteArray(buf.slice(start, end))
5466 function utf8Slice (buf, start, end) {
5467 end = Math.min(buf.length, end)
5472 var firstByte = buf[i]
5473 var codePoint = null
5474 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5475 : (firstByte
> 0xDF) ?
3
5476 : (firstByte
> 0xBF) ?
2
5479 if (i + bytesPerSequence <= end) {
5480 var secondByte, thirdByte, fourthByte, tempCodePoint
5482 switch (bytesPerSequence) {
5484 if (firstByte <
0x80) {
5485 codePoint = firstByte
5489 secondByte = buf[i +
1]
5490 if ((secondByte &
0xC0) ===
0x80) {
5491 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5492 if (tempCodePoint
> 0x7F) {
5493 codePoint = tempCodePoint
5498 secondByte = buf[i +
1]
5499 thirdByte = buf[i +
2]
5500 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5501 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5502 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5503 codePoint = tempCodePoint
5508 secondByte = buf[i +
1]
5509 thirdByte = buf[i +
2]
5510 fourthByte = buf[i +
3]
5511 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5512 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5513 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5514 codePoint = tempCodePoint
5520 if (codePoint === null) {
5521 // we did not generate a valid codePoint so insert a
5522 // replacement char (U+FFFD) and advance only
1 byte
5524 bytesPerSequence =
1
5525 } else if (codePoint
> 0xFFFF) {
5526 // encode to utf16 (surrogate pair dance)
5527 codePoint -=
0x10000
5528 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5529 codePoint =
0xDC00 | codePoint &
0x3FF
5533 i += bytesPerSequence
5536 return decodeCodePointsArray(res)
5539 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5540 // the lowest limit is Chrome, with
0x10000 args.
5541 // We go
1 magnitude less, for safety
5542 var MAX_ARGUMENTS_LENGTH =
0x1000
5544 function decodeCodePointsArray (codePoints) {
5545 var len = codePoints.length
5546 if (len <= MAX_ARGUMENTS_LENGTH) {
5547 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5550 // Decode in chunks to avoid
"call stack size exceeded".
5554 res += String.fromCharCode.apply(
5556 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5562 function asciiSlice (buf, start, end) {
5564 end = Math.min(buf.length, end)
5566 for (var i = start; i < end; ++i) {
5567 ret += String.fromCharCode(buf[i] &
0x7F)
5572 function latin1Slice (buf, start, end) {
5574 end = Math.min(buf.length, end)
5576 for (var i = start; i < end; ++i) {
5577 ret += String.fromCharCode(buf[i])
5582 function hexSlice (buf, start, end) {
5583 var len = buf.length
5585 if (!start || start <
0) start =
0
5586 if (!end || end <
0 || end
> len) end = len
5589 for (var i = start; i < end; ++i) {
5590 out += toHex(buf[i])
5595 function utf16leSlice (buf, start, end) {
5596 var bytes = buf.slice(start, end)
5598 for (var i =
0; i < bytes.length; i +=
2) {
5599 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5604 Buffer.prototype.slice = function slice (start, end) {
5605 var len = this.length
5607 end = end === undefined ? len : ~~end
5611 if (start <
0) start =
0
5612 } else if (start
> len) {
5618 if (end <
0) end =
0
5619 } else if (end
> len) {
5623 if (end < start) end = start
5625 var newBuf = this.subarray(start, end)
5626 // Return an augmented `Uint8Array` instance
5627 newBuf.__proto__ = Buffer.prototype
5632 * Need to make sure that buffer isn't trying to write out of bounds.
5634 function checkOffset (offset, ext, length) {
5635 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5636 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5639 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5640 offset = offset
>>> 0
5641 byteLength = byteLength
>>> 0
5642 if (!noAssert) checkOffset(offset, byteLength, this.length)
5644 var val = this[offset]
5647 while (++i < byteLength && (mul *=
0x100)) {
5648 val += this[offset + i] * mul
5654 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5655 offset = offset
>>> 0
5656 byteLength = byteLength
>>> 0
5658 checkOffset(offset, byteLength, this.length)
5661 var val = this[offset + --byteLength]
5663 while (byteLength
> 0 && (mul *=
0x100)) {
5664 val += this[offset + --byteLength] * mul
5670 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5671 offset = offset
>>> 0
5672 if (!noAssert) checkOffset(offset,
1, this.length)
5676 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5677 offset = offset
>>> 0
5678 if (!noAssert) checkOffset(offset,
2, this.length)
5679 return this[offset] | (this[offset +
1] <<
8)
5682 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5683 offset = offset
>>> 0
5684 if (!noAssert) checkOffset(offset,
2, this.length)
5685 return (this[offset] <<
8) | this[offset +
1]
5688 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5689 offset = offset
>>> 0
5690 if (!noAssert) checkOffset(offset,
4, this.length)
5692 return ((this[offset]) |
5693 (this[offset +
1] <<
8) |
5694 (this[offset +
2] <<
16)) +
5695 (this[offset +
3] *
0x1000000)
5698 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5699 offset = offset
>>> 0
5700 if (!noAssert) checkOffset(offset,
4, this.length)
5702 return (this[offset] *
0x1000000) +
5703 ((this[offset +
1] <<
16) |
5704 (this[offset +
2] <<
8) |
5708 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5709 offset = offset
>>> 0
5710 byteLength = byteLength
>>> 0
5711 if (!noAssert) checkOffset(offset, byteLength, this.length)
5713 var val = this[offset]
5716 while (++i < byteLength && (mul *=
0x100)) {
5717 val += this[offset + i] * mul
5721 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5726 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5727 offset = offset
>>> 0
5728 byteLength = byteLength
>>> 0
5729 if (!noAssert) checkOffset(offset, byteLength, this.length)
5733 var val = this[offset + --i]
5734 while (i
> 0 && (mul *=
0x100)) {
5735 val += this[offset + --i] * mul
5739 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5744 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5745 offset = offset
>>> 0
5746 if (!noAssert) checkOffset(offset,
1, this.length)
5747 if (!(this[offset] &
0x80)) return (this[offset])
5748 return ((
0xff - this[offset] +
1) * -
1)
5751 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5752 offset = offset
>>> 0
5753 if (!noAssert) checkOffset(offset,
2, this.length)
5754 var val = this[offset] | (this[offset +
1] <<
8)
5755 return (val &
0x8000) ? val |
0xFFFF0000 : val
5758 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5759 offset = offset
>>> 0
5760 if (!noAssert) checkOffset(offset,
2, this.length)
5761 var val = this[offset +
1] | (this[offset] <<
8)
5762 return (val &
0x8000) ? val |
0xFFFF0000 : val
5765 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5766 offset = offset
>>> 0
5767 if (!noAssert) checkOffset(offset,
4, this.length)
5769 return (this[offset]) |
5770 (this[offset +
1] <<
8) |
5771 (this[offset +
2] <<
16) |
5772 (this[offset +
3] <<
24)
5775 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5776 offset = offset
>>> 0
5777 if (!noAssert) checkOffset(offset,
4, this.length)
5779 return (this[offset] <<
24) |
5780 (this[offset +
1] <<
16) |
5781 (this[offset +
2] <<
8) |
5785 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5786 offset = offset
>>> 0
5787 if (!noAssert) checkOffset(offset,
4, this.length)
5788 return ieee754.read(this, offset, true,
23,
4)
5791 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5792 offset = offset
>>> 0
5793 if (!noAssert) checkOffset(offset,
4, this.length)
5794 return ieee754.read(this, offset, false,
23,
4)
5797 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5798 offset = offset
>>> 0
5799 if (!noAssert) checkOffset(offset,
8, this.length)
5800 return ieee754.read(this, offset, true,
52,
8)
5803 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5804 offset = offset
>>> 0
5805 if (!noAssert) checkOffset(offset,
8, this.length)
5806 return ieee754.read(this, offset, false,
52,
8)
5809 function checkInt (buf, value, offset, ext, max, min) {
5810 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5811 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5812 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5815 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5817 offset = offset
>>> 0
5818 byteLength = byteLength
>>> 0
5820 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5821 checkInt(this, value, offset, byteLength, maxBytes,
0)
5826 this[offset] = value &
0xFF
5827 while (++i < byteLength && (mul *=
0x100)) {
5828 this[offset + i] = (value / mul) &
0xFF
5831 return offset + byteLength
5834 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5836 offset = offset
>>> 0
5837 byteLength = byteLength
>>> 0
5839 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5840 checkInt(this, value, offset, byteLength, maxBytes,
0)
5843 var i = byteLength -
1
5845 this[offset + i] = value &
0xFF
5846 while (--i
>=
0 && (mul *=
0x100)) {
5847 this[offset + i] = (value / mul) &
0xFF
5850 return offset + byteLength
5853 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
5855 offset = offset
>>> 0
5856 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
5857 this[offset] = (value &
0xff)
5861 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
5863 offset = offset
>>> 0
5864 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5865 this[offset] = (value &
0xff)
5866 this[offset +
1] = (value
>>> 8)
5870 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
5872 offset = offset
>>> 0
5873 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5874 this[offset] = (value
>>> 8)
5875 this[offset +
1] = (value &
0xff)
5879 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
5881 offset = offset
>>> 0
5882 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5883 this[offset +
3] = (value
>>> 24)
5884 this[offset +
2] = (value
>>> 16)
5885 this[offset +
1] = (value
>>> 8)
5886 this[offset] = (value &
0xff)
5890 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
5892 offset = offset
>>> 0
5893 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5894 this[offset] = (value
>>> 24)
5895 this[offset +
1] = (value
>>> 16)
5896 this[offset +
2] = (value
>>> 8)
5897 this[offset +
3] = (value &
0xff)
5901 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
5903 offset = offset
>>> 0
5905 var limit = Math.pow(
2, (
8 * byteLength) -
1)
5907 checkInt(this, value, offset, byteLength, limit -
1, -limit)
5913 this[offset] = value &
0xFF
5914 while (++i < byteLength && (mul *=
0x100)) {
5915 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
5918 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
5921 return offset + byteLength
5924 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
5926 offset = offset
>>> 0
5928 var limit = Math.pow(
2, (
8 * byteLength) -
1)
5930 checkInt(this, value, offset, byteLength, limit -
1, -limit)
5933 var i = byteLength -
1
5936 this[offset + i] = value &
0xFF
5937 while (--i
>=
0 && (mul *=
0x100)) {
5938 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
5941 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
5944 return offset + byteLength
5947 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
5949 offset = offset
>>> 0
5950 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
5951 if (value <
0) value =
0xff + value +
1
5952 this[offset] = (value &
0xff)
5956 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
5958 offset = offset
>>> 0
5959 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
5960 this[offset] = (value &
0xff)
5961 this[offset +
1] = (value
>>> 8)
5965 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
5967 offset = offset
>>> 0
5968 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
5969 this[offset] = (value
>>> 8)
5970 this[offset +
1] = (value &
0xff)
5974 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
5976 offset = offset
>>> 0
5977 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
5978 this[offset] = (value &
0xff)
5979 this[offset +
1] = (value
>>> 8)
5980 this[offset +
2] = (value
>>> 16)
5981 this[offset +
3] = (value
>>> 24)
5985 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
5987 offset = offset
>>> 0
5988 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
5989 if (value <
0) value =
0xffffffff + value +
1
5990 this[offset] = (value
>>> 24)
5991 this[offset +
1] = (value
>>> 16)
5992 this[offset +
2] = (value
>>> 8)
5993 this[offset +
3] = (value &
0xff)
5997 function checkIEEE754 (buf, value, offset, ext, max, min) {
5998 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5999 if (offset <
0) throw new RangeError('Index out of range')
6002 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6004 offset = offset
>>> 0
6006 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6008 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6012 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6013 return writeFloat(this, value, offset, true, noAssert)
6016 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6017 return writeFloat(this, value, offset, false, noAssert)
6020 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6022 offset = offset
>>> 0
6024 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6026 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6030 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6031 return writeDouble(this, value, offset, true, noAssert)
6034 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6035 return writeDouble(this, value, offset, false, noAssert)
6038 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6039 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6040 if (!start) start =
0
6041 if (!end && end !==
0) end = this.length
6042 if (targetStart
>= target.length) targetStart = target.length
6043 if (!targetStart) targetStart =
0
6044 if (end
> 0 && end < start) end = start
6046 // Copy
0 bytes; we're done
6047 if (end === start) return
0
6048 if (target.length ===
0 || this.length ===
0) return
0
6050 // Fatal error conditions
6051 if (targetStart <
0) {
6052 throw new RangeError('targetStart out of bounds')
6054 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6055 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6058 if (end
> this.length) end = this.length
6059 if (target.length - targetStart < end - start) {
6060 end = target.length - targetStart + start
6063 var len = end - start
6066 if (this === target && start < targetStart && targetStart < end) {
6067 // descending copy from end
6068 for (i = len -
1; i
>=
0; --i) {
6069 target[i + targetStart] = this[i + start]
6071 } else if (len <
1000) {
6072 // ascending copy from start
6073 for (i =
0; i < len; ++i) {
6074 target[i + targetStart] = this[i + start]
6077 Uint8Array.prototype.set.call(
6079 this.subarray(start, start + len),
6088 // buffer.fill(number[, offset[, end]])
6089 // buffer.fill(buffer[, offset[, end]])
6090 // buffer.fill(string[, offset[, end]][, encoding])
6091 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6092 // Handle string cases:
6093 if (typeof val === 'string') {
6094 if (typeof start === 'string') {
6098 } else if (typeof end === 'string') {
6102 if (val.length ===
1) {
6103 var code = val.charCodeAt(
0)
6108 if (encoding !== undefined && typeof encoding !== 'string') {
6109 throw new TypeError('encoding must be a string')
6111 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6112 throw new TypeError('Unknown encoding: ' + encoding)
6114 } else if (typeof val === 'number') {
6118 // Invalid ranges are not set to a default, so can range check early.
6119 if (start <
0 || this.length < start || this.length < end) {
6120 throw new RangeError('Out of range index')
6128 end = end === undefined ? this.length : end
>>> 0
6133 if (typeof val === 'number') {
6134 for (i = start; i < end; ++i) {
6138 var bytes = Buffer.isBuffer(val)
6140 : new Buffer(val, encoding)
6141 var len = bytes.length
6142 for (i =
0; i < end - start; ++i) {
6143 this[i + start] = bytes[i % len]
6153 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6155 function base64clean (str) {
6156 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6157 str = str.trim().replace(INVALID_BASE64_RE, '')
6158 // Node converts strings with length <
2 to ''
6159 if (str.length <
2) return ''
6160 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6161 while (str.length %
4 !==
0) {
6167 function toHex (n) {
6168 if (n <
16) return '
0' + n.toString(
16)
6169 return n.toString(
16)
6172 function utf8ToBytes (string, units) {
6173 units = units || Infinity
6175 var length = string.length
6176 var leadSurrogate = null
6179 for (var i =
0; i < length; ++i) {
6180 codePoint = string.charCodeAt(i)
6182 // is surrogate component
6183 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6184 // last char was a lead
6185 if (!leadSurrogate) {
6187 if (codePoint
> 0xDBFF) {
6189 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6191 } else if (i +
1 === length) {
6193 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6198 leadSurrogate = codePoint
6204 if (codePoint <
0xDC00) {
6205 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6206 leadSurrogate = codePoint
6210 // valid surrogate pair
6211 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6212 } else if (leadSurrogate) {
6213 // valid bmp char, but last char was a lead
6214 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6217 leadSurrogate = null
6220 if (codePoint <
0x80) {
6221 if ((units -=
1) <
0) break
6222 bytes.push(codePoint)
6223 } else if (codePoint <
0x800) {
6224 if ((units -=
2) <
0) break
6226 codePoint
>> 0x6 |
0xC0,
6227 codePoint &
0x3F |
0x80
6229 } else if (codePoint <
0x10000) {
6230 if ((units -=
3) <
0) break
6232 codePoint
>> 0xC |
0xE0,
6233 codePoint
>> 0x6 &
0x3F |
0x80,
6234 codePoint &
0x3F |
0x80
6236 } else if (codePoint <
0x110000) {
6237 if ((units -=
4) <
0) break
6239 codePoint
>> 0x12 |
0xF0,
6240 codePoint
>> 0xC &
0x3F |
0x80,
6241 codePoint
>> 0x6 &
0x3F |
0x80,
6242 codePoint &
0x3F |
0x80
6245 throw new Error('Invalid code point')
6252 function asciiToBytes (str) {
6254 for (var i =
0; i < str.length; ++i) {
6255 // Node's code seems to be doing this and not &
0x7F..
6256 byteArray.push(str.charCodeAt(i) &
0xFF)
6261 function utf16leToBytes (str, units) {
6264 for (var i =
0; i < str.length; ++i) {
6265 if ((units -=
2) <
0) break
6267 c = str.charCodeAt(i)
6277 function base64ToBytes (str) {
6278 return base64.toByteArray(base64clean(str))
6281 function blitBuffer (src, dst, offset, length) {
6282 for (var i =
0; i < length; ++i) {
6283 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6284 dst[i + offset] = src[i]
6289 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6290 function isArrayBufferView (obj) {
6291 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6294 function numberIsNaN (obj) {
6295 return obj !== obj // eslint-disable-line no-self-compare
6298 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6299 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6301 var eLen = nBytes *
8 - mLen -
1
6302 var eMax = (
1 << eLen) -
1
6303 var eBias = eMax
>> 1
6305 var i = isLE ? (nBytes -
1) :
0
6306 var d = isLE ? -
1 :
1
6307 var s = buffer[offset + i]
6311 e = s & ((
1 << (-nBits)) -
1)
6314 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6316 m = e & ((
1 << (-nBits)) -
1)
6319 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6323 } else if (e === eMax) {
6324 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6326 m = m + Math.pow(
2, mLen)
6329 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6332 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6334 var eLen = nBytes *
8 - mLen -
1
6335 var eMax = (
1 << eLen) -
1
6336 var eBias = eMax
>> 1
6337 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6338 var i = isLE ?
0 : (nBytes -
1)
6339 var d = isLE ?
1 : -
1
6340 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6342 value = Math.abs(value)
6344 if (isNaN(value) || value === Infinity) {
6345 m = isNaN(value) ?
1 :
0
6348 e = Math.floor(Math.log(value) / Math.LN2)
6349 if (value * (c = Math.pow(
2, -e)) <
1) {
6353 if (e + eBias
>=
1) {
6356 value += rt * Math.pow(
2,
1 - eBias)
6358 if (value * c
>=
2) {
6363 if (e + eBias
>= eMax) {
6366 } else if (e + eBias
>=
1) {
6367 m = (value * c -
1) * Math.pow(
2, mLen)
6370 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6375 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6379 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6381 buffer[offset + i - d] |= s *
128
6384 },{}],
4:[function(require,module,exports){
6385 window.basex = require('base-x')
6386 },{
"base-x":
5}],
5:[function(require,module,exports){
6388 // Forked from https://github.com/cryptocoinjs/bs58
6389 // Originally written by Mike Hearn for BitcoinJ
6390 // Copyright (c)
2011 Google Inc
6391 // Ported to JavaScript by Stefan Thomas
6392 // Merged Buffer refactorings from base58-native by Stephen Pair
6393 // Copyright (c)
2013 BitPay Inc
6395 var Buffer = require('safe-buffer').Buffer
6397 module.exports = function base (ALPHABET) {
6398 var ALPHABET_MAP = {}
6399 var BASE = ALPHABET.length
6400 var LEADER = ALPHABET.charAt(
0)
6402 // pre-compute lookup table
6403 for (var z =
0; z < ALPHABET.length; z++) {
6404 var x = ALPHABET.charAt(z)
6406 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6410 function encode (source) {
6411 if (source.length ===
0) return ''
6414 for (var i =
0; i < source.length; ++i) {
6415 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6416 carry += digits[j] <<
8
6417 digits[j] = carry % BASE
6418 carry = (carry / BASE) |
0
6422 digits.push(carry % BASE)
6423 carry = (carry / BASE) |
0
6429 // deal with leading zeros
6430 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6431 // convert digits to a string
6432 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6437 function decodeUnsafe (string) {
6438 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6441 for (var i =
0; i < string.length; i++) {
6442 var value = ALPHABET_MAP[string[i]]
6443 if (value === undefined) return
6445 for (var j =
0, carry = value; j < bytes.length; ++j) {
6446 carry += bytes[j] * BASE
6447 bytes[j] = carry &
0xff
6452 bytes.push(carry &
0xff)
6457 // deal with leading zeros
6458 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6462 return Buffer.from(bytes.reverse())
6465 function decode (string) {
6466 var buffer = decodeUnsafe(string)
6467 if (buffer) return buffer
6469 throw new Error('Non-base' + BASE + ' character')
6474 decodeUnsafe: decodeUnsafe,
6479 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6480 module.exports = require('buffer')
6482 },{"buffer":
2}]},{},[
4])(
4)
6484 <script>(function (root) {
6487 /***** unorm.js *****/
6490 * UnicodeNormalizer
1.0.0
6491 * Copyright (c)
2008 Matsuza
6492 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6493 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6497 var DEFAULT_FEATURE = [null,
0, {}];
6498 var CACHE_THRESHOLD =
10;
6499 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6500 var NCount = VCount * TCount; //
588
6501 var SCount = LCount * NCount; //
11172
6503 var UChar = function(cp, feature){
6504 this.codepoint = cp;
6505 this.feature = feature;
6510 var cacheCounter = [];
6511 for (var i =
0; i <=
0xFF; ++i){
6512 cacheCounter[i] =
0;
6515 function fromCache(next, cp, needFeature){
6516 var ret = cache[cp];
6518 ret = next(cp, needFeature);
6519 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6526 function fromData(next, cp, needFeature){
6527 var hash = cp &
0xFF00;
6528 var dunit = UChar.udata[hash] || {};
6530 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6532 function fromCpOnly(next, cp, needFeature){
6533 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6535 function fromRuleBasedJamo(next, cp, needFeature){
6537 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6538 return next(cp, needFeature);
6540 if(LBase <= cp && cp < LBase + LCount){
6542 var base = (cp - LBase) * VCount;
6543 for (j =
0; j < VCount; ++j){
6544 c[VBase + j] = SBase + TCount * (j + base);
6546 return new UChar(cp, [,,c]);
6549 var SIndex = cp - SBase;
6550 var TIndex = SIndex % TCount;
6553 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6555 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6557 for (j =
1; j < TCount; ++j){
6558 feature[
2][TBase + j] = cp + j;
6561 return new UChar(cp, feature);
6563 function fromCpFilter(next, cp, needFeature){
6564 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6567 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6569 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6570 return function (cp, needFeature) {
6571 return strategy(next, cp, needFeature);
6575 UChar.isHighSurrogate = function(cp){
6576 return cp
>=
0xD800 && cp <=
0xDBFF;
6578 UChar.isLowSurrogate = function(cp){
6579 return cp
>=
0xDC00 && cp <=
0xDFFF;
6582 UChar.prototype.prepFeature = function(){
6584 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6588 UChar.prototype.toString = function(){
6589 if(this.codepoint <
0x10000){
6590 return String.fromCharCode(this.codepoint);
6592 var x = this.codepoint -
0x10000;
6593 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6597 UChar.prototype.getDecomp = function(){
6599 return this.feature[
0] || null;
6602 UChar.prototype.isCompatibility = function(){
6604 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6606 UChar.prototype.isExclude = function(){
6608 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6610 UChar.prototype.getCanonicalClass = function(){
6612 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6614 UChar.prototype.getComposite = function(following){
6616 if(!this.feature[
2]){
6619 var cp = this.feature[
2][following.codepoint];
6620 return cp ? UChar.fromCharCode(cp) : null;
6623 var UCharIterator = function(str){
6627 UCharIterator.prototype.next = function(){
6628 if(!!this.str && this.cursor < this.str.length){
6629 var cp = this.str.charCodeAt(this.cursor++);
6631 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6632 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6635 return UChar.fromCharCode(cp);
6642 var RecursDecompIterator = function(it, cano){
6644 this.canonical = cano;
6648 RecursDecompIterator.prototype.next = function(){
6649 function recursiveDecomp(cano, uchar){
6650 var decomp = uchar.getDecomp();
6651 if(!!decomp && !(cano && uchar.isCompatibility())){
6653 for(var i =
0; i < decomp.length; ++i){
6654 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6655 ret = ret.concat(a);
6662 if(this.resBuf.length ===
0){
6663 var uchar = this.it.next();
6667 this.resBuf = recursiveDecomp(this.canonical, uchar);
6669 return this.resBuf.shift();
6672 var DecompIterator = function(it){
6677 DecompIterator.prototype.next = function(){
6679 if(this.resBuf.length ===
0){
6681 var uchar = this.it.next();
6685 cc = uchar.getCanonicalClass();
6686 var inspt = this.resBuf.length;
6688 for(; inspt
> 0; --inspt){
6689 var uchar2 = this.resBuf[inspt -
1];
6690 var cc2 = uchar2.getCanonicalClass();
6696 this.resBuf.splice(inspt,
0, uchar);
6699 return this.resBuf.shift();
6702 var CompIterator = function(it){
6706 this.lastClass = null;
6709 CompIterator.prototype.next = function(){
6710 while(this.resBuf.length ===
0){
6711 var uchar = this.it.next();
6713 this.resBuf = this.procBuf;
6717 if(this.procBuf.length ===
0){
6718 this.lastClass = uchar.getCanonicalClass();
6719 this.procBuf.push(uchar);
6721 var starter = this.procBuf[
0];
6722 var composite = starter.getComposite(uchar);
6723 var cc = uchar.getCanonicalClass();
6724 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6725 this.procBuf[
0] = composite;
6728 this.resBuf = this.procBuf;
6731 this.lastClass = cc;
6732 this.procBuf.push(uchar);
6736 return this.resBuf.shift();
6739 var createIterator = function(mode, str){
6742 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6744 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6746 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6748 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6750 throw mode +
" is invalid";
6752 var normalize = function(mode, str){
6753 var it = createIterator(mode, str);
6756 while(!!(uchar = it.next())){
6757 ret += uchar.toString();
6764 return normalize(
"NFD", str);
6768 return normalize(
"NFKD", str);
6772 return normalize(
"NFC", str);
6776 return normalize(
"NFKC", str);
6781 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]]},
6782 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]},
6783 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]},
6784 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]},
6785 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]]},
6786 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]},
6787 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]},
6788 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]},
6789 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]},
6790 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]},
6791 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]},
6792 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]},
6793 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]},
6794 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]]},
6795 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]},
6796 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]},
6797 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]},
6798 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]},
6799 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6800 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]},
6801 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6802 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6803 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6804 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6806 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6807 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]},
6808 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]},
6809 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]},
6810 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]},
6811 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]]},
6812 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}]},
6813 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]},
6814 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}]},
6815 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]]},
6816 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6817 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]},
6818 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]},
6819 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6820 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]},
6821 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6822 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]},
6823 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]},
6824 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]},
6825 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]},
6826 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]},
6827 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6828 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6829 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]},
6830 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6831 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]},
6832 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6833 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6834 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6835 48128:{
113822:[,
1]},
6836 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]},
6837 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6838 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]},
6839 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]},
6840 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]},
6841 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]},
6842 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6843 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]},
6844 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]},
6845 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]},
6846 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]]},
6847 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]]},
6848 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]]},
6849 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]},
6850 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]},
6851 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]},
6852 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]},
6853 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]}
6857 /***** Module to export */
6865 /*globals module:true,define:true*/
6868 if (typeof module ===
"object") {
6869 module.exports = unorm;
6872 } else if (typeof define ===
"function" && define.amd) {
6873 define(
"unorm", function () {
6882 /***** Export as shim for String::normalize method *****/
6884 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
6886 21.1.3.12 String.prototype.normalize(
form=
"NFC")
6887 When the normalize method is called with one argument form, the following steps are taken:
6889 1. Let O be CheckObjectCoercible(this value).
6890 2. Let S be ToString(O).
6891 3. ReturnIfAbrupt(S).
6892 4. If form is not provided or undefined let form be
"NFC".
6893 5. Let f be ToString(form).
6894 6. ReturnIfAbrupt(f).
6895 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
6896 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.
6899 The length property of the normalize method is
0.
6901 *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.
6903 unorm.shimApplied = false;
6905 if (!String.prototype.normalize) {
6906 String.prototype.normalize = function(form) {
6907 var str =
"" + this;
6908 form = form === undefined ?
"NFC" : form;
6910 if (form ===
"NFC") {
6911 return unorm.nfc(str);
6912 } else if (form ===
"NFD") {
6913 return unorm.nfd(str);
6914 } else if (form ===
"NFKC") {
6915 return unorm.nfkc(str);
6916 } else if (form ===
"NFKD") {
6917 return unorm.nfkd(str);
6919 throw new RangeError(
"Invalid normalization form: " + form);
6923 unorm.shimApplied = true;
6927 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
6928 !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)
6929 },_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))
6930 },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});
6933 * Bootstrap v3.2.0 (http://getbootstrap.com)
6934 * Copyright 2011-2014 Twitter, Inc.
6935 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6937 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>
6938 <script>(function() {
6942 * Extend an Object with another Object's properties.
6944 * The source objects are specified as additional arguments.
6946 * @param dst Object the object to extend.
6948 * @return Object the final object.
6950 var _extend = function(dst) {
6951 var sources = Array.prototype.slice.call(arguments,
1);
6952 for (var i=
0; i
<sources.length; ++i) {
6953 var src = sources[i];
6954 for (var p in src) {
6955 if (src.hasOwnProperty(p)) dst[p] = src[p];
6963 * Defer execution of given function.
6964 * @param {Function} func
6966 var _defer = function(func) {
6967 if (typeof setImmediate === 'function') {
6968 return setImmediate(func);
6970 return setTimeout(func,
0);
6975 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
6979 * Calculate levenshtein distance of the two strings.
6981 * @param str1 String the first string.
6982 * @param str2 String the second string.
6983 * @return Integer the levenshtein distance (
0 and above).
6985 get: function(str1, str2) {
6987 if (str1 === str2) return
0;
6988 if (str1.length ===
0) return str2.length;
6989 if (str2.length ===
0) return str1.length;
6992 var prevRow = new Array(str2.length +
1),
6993 curCol, nextCol, i, j, tmp;
6995 // initialise previous row
6996 for (i=
0; i
<prevRow.length; ++i) {
7000 // calculate current row distance from previous row
7001 for (i=
0; i
<str1.length; ++i) {
7004 for (j=
0; j
<str2.length; ++j) {
7008 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7011 if (nextCol
> tmp) {
7015 tmp = prevRow[j +
1] +
1;
7016 if (nextCol
> tmp) {
7020 // copy current col value into previous (in preparation for next iteration)
7021 prevRow[j] = curCol;
7024 // copy last col value into previous (in preparation for next iteration)
7025 prevRow[j] = nextCol;
7032 * Asynchronously calculate levenshtein distance of the two strings.
7034 * @param str1 String the first string.
7035 * @param str2 String the second string.
7036 * @param cb Function callback function with signature: function(Error err, int distance)
7037 * @param [options] Object additional options.
7038 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7040 getAsync: function(str1, str2, cb, options) {
7041 options = _extend({}, {
7046 if (str1 === str2) return cb(null,
0);
7047 if (str1.length ===
0) return cb(null, str2.length);
7048 if (str2.length ===
0) return cb(null, str1.length);
7051 var prevRow = new Array(str2.length +
1),
7054 startTime, currentTime;
7056 // initialise previous row
7057 for (i=
0; i
<prevRow.length; ++i) {
7065 var __calculate = function() {
7067 startTime = new Date().valueOf();
7068 currentTime = startTime;
7070 // keep going until one second has elapsed
7071 while (currentTime - startTime <
1000) {
7072 // reached end of current row?
7073 if (str2.length <= (++j)) {
7074 // copy current into previous (in preparation for next iteration)
7075 prevRow[j] = nextCol;
7077 // if already done all chars
7078 if (str1.length <= (++i)) {
7079 return cb(null, nextCol);
7081 // else if we have more left to do
7092 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7095 if (nextCol
> tmp) {
7099 tmp = prevRow[j +
1] +
1;
7100 if (nextCol
> tmp) {
7104 // copy current into previous (in preparation for next iteration)
7105 prevRow[j] = curCol;
7108 currentTime = new Date().valueOf();
7111 // send a progress update?
7112 if (null !== options.progress) {
7114 options.progress.call(null, (i *
100.0/ str1.length));
7116 return cb('Progress callback: ' + err.toString());
7121 _defer(__calculate);
7130 if (typeof define !== "undefined" && define !== null && define.amd) {
7136 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7137 module.exports = Levenshtein;
7140 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7141 self.Levenshtein = Levenshtein;
7143 // browser main thread
7144 else if (typeof window !== "undefined" && window !== null) {
7145 window.Levenshtein = Levenshtein;
7150 <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},
7151 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;
7152 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-
7153 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]=
7154 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},
7155 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=
7156 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-
7157 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,
7158 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=
7159 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&&
7160 (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,
7161 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)-
7162 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:"+
7163 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:"+
7164 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+
7165 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),
7166 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>
7167 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],
7168 [
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,
7169 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,
7170 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,
7171 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,
7172 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,
7173 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*
7174 (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,
7175 correctLevel:
2,background:"#ffffff",foreground:"#
000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("
2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=
0;f
<a.getModuleCount();f++)for(var i=
0;i
<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+
1)*b)-Math.floor(i*b),
7176 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",
7177 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7179 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.bitcoin = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
7180 // (public) Constructor
7181 function BigInteger(a, b, c) {
7182 if (!(this instanceof BigInteger))
7183 return new BigInteger(a, b, c)
7186 if (
"number" == typeof a) this.fromNumber(a, b, c)
7187 else if (b == null &&
"string" != typeof a) this.fromString(a,
256)
7188 else this.fromString(a, b)
7192 var proto = BigInteger.prototype
7194 // duck-typed isBigInteger
7195 proto.__bigi = require('../package.json').version
7196 BigInteger.isBigInteger = function (obj, check_ver) {
7197 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
7203 // am: Compute w_j += (x*this_i), propagate carries,
7204 // c is initial carry, returns final carry.
7205 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
7206 // We need to select the fastest one that works in this environment.
7208 // am1: use a single mult and divide to get the high bits,
7209 // max digit bits should be
26 because
7210 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
7211 function am1(i, x, w, j, c, n) {
7213 var v = x * this[i++] + w[j] + c
7214 c = Math.floor(v /
0x4000000)
7215 w[j++] = v &
0x3ffffff
7219 // am2 avoids a big mult-and-extract completely.
7220 // Max digit bits should be <=
30 because we do bitwise ops
7221 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
7222 function am2(i, x, w, j, c, n) {
7223 var xl = x &
0x7fff,
7226 var l = this[i] &
0x7fff
7227 var h = this[i++]
>> 15
7228 var m = xh * l + h * xl
7229 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
7230 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
7231 w[j++] = l &
0x3fffffff
7235 // Alternately, set max digit bits to
28 since some
7236 // browsers slow down when dealing with
32-bit numbers.
7237 function am3(i, x, w, j, c, n) {
7238 var xl = x &
0x3fff,
7241 var l = this[i] &
0x3fff
7242 var h = this[i++]
>> 14
7243 var m = xh * l + h * xl
7244 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
7245 c = (l
>> 28) + (m
>> 14) + xh * h
7246 w[j++] = l &
0xfffffff
7252 BigInteger.prototype.am = am1
7255 BigInteger.prototype.DB = dbits
7256 BigInteger.prototype.DM = ((
1 << dbits) -
1)
7257 var DV = BigInteger.prototype.DV = (
1 << dbits)
7260 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
7261 BigInteger.prototype.F1 = BI_FP - dbits
7262 BigInteger.prototype.F2 =
2 * dbits - BI_FP
7264 // Digit conversions
7265 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
7266 var BI_RC = new Array()
7268 rr =
"0".charCodeAt(
0)
7269 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
7270 rr =
"a".charCodeAt(
0)
7271 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
7272 rr =
"A".charCodeAt(
0)
7273 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
7275 function int2char(n) {
7276 return BI_RM.charAt(n)
7279 function intAt(s, i) {
7280 var c = BI_RC[s.charCodeAt(i)]
7281 return (c == null) ? -
1 : c
7284 // (protected) copy this to r
7285 function bnpCopyTo(r) {
7286 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
7291 // (protected) set from integer value x, -DV <= x < DV
7292 function bnpFromInt(x) {
7294 this.s = (x <
0) ? -
1 :
0
7295 if (x
> 0) this[
0] = x
7296 else if (x < -
1) this[
0] = x + DV
7300 // return bigint initialized to value
7302 var r = new BigInteger()
7307 // (protected) set from string and radix
7308 function bnpFromString(s, b) {
7313 else if (b ==
8) k =
3
7314 else if (b ==
256) k =
8; // byte array
7315 else if (b ==
2) k =
1
7316 else if (b ==
32) k =
5
7317 else if (b ==
4) k =
2
7319 self.fromRadix(s, b)
7328 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
7330 if (s.charAt(i) == "-") mi = true
7336 else if (sh + k
> self.DB) {
7337 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
7338 self[self.t++] = (x
>> (self.DB - sh))
7340 self[self.t -
1] |= x << sh
7342 if (sh
>= self.DB) sh -= self.DB
7344 if (k ==
8 && (s[
0] &
0x80) !=
0) {
7346 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
7349 if (mi) BigInteger.ZERO.subTo(self, self)
7352 // (protected) clamp off excess high words
7353 function bnpClamp() {
7354 var c = this.s & this.DM
7355 while (this.t
> 0 && this[this.t -
1] == c)--this.t
7358 // (public) return string representation in given radix
7359 function bnToString(b) {
7361 if (self.s <
0) return
"-" + self.negate()
7365 else if (b ==
8) k =
3
7366 else if (b ==
2) k =
1
7367 else if (b ==
32) k =
5
7368 else if (b ==
4) k =
2
7369 else return self.toRadix(b)
7370 var km = (
1 << k) -
1,
7374 var p = self.DB - (i * self.DB) % k
7376 if (p < self.DB && (d = self[i]
>> p)
> 0) {
7382 d = (self[i] & ((
1 << p) -
1)) << (k - p)
7383 d |= self[--i]
>> (p += self.DB - k)
7385 d = (self[i]
>> (p -= k)) & km
7392 if (m) r += int2char(d)
7399 function bnNegate() {
7400 var r = new BigInteger()
7401 BigInteger.ZERO.subTo(this, r)
7407 return (this.s <
0) ? this.negate() : this
7410 // (public) return + if this
> a, - if this < a,
0 if equal
7411 function bnCompareTo(a) {
7412 var r = this.s - a.s
7413 if (r !=
0) return r
7416 if (r !=
0) return (this.s <
0) ? -r : r
7418 if ((r = this[i] - a[i]) !=
0) return r
7422 // returns bit length of the integer x
7426 if ((t = x
>>> 16) !=
0) {
7430 if ((t = x
>> 8) !=
0) {
7434 if ((t = x
>> 4) !=
0) {
7438 if ((t = x
>> 2) !=
0) {
7442 if ((t = x
>> 1) !=
0) {
7449 // (public) return the number of bits in
"this"
7450 function bnBitLength() {
7451 if (this.t <=
0) return
0
7452 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
7455 // (public) return the number of bytes in
"this"
7456 function bnByteLength() {
7457 return this.bitLength()
>> 3
7460 // (protected) r = this << n*DB
7461 function bnpDLShiftTo(n, r) {
7463 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
7464 for (i = n -
1; i
>=
0; --i) r[i] =
0
7469 // (protected) r = this
>> n*DB
7470 function bnpDRShiftTo(n, r) {
7471 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
7472 r.t = Math.max(this.t - n,
0)
7476 // (protected) r = this << n
7477 function bnpLShiftTo(n, r) {
7479 var bs = n % self.DB
7480 var cbs = self.DB - bs
7481 var bm = (
1 << cbs) -
1
7482 var ds = Math.floor(n / self.DB),
7483 c = (self.s << bs) & self.DM,
7485 for (i = self.t -
1; i
>=
0; --i) {
7486 r[i + ds +
1] = (self[i]
>> cbs) | c
7487 c = (self[i] & bm) << bs
7489 for (i = ds -
1; i
>=
0; --i) r[i] =
0
7491 r.t = self.t + ds +
1
7496 // (protected) r = this
>> n
7497 function bnpRShiftTo(n, r) {
7500 var ds = Math.floor(n / self.DB)
7505 var bs = n % self.DB
7506 var cbs = self.DB - bs
7507 var bm = (
1 << bs) -
1
7508 r[
0] = self[ds]
>> bs
7509 for (var i = ds +
1; i < self.t; ++i) {
7510 r[i - ds -
1] |= (self[i] & bm) << cbs
7511 r[i - ds] = self[i]
>> bs
7513 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
7518 // (protected) r = this - a
7519 function bnpSubTo(a, r) {
7523 m = Math.min(a.t, self.t)
7526 r[i++] = c & self.DM
7531 while (i < self.t) {
7533 r[i++] = c & self.DM
7541 r[i++] = c & self.DM
7546 r.s = (c <
0) ? -
1 :
0
7547 if (c < -
1) r[i++] = self.DV + c
7548 else if (c
> 0) r[i++] = c
7553 // (protected) r = this * a, r != this,a (HAC
14.12)
7554 //
"this" should be the larger one if appropriate.
7555 function bnpMultiplyTo(a, r) {
7560 while (--i
>=
0) r[i] =
0
7561 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
7564 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
7567 // (protected) r = this^
2, r != this (HAC
14.16)
7568 function bnpSquareTo(r) {
7570 var i = r.t =
2 * x.t
7571 while (--i
>=
0) r[i] =
0
7572 for (i =
0; i < x.t -
1; ++i) {
7573 var c = x.am(i, x[i], r,
2 * i,
0,
1)
7574 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
7579 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
7584 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
7585 // r != q, this != m. q or r may be null.
7586 function bnpDivRemTo(m, q, r) {
7589 if (pm.t <=
0) return
7592 if (q != null) q.fromInt(
0)
7593 if (r != null) self.copyTo(r)
7596 if (r == null) r = new BigInteger()
7597 var y = new BigInteger(),
7600 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
7611 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
7612 var d1 = self.FV / yt,
7613 d2 = (
1 << self.F1) / yt,
7617 t = (q == null) ? new BigInteger() : q
7619 if (r.compareTo(t)
>=
0) {
7623 BigInteger.ONE.dlShiftTo(ys, t)
7624 t.subTo(y, y); // "negative" y so we can replace sub with am later
7625 while (y.t < ys) y[y.t++] =
0
7627 // Estimate quotient digit
7628 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
7629 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
7632 while (r[i] < --qd) r.subTo(t, r)
7637 if (ts != ms) BigInteger.ZERO.subTo(q, q)
7641 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
7642 if (ts <
0) BigInteger.ZERO.subTo(r, r)
7645 // (public) this mod a
7647 var r = new BigInteger()
7649 .divRemTo(a, null, r)
7650 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
7654 // Modular reduction using
"classic" algorithm
7655 function Classic(m) {
7659 function cConvert(x) {
7660 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
7664 function cRevert(x) {
7668 function cReduce(x) {
7669 x.divRemTo(this.m, null, x)
7672 function cMulTo(x, y, r) {
7677 function cSqrTo(x, r) {
7682 Classic.prototype.convert = cConvert
7683 Classic.prototype.revert = cRevert
7684 Classic.prototype.reduce = cReduce
7685 Classic.prototype.mulTo = cMulTo
7686 Classic.prototype.sqrTo = cSqrTo
7688 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
7692 // xy(
2-xy) = (
1+km)(
1-km)
7693 // x[y(
2-xy)] =
1-k^
2m^
2
7694 // x[y(
2-xy)] ==
1 (mod m^
2)
7695 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
7696 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
7697 // JS multiply "overflows" differently from C/C++, so care is needed here.
7698 function bnpInvDigit() {
7699 if (this.t <
1) return
0
7701 if ((x &
1) ==
0) return
0
7702 var y = x &
3; // y ==
1/x mod
2^
2
7703 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
7704 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
7705 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
7706 // last step - calculate inverse mod DV directly
7707 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
7708 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
7709 // we really want the negative inverse, and -DV < y < DV
7710 return (y
> 0) ? this.DV - y : -y
7713 // Montgomery reduction
7714 function Montgomery(m) {
7716 this.mp = m.invDigit()
7717 this.mpl = this.mp &
0x7fff
7718 this.mph = this.mp
>> 15
7719 this.um = (
1 << (m.DB -
15)) -
1
7724 function montConvert(x) {
7725 var r = new BigInteger()
7727 .dlShiftTo(this.m.t, r)
7728 r.divRemTo(this.m, null, r)
7729 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
7734 function montRevert(x) {
7735 var r = new BigInteger()
7741 // x = x/R mod m (HAC
14.32)
7742 function montReduce(x) {
7743 while (x.t <= this.mt2) // pad x so am has enough room later
7745 for (var i =
0; i < this.m.t; ++i) {
7746 // faster way of calculating u0 = x[i]*mp mod DV
7747 var j = x[i] &
0x7fff
7748 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
7749 // use am to combine the multiply-shift-add into one call
7751 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
7753 while (x[j]
>= x.DV) {
7759 x.drShiftTo(this.m.t, x)
7760 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
7763 // r = "x^
2/R mod m"; x != r
7764 function montSqrTo(x, r) {
7769 // r = "xy/R mod m"; x,y != r
7770 function montMulTo(x, y, r) {
7775 Montgomery.prototype.convert = montConvert
7776 Montgomery.prototype.revert = montRevert
7777 Montgomery.prototype.reduce = montReduce
7778 Montgomery.prototype.mulTo = montMulTo
7779 Montgomery.prototype.sqrTo = montSqrTo
7781 // (protected) true iff this is even
7782 function bnpIsEven() {
7783 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
7786 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
7787 function bnpExp(e, z) {
7788 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
7789 var r = new BigInteger(),
7790 r2 = new BigInteger(),
7791 g = z.convert(this),
7796 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
7806 // (public) this^e % m,
0 <= e <
2^
32
7807 function bnModPowInt(e, m) {
7809 if (e <
256 || m.isEven()) z = new Classic(m)
7810 else z = new Montgomery(m)
7811 return this.exp(e, z)
7815 proto.copyTo = bnpCopyTo
7816 proto.fromInt = bnpFromInt
7817 proto.fromString = bnpFromString
7818 proto.clamp = bnpClamp
7819 proto.dlShiftTo = bnpDLShiftTo
7820 proto.drShiftTo = bnpDRShiftTo
7821 proto.lShiftTo = bnpLShiftTo
7822 proto.rShiftTo = bnpRShiftTo
7823 proto.subTo = bnpSubTo
7824 proto.multiplyTo = bnpMultiplyTo
7825 proto.squareTo = bnpSquareTo
7826 proto.divRemTo = bnpDivRemTo
7827 proto.invDigit = bnpInvDigit
7828 proto.isEven = bnpIsEven
7832 proto.toString = bnToString
7833 proto.negate = bnNegate
7835 proto.compareTo = bnCompareTo
7836 proto.bitLength = bnBitLength
7837 proto.byteLength = bnByteLength
7839 proto.modPowInt = bnModPowInt
7842 function bnClone() {
7843 var r = new BigInteger()
7848 // (public) return value as integer
7849 function bnIntValue() {
7851 if (this.t ==
1) return this[
0] - this.DV
7852 else if (this.t ==
0) return -
1
7853 } else if (this.t ==
1) return this[
0]
7854 else if (this.t ==
0) return
0
7855 // assumes
16 < DB <
32
7856 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
7859 // (public) return value as byte
7860 function bnByteValue() {
7861 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
7864 // (public) return value as short (assumes DB
>=
16)
7865 function bnShortValue() {
7866 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
7869 // (protected) return x s.t. r^x < DV
7870 function bnpChunkSize(r) {
7871 return Math.floor(Math.LN2 * this.DB / Math.log(r))
7874 // (public)
0 if this ==
0,
1 if this
> 0
7875 function bnSigNum() {
7876 if (this.s <
0) return -
1
7877 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
7881 // (protected) convert to radix string
7882 function bnpToRadix(b) {
7883 if (b == null) b =
10
7884 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
7885 var cs = this.chunkSize(b)
7886 var a = Math.pow(b, cs)
7888 y = new BigInteger(),
7889 z = new BigInteger(),
7891 this.divRemTo(d, y, z)
7892 while (y.signum()
> 0) {
7893 r = (a + z.intValue())
7902 // (protected) convert from radix string
7903 function bnpFromRadix(s, b) {
7906 if (b == null) b =
10
7907 var cs = self.chunkSize(b)
7908 var d = Math.pow(b, cs),
7912 for (var i =
0; i < s.length; ++i) {
7915 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
7921 self.dAddOffset(w,
0)
7927 self.dMultiply(Math.pow(b, j))
7928 self.dAddOffset(w,
0)
7930 if (mi) BigInteger.ZERO.subTo(self, self)
7933 // (protected) alternate constructor
7934 function bnpFromNumber(a, b, c) {
7936 if (
"number" == typeof b) {
7937 // new BigInteger(int,int,RNG)
7938 if (a <
2) self.fromInt(
1)
7940 self.fromNumber(a, c)
7941 if (!self.testBit(a -
1)) // force MSB set
7942 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
7943 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
7944 while (!self.isProbablePrime(b)) {
7945 self.dAddOffset(
2,
0)
7946 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
7950 // new BigInteger(int,RNG)
7951 var x = new Array(),
7953 x.length = (a
>> 3) +
1
7955 if (t
> 0) x[
0] &= ((
1 << t) -
1)
7957 self.fromString(x,
256)
7961 // (public) convert to bigendian byte array
7962 function bnToByteArray() {
7967 var p = self.DB - (i * self.DB) %
8,
7970 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
7971 r[k++] = d | (self.s << (self.DB - p))
7974 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
7975 d |= self[--i]
>> (p += self.DB -
8)
7977 d = (self[i]
>> (p -=
8)) &
0xff
7983 if ((d &
0x80) !=
0) d |= -
256
7984 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
7985 if (k
> 0 || d != self.s) r[k++] = d
7991 function bnEquals(a) {
7992 return (this.compareTo(a) ==
0)
7996 return (this.compareTo(a) <
0) ? this : a
8000 return (this.compareTo(a)
> 0) ? this : a
8003 // (protected) r = this op a (bitwise)
8004 function bnpBitwiseTo(a, op, r) {
8006 var i, f, m = Math.min(a.t, self.t)
8007 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
8010 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
8013 f = self.s & self.DM
8014 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
8017 r.s = op(self.s, a.s)
8021 // (public) this & a
8022 function op_and(x, y) {
8027 var r = new BigInteger()
8028 this.bitwiseTo(a, op_and, r)
8032 // (public) this | a
8033 function op_or(x, y) {
8038 var r = new BigInteger()
8039 this.bitwiseTo(a, op_or, r)
8043 // (public) this ^ a
8044 function op_xor(x, y) {
8049 var r = new BigInteger()
8050 this.bitwiseTo(a, op_xor, r)
8054 // (public) this & ~a
8055 function op_andnot(x, y) {
8059 function bnAndNot(a) {
8060 var r = new BigInteger()
8061 this.bitwiseTo(a, op_andnot, r)
8067 var r = new BigInteger()
8068 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
8074 // (public) this << n
8075 function bnShiftLeft(n) {
8076 var r = new BigInteger()
8077 if (n <
0) this.rShiftTo(-n, r)
8078 else this.lShiftTo(n, r)
8082 // (public) this
>> n
8083 function bnShiftRight(n) {
8084 var r = new BigInteger()
8085 if (n <
0) this.lShiftTo(-n, r)
8086 else this.rShiftTo(n, r)
8090 // return index of lowest
1-bit in x, x <
2^
31
8092 if (x ==
0) return -
1
8094 if ((x &
0xffff) ==
0) {
8098 if ((x &
0xff) ==
0) {
8102 if ((x &
0xf) ==
0) {
8110 if ((x &
1) ==
0)++r
8114 // (public) returns index of lowest
1-bit (or -
1 if none)
8115 function bnGetLowestSetBit() {
8116 for (var i =
0; i < this.t; ++i)
8117 if (this[i] !=
0) return i * this.DB + lbit(this[i])
8118 if (this.s <
0) return this.t * this.DB
8122 // return number of
1 bits in x
8132 // (public) return number of set bits
8133 function bnBitCount() {
8135 x = this.s & this.DM
8136 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
8140 // (public) true iff nth bit is set
8141 function bnTestBit(n) {
8142 var j = Math.floor(n / this.DB)
8143 if (j
>= this.t) return (this.s !=
0)
8144 return ((this[j] & (
1 << (n % this.DB))) !=
0)
8147 // (protected) this op (
1<
<n)
8148 function bnpChangeBit(n, op) {
8149 var r = BigInteger.ONE.shiftLeft(n)
8150 this.bitwiseTo(r, op, r)
8154 // (public) this | (
1<
<n)
8155 function bnSetBit(n) {
8156 return this.changeBit(n, op_or)
8159 // (public) this & ~(
1<
<n)
8160 function bnClearBit(n) {
8161 return this.changeBit(n, op_andnot)
8164 // (public) this ^ (
1<
<n)
8165 function bnFlipBit(n) {
8166 return this.changeBit(n, op_xor)
8169 // (protected) r = this + a
8170 function bnpAddTo(a, r) {
8175 m = Math.min(a.t, self.t)
8178 r[i++] = c & self.DM
8183 while (i < self.t) {
8185 r[i++] = c & self.DM
8193 r[i++] = c & self.DM
8198 r.s = (c <
0) ? -
1 :
0
8199 if (c
> 0) r[i++] = c
8200 else if (c < -
1) r[i++] = self.DV + c
8205 // (public) this + a
8207 var r = new BigInteger()
8212 // (public) this - a
8213 function bnSubtract(a) {
8214 var r = new BigInteger()
8219 // (public) this * a
8220 function bnMultiply(a) {
8221 var r = new BigInteger()
8222 this.multiplyTo(a, r)
8227 function bnSquare() {
8228 var r = new BigInteger()
8233 // (public) this / a
8234 function bnDivide(a) {
8235 var r = new BigInteger()
8236 this.divRemTo(a, r, null)
8240 // (public) this % a
8241 function bnRemainder(a) {
8242 var r = new BigInteger()
8243 this.divRemTo(a, null, r)
8247 // (public) [this/a,this%a]
8248 function bnDivideAndRemainder(a) {
8249 var q = new BigInteger(),
8250 r = new BigInteger()
8251 this.divRemTo(a, q, r)
8252 return new Array(q, r)
8255 // (protected) this *= n, this
>=
0,
1 < n < DV
8256 function bnpDMultiply(n) {
8257 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
8262 // (protected) this += n << w words, this
>=
0
8263 function bnpDAddOffset(n, w) {
8265 while (this.t <= w) this[this.t++] =
0
8267 while (this[w]
>= this.DV) {
8269 if (++w
>= this.t) this[this.t++] =
0
8275 function NullExp() {}
8281 function nMulTo(x, y, r) {
8285 function nSqrTo(x, r) {
8289 NullExp.prototype.convert = nNop
8290 NullExp.prototype.revert = nNop
8291 NullExp.prototype.mulTo = nMulTo
8292 NullExp.prototype.sqrTo = nSqrTo
8296 return this.exp(e, new NullExp())
8299 // (protected) r = lower n words of "this * a", a.t <= n
8300 // "this" should be the larger one if appropriate.
8301 function bnpMultiplyLowerTo(a, n, r) {
8302 var i = Math.min(this.t + a.t, n)
8303 r.s =
0; // assumes a,this
>=
0
8305 while (i
> 0) r[--i] =
0
8307 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
8308 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
8312 // (protected) r =
"this * a" without lower n words, n
> 0
8313 //
"this" should be the larger one if appropriate.
8314 function bnpMultiplyUpperTo(a, n, r) {
8316 var i = r.t = this.t + a.t - n
8317 r.s =
0; // assumes a,this
>=
0
8318 while (--i
>=
0) r[i] =
0
8319 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
8320 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
8325 // Barrett modular reduction
8326 function Barrett(m) {
8328 this.r2 = new BigInteger()
8329 this.q3 = new BigInteger()
8330 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
8331 this.mu = this.r2.divide(m)
8335 function barrettConvert(x) {
8336 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
8337 else if (x.compareTo(this.m) <
0) return x
8339 var r = new BigInteger()
8346 function barrettRevert(x) {
8350 // x = x mod m (HAC
14.42)
8351 function barrettReduce(x) {
8353 x.drShiftTo(self.m.t -
1, self.r2)
8354 if (x.t
> self.m.t +
1) {
8358 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
8359 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
8360 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
8362 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
8365 // r = x^
2 mod m; x != r
8366 function barrettSqrTo(x, r) {
8371 // r = x*y mod m; x,y != r
8372 function barrettMulTo(x, y, r) {
8377 Barrett.prototype.convert = barrettConvert
8378 Barrett.prototype.revert = barrettRevert
8379 Barrett.prototype.reduce = barrettReduce
8380 Barrett.prototype.mulTo = barrettMulTo
8381 Barrett.prototype.sqrTo = barrettSqrTo
8383 // (public) this^e % m (HAC
14.85)
8384 function bnModPow(e, m) {
8385 var i = e.bitLength(),
8388 if (i <=
0) return r
8389 else if (i <
18) k =
1
8390 else if (i <
48) k =
3
8391 else if (i <
144) k =
4
8392 else if (i <
768) k =
5
8396 else if (m.isEven())
8399 z = new Montgomery(m)
8402 var g = new Array(),
8406 g[
1] = z.convert(this)
8408 var g2 = new BigInteger()
8411 g[n] = new BigInteger()
8412 z.mulTo(g2, g[n -
2], g[n])
8419 r2 = new BigInteger(),
8423 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
8425 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
8426 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
8430 while ((w &
1) ==
0) {
8438 if (is1) { // ret ==
1, don't bother squaring or multiplying it
8447 if (n
> 0) z.sqrTo(r, r2)
8453 z.mulTo(r2, g[w], r)
8456 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
8470 // (public) gcd(this,a) (HAC
14.54)
8472 var x = (this.s <
0) ? this.negate() : this.clone()
8473 var y = (a.s <
0) ? a.negate() : a.clone()
8474 if (x.compareTo(y) <
0) {
8479 var i = x.getLowestSetBit(),
8480 g = y.getLowestSetBit()
8487 while (x.signum()
> 0) {
8488 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
8489 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
8490 if (x.compareTo(y)
>=
0) {
8498 if (g
> 0) y.lShiftTo(g, y)
8502 // (protected) this % n, n <
2^
26
8503 function bnpModInt(n) {
8504 if (n <=
0) return
0
8505 var d = this.DV % n,
8506 r = (this.s <
0) ? n -
1 :
0
8508 if (d ==
0) r = this[
0] % n
8510 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
8514 // (public)
1/this % m (HAC
14.61)
8515 function bnModInverse(m) {
8517 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
8524 while (u.signum() !=
0) {
8525 while (u.isEven()) {
8528 if (!a.isEven() || !b.isEven()) {
8533 } else if (!b.isEven()) b.subTo(m, b)
8536 while (v.isEven()) {
8539 if (!c.isEven() || !d.isEven()) {
8544 } else if (!d.isEven()) d.subTo(m, d)
8547 if (u.compareTo(v)
>=
0) {
8549 if (ac) a.subTo(c, a)
8553 if (ac) c.subTo(a, c)
8557 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
8558 if (d.compareTo(m)
>=
0) return d.subtract(m)
8559 if (d.signum() <
0) d.addTo(m, d)
8561 if (d.signum() <
0) return d.add(m)
8566 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
8567 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
8568 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
8569 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
8570 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
8571 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
8572 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
8573 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
8574 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
8575 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
8576 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
8579 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
8581 // (public) test primality with certainty
>=
1-
.5^t
8582 function bnIsProbablePrime(t) {
8583 var i, x = this.abs()
8584 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
8585 for (i =
0; i < lowprimes.length; ++i)
8586 if (x[
0] == lowprimes[i]) return true
8589 if (x.isEven()) return false
8591 while (i < lowprimes.length) {
8592 var m = lowprimes[i],
8594 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
8596 while (i < j) if (m % lowprimes[i++] ==
0) return false
8598 return x.millerRabin(t)
8601 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
8602 function bnpMillerRabin(t) {
8603 var n1 = this.subtract(BigInteger.ONE)
8604 var k = n1.getLowestSetBit()
8605 if (k <=
0) return false
8606 var r = n1.shiftRight(k)
8608 if (t
> lowprimes.length) t = lowprimes.length
8609 var a = new BigInteger(null)
8611 for (var i =
0; i < t; ++i) {
8613 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
8614 if (bases.indexOf(j) == -
1) break
8618 var y = a.modPow(r, this)
8619 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
8621 while (j++ < k && y.compareTo(n1) !=
0) {
8622 y = y.modPowInt(
2, this)
8623 if (y.compareTo(BigInteger.ONE) ==
0) return false
8625 if (y.compareTo(n1) !=
0) return false
8632 proto.chunkSize = bnpChunkSize
8633 proto.toRadix = bnpToRadix
8634 proto.fromRadix = bnpFromRadix
8635 proto.fromNumber = bnpFromNumber
8636 proto.bitwiseTo = bnpBitwiseTo
8637 proto.changeBit = bnpChangeBit
8638 proto.addTo = bnpAddTo
8639 proto.dMultiply = bnpDMultiply
8640 proto.dAddOffset = bnpDAddOffset
8641 proto.multiplyLowerTo = bnpMultiplyLowerTo
8642 proto.multiplyUpperTo = bnpMultiplyUpperTo
8643 proto.modInt = bnpModInt
8644 proto.millerRabin = bnpMillerRabin
8647 proto.clone = bnClone
8648 proto.intValue = bnIntValue
8649 proto.byteValue = bnByteValue
8650 proto.shortValue = bnShortValue
8651 proto.signum = bnSigNum
8652 proto.toByteArray = bnToByteArray
8653 proto.equals = bnEquals
8659 proto.andNot = bnAndNot
8661 proto.shiftLeft = bnShiftLeft
8662 proto.shiftRight = bnShiftRight
8663 proto.getLowestSetBit = bnGetLowestSetBit
8664 proto.bitCount = bnBitCount
8665 proto.testBit = bnTestBit
8666 proto.setBit = bnSetBit
8667 proto.clearBit = bnClearBit
8668 proto.flipBit = bnFlipBit
8670 proto.subtract = bnSubtract
8671 proto.multiply = bnMultiply
8672 proto.divide = bnDivide
8673 proto.remainder = bnRemainder
8674 proto.divideAndRemainder = bnDivideAndRemainder
8675 proto.modPow = bnModPow
8676 proto.modInverse = bnModInverse
8679 proto.isProbablePrime = bnIsProbablePrime
8681 // JSBN-specific extension
8682 proto.square = bnSquare
8685 BigInteger.ZERO = nbv(
0)
8686 BigInteger.ONE = nbv(
1)
8687 BigInteger.valueOf = nbv
8689 module.exports = BigInteger
8691 },{"../package.json":
4}],
2:[function(require,module,exports){
8693 // FIXME: Kind of a weird way to throw exceptions, consider removing
8694 var assert = require('assert')
8695 var BigInteger = require('./bigi')
8698 * Turns a byte array into a big integer.
8700 * This function will interpret a byte array as a big integer in big
8703 BigInteger.fromByteArrayUnsigned = function(byteArray) {
8704 // BigInteger expects a DER integer conformant byte array
8705 if (byteArray[
0] &
0x80) {
8706 return new BigInteger([
0].concat(byteArray))
8709 return new BigInteger(byteArray)
8713 * Returns a byte array representation of the big integer.
8715 * This returns the absolute of the contained value in big endian
8716 * form. A value of zero results in an empty array.
8718 BigInteger.prototype.toByteArrayUnsigned = function() {
8719 var byteArray = this.toByteArray()
8720 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
8723 BigInteger.fromDERInteger = function(byteArray) {
8724 return new BigInteger(byteArray)
8728 * Converts BigInteger to a DER integer representation.
8730 * The format for this value uses the most significant bit as a sign
8731 * bit. If the most significant bit is already set and the integer is
8732 * positive, a
0x00 is prepended.
8748 * -
62300 =
> 0xff0ca4
8750 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
8752 BigInteger.fromBuffer = function(buffer) {
8753 // BigInteger expects a DER integer conformant byte array
8754 if (buffer[
0] &
0x80) {
8755 var byteArray = Array.prototype.slice.call(buffer)
8757 return new BigInteger([
0].concat(byteArray))
8760 return new BigInteger(buffer)
8763 BigInteger.fromHex = function(hex) {
8764 if (hex === '') return BigInteger.ZERO
8766 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
8767 assert.equal(hex.length %
2,
0, 'Incomplete hex')
8768 return new BigInteger(hex,
16)
8771 BigInteger.prototype.toBuffer = function(size) {
8772 var byteArray = this.toByteArrayUnsigned()
8775 var padding = size - byteArray.length
8776 while (zeros.length < padding) zeros.push(
0)
8778 return new Buffer(zeros.concat(byteArray))
8781 BigInteger.prototype.toHex = function(size) {
8782 return this.toBuffer(size).toString('hex')
8785 }).call(this,require(
"buffer").Buffer)
8786 },{
"./bigi":
1,
"assert":
5,
"buffer":
7}],
3:[function(require,module,exports){
8787 var BigInteger = require('./bigi')
8790 require('./convert')
8792 module.exports = BigInteger
8793 },{
"./bigi":
1,
"./convert":
2}],
4:[function(require,module,exports){
8797 "description":
"Big integers.",
8815 "devDependencies": {
8818 "coveralls":
"^2.10.0",
8819 "istanbul":
"^0.2.11"
8822 "url":
"https://github.com/cryptocoinjs/bigi",
8825 "main":
"./lib/index.js",
8827 "test":
"_mocha -- test/*.js",
8828 "jshint":
"jshint --config jshint.json lib/*.js ; true",
8830 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
8831 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
8835 "files":
"test/*.js",
8841 "safari/6.0..latest",
8842 "iphone/6.0..latest",
8843 "android-browser/4.2..latest"
8847 "url":
"https://github.com/cryptocoinjs/bigi/issues"
8849 "homepage":
"https://github.com/cryptocoinjs/bigi",
8850 "_id":
"bigi@1.4.0",
8852 "shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
8853 "tarball":
"http://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
8855 "_from":
"bigi@^1.4.0",
8856 "_npmVersion":
"1.4.3",
8859 "email":
"jprichardson@gmail.com"
8864 "email":
"jprichardson@gmail.com"
8867 "name":
"midnightlightning",
8868 "email":
"boydb@midnightdesign.ws"
8871 "name":
"sidazhang",
8872 "email":
"sidazhang89@gmail.com"
8876 "email":
"npm@shesek.info"
8880 "_shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
8881 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
8884 },{}],
5:[function(require,module,exports){
8885 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
8887 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
8889 // Originally from narwhal.js (http://narwhaljs.org)
8890 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
8892 // Permission is hereby granted, free of charge, to any person obtaining a copy
8893 // of this software and associated documentation files (the 'Software'), to
8894 // deal in the Software without restriction, including without limitation the
8895 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8896 // sell copies of the Software, and to permit persons to whom the Software is
8897 // furnished to do so, subject to the following conditions:
8899 // The above copyright notice and this permission notice shall be included in
8900 // all copies or substantial portions of the Software.
8902 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
8903 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
8904 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
8905 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
8906 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
8907 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8909 // when used in node, this will actually load the util module we depend on
8910 // versus loading the builtin util module as happens otherwise
8911 // this is a bug in node module loading as far as I am concerned
8912 var util = require('util/');
8914 var pSlice = Array.prototype.slice;
8915 var hasOwn = Object.prototype.hasOwnProperty;
8917 //
1. The assert module provides functions that throw
8918 // AssertionError's when particular conditions are not met. The
8919 // assert module must conform to the following interface.
8921 var assert = module.exports = ok;
8923 //
2. The AssertionError is defined in assert.
8924 // new assert.AssertionError({ message: message,
8926 // expected: expected })
8928 assert.AssertionError = function AssertionError(options) {
8929 this.name = 'AssertionError';
8930 this.actual = options.actual;
8931 this.expected = options.expected;
8932 this.operator = options.operator;
8933 if (options.message) {
8934 this.message = options.message;
8935 this.generatedMessage = false;
8937 this.message = getMessage(this);
8938 this.generatedMessage = true;
8940 var stackStartFunction = options.stackStartFunction || fail;
8942 if (Error.captureStackTrace) {
8943 Error.captureStackTrace(this, stackStartFunction);
8946 // non v8 browsers so we can have a stacktrace
8947 var err = new Error();
8949 var out = err.stack;
8951 // try to strip useless frames
8952 var fn_name = stackStartFunction.name;
8953 var idx = out.indexOf('\n' + fn_name);
8955 // once we have located the function frame
8956 // we need to strip out everything before it (and its line)
8957 var next_line = out.indexOf('\n', idx +
1);
8958 out = out.substring(next_line +
1);
8966 // assert.AssertionError instanceof Error
8967 util.inherits(assert.AssertionError, Error);
8969 function replacer(key, value) {
8970 if (util.isUndefined(value)) {
8973 if (util.isNumber(value) && !isFinite(value)) {
8974 return value.toString();
8976 if (util.isFunction(value) || util.isRegExp(value)) {
8977 return value.toString();
8982 function truncate(s, n) {
8983 if (util.isString(s)) {
8984 return s.length < n ? s : s.slice(
0, n);
8990 function getMessage(self) {
8991 return truncate(JSON.stringify(self.actual, replacer),
128) + ' ' +
8992 self.operator + ' ' +
8993 truncate(JSON.stringify(self.expected, replacer),
128);
8996 // At present only the three keys mentioned above are used and
8997 // understood by the spec. Implementations or sub modules can pass
8998 // other keys to the AssertionError's constructor - they will be
9001 //
3. All of the following functions must throw an AssertionError
9002 // when a corresponding condition is not met, with a message that
9003 // may be undefined if not provided. All assertion methods provide
9004 // both the actual and expected values to the assertion error for
9005 // display purposes.
9007 function fail(actual, expected, message, operator, stackStartFunction) {
9008 throw new assert.AssertionError({
9013 stackStartFunction: stackStartFunction
9017 // EXTENSION! allows for well behaved errors defined elsewhere.
9020 //
4. Pure assertion tests whether a value is truthy, as determined
9022 // assert.ok(guard, message_opt);
9023 // This statement is equivalent to assert.equal(true, !!guard,
9024 // message_opt);. To test strictly for the value true, use
9025 // assert.strictEqual(true, guard, message_opt);.
9027 function ok(value, message) {
9028 if (!value) fail(value, true, message, '==', assert.ok);
9032 //
5. The equality assertion tests shallow, coercive equality with
9034 // assert.equal(actual, expected, message_opt);
9036 assert.equal = function equal(actual, expected, message) {
9037 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
9040 //
6. The non-equality assertion tests for whether two objects are not equal
9041 // with != assert.notEqual(actual, expected, message_opt);
9043 assert.notEqual = function notEqual(actual, expected, message) {
9044 if (actual == expected) {
9045 fail(actual, expected, message, '!=', assert.notEqual);
9049 //
7. The equivalence assertion tests a deep equality relation.
9050 // assert.deepEqual(actual, expected, message_opt);
9052 assert.deepEqual = function deepEqual(actual, expected, message) {
9053 if (!_deepEqual(actual, expected)) {
9054 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
9058 function _deepEqual(actual, expected) {
9059 //
7.1. All identical values are equivalent, as determined by ===.
9060 if (actual === expected) {
9063 } else if (util.isBuffer(actual) && util.isBuffer(expected)) {
9064 if (actual.length != expected.length) return false;
9066 for (var i =
0; i < actual.length; i++) {
9067 if (actual[i] !== expected[i]) return false;
9072 //
7.2. If the expected value is a Date object, the actual value is
9073 // equivalent if it is also a Date object that refers to the same time.
9074 } else if (util.isDate(actual) && util.isDate(expected)) {
9075 return actual.getTime() === expected.getTime();
9077 //
7.3 If the expected value is a RegExp object, the actual value is
9078 // equivalent if it is also a RegExp object with the same source and
9079 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
9080 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
9081 return actual.source === expected.source &&
9082 actual.global === expected.global &&
9083 actual.multiline === expected.multiline &&
9084 actual.lastIndex === expected.lastIndex &&
9085 actual.ignoreCase === expected.ignoreCase;
9087 //
7.4. Other pairs that do not both pass typeof value == 'object',
9088 // equivalence is determined by ==.
9089 } else if (!util.isObject(actual) && !util.isObject(expected)) {
9090 return actual == expected;
9092 //
7.5 For all other Object pairs, including Array objects, equivalence is
9093 // determined by having the same number of owned properties (as verified
9094 // with Object.prototype.hasOwnProperty.call), the same set of keys
9095 // (although not necessarily the same order), equivalent values for every
9096 // corresponding key, and an identical 'prototype' property. Note: this
9097 // accounts for both named and indexed properties on Arrays.
9099 return objEquiv(actual, expected);
9103 function isArguments(object) {
9104 return Object.prototype.toString.call(object) == '[object Arguments]';
9107 function objEquiv(a, b) {
9108 if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))
9110 // an identical 'prototype' property.
9111 if (a.prototype !== b.prototype) return false;
9112 // if one is a primitive, the other must be same
9113 if (util.isPrimitive(a) || util.isPrimitive(b)) {
9116 var aIsArgs = isArguments(a),
9117 bIsArgs = isArguments(b);
9118 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
9123 return _deepEqual(a, b);
9125 var ka = objectKeys(a),
9128 // having the same number of owned properties (keys incorporates
9130 if (ka.length != kb.length)
9132 //the same set of keys (although not necessarily the same order),
9136 for (i = ka.length -
1; i
>=
0; i--) {
9140 //equivalent values for every corresponding key, and
9141 //~~~possibly expensive deep test
9142 for (i = ka.length -
1; i
>=
0; i--) {
9144 if (!_deepEqual(a[key], b[key])) return false;
9149 //
8. The non-equivalence assertion tests for any deep inequality.
9150 // assert.notDeepEqual(actual, expected, message_opt);
9152 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
9153 if (_deepEqual(actual, expected)) {
9154 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
9158 //
9. The strict equality assertion tests strict equality, as determined by ===.
9159 // assert.strictEqual(actual, expected, message_opt);
9161 assert.strictEqual = function strictEqual(actual, expected, message) {
9162 if (actual !== expected) {
9163 fail(actual, expected, message, '===', assert.strictEqual);
9167 //
10. The strict non-equality assertion tests for strict inequality, as
9168 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
9170 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
9171 if (actual === expected) {
9172 fail(actual, expected, message, '!==', assert.notStrictEqual);
9176 function expectedException(actual, expected) {
9177 if (!actual || !expected) {
9181 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
9182 return expected.test(actual);
9183 } else if (actual instanceof expected) {
9185 } else if (expected.call({}, actual) === true) {
9192 function _throws(shouldThrow, block, expected, message) {
9195 if (util.isString(expected)) {
9206 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
9207 (message ? ' ' + message : '.');
9209 if (shouldThrow && !actual) {
9210 fail(actual, expected, 'Missing expected exception' + message);
9213 if (!shouldThrow && expectedException(actual, expected)) {
9214 fail(actual, expected, 'Got unwanted exception' + message);
9217 if ((shouldThrow && actual && expected &&
9218 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
9223 //
11. Expected to throw an error:
9224 // assert.throws(block, Error_opt, message_opt);
9226 assert.throws = function(block, /*optional*/error, /*optional*/message) {
9227 _throws.apply(this, [true].concat(pSlice.call(arguments)));
9230 // EXTENSION! This is annoying to write outside this module.
9231 assert.doesNotThrow = function(block, /*optional*/message) {
9232 _throws.apply(this, [false].concat(pSlice.call(arguments)));
9235 assert.ifError = function(err) { if (err) {throw err;}};
9237 var objectKeys = Object.keys || function (obj) {
9239 for (var key in obj) {
9240 if (hasOwn.call(obj, key)) keys.push(key);
9245 },{"util/":
29}],
6:[function(require,module,exports){
9247 },{}],
7:[function(require,module,exports){
9249 * The buffer module from node.js, for the browser.
9251 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
9255 var base64 = require('base64-js')
9256 var ieee754 = require('ieee754')
9257 var isArray = require('is-array')
9259 exports.Buffer = Buffer
9260 exports.SlowBuffer = SlowBuffer
9261 exports.INSPECT_MAX_BYTES =
50
9262 Buffer.poolSize =
8192 // not used by this implementation
9267 * If `Buffer.TYPED_ARRAY_SUPPORT`:
9268 * === true Use Uint8Array implementation (fastest)
9269 * === false Use Object implementation (most compatible, even IE6)
9271 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
9272 * Opera
11.6+, iOS
4.2+.
9274 * Due to various browser bugs, sometimes the Object implementation will be used even
9275 * when the browser supports typed arrays.
9279 * - Firefox
4-
29 lacks support for adding new properties to `Uint8Array` instances,
9280 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438.
9282 * - Safari
5-
7 lacks support for changing the `Object.prototype.constructor` property
9285 * - Chrome
9-
10 is missing the `TypedArray.prototype.subarray` function.
9287 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
9288 * incorrect length in some situations.
9290 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
9291 * get the Object implementation, which is slower but behaves correctly.
9293 Buffer.TYPED_ARRAY_SUPPORT = (function () {
9296 var arr = new Uint8Array(
1)
9297 arr.foo = function () { return
42 }
9298 arr.constructor = Bar
9299 return arr.foo() ===
42 && // typed array instances can be augmented
9300 arr.constructor === Bar && // constructor can be set
9301 typeof arr.subarray === 'function' && // chrome
9-
10 lack `subarray`
9302 arr.subarray(
1,
1).byteLength ===
0 // ie10 has broken `subarray`
9308 function kMaxLength () {
9309 return Buffer.TYPED_ARRAY_SUPPORT
9318 * The Buffer constructor returns instances of `Uint8Array` that are augmented
9319 * with function properties for all the node `Buffer` API functions. We use
9320 * `Uint8Array` so that square bracket notation works as expected -- it returns
9323 * By augmenting the instances, we can avoid modifying the `Uint8Array`
9326 function Buffer (arg) {
9327 if (!(this instanceof Buffer)) {
9328 // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
9329 if (arguments.length
> 1) return new Buffer(arg, arguments[
1])
9330 return new Buffer(arg)
9334 this.parent = undefined
9337 if (typeof arg === 'number') {
9338 return fromNumber(this, arg)
9341 // Slightly less common case.
9342 if (typeof arg === 'string') {
9343 return fromString(this, arg, arguments.length
> 1 ? arguments[
1] : 'utf8')
9347 return fromObject(this, arg)
9350 function fromNumber (that, length) {
9351 that = allocate(that, length <
0 ?
0 : checked(length) |
0)
9352 if (!Buffer.TYPED_ARRAY_SUPPORT) {
9353 for (var i =
0; i < length; i++) {
9360 function fromString (that, string, encoding) {
9361 if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
9363 // Assumption: byteLength() return value is always < kMaxLength.
9364 var length = byteLength(string, encoding) |
0
9365 that = allocate(that, length)
9367 that.write(string, encoding)
9371 function fromObject (that, object) {
9372 if (Buffer.isBuffer(object)) return fromBuffer(that, object)
9374 if (isArray(object)) return fromArray(that, object)
9376 if (object == null) {
9377 throw new TypeError('must start with number, buffer, array or string')
9380 if (typeof ArrayBuffer !== 'undefined') {
9381 if (object.buffer instanceof ArrayBuffer) {
9382 return fromTypedArray(that, object)
9384 if (object instanceof ArrayBuffer) {
9385 return fromArrayBuffer(that, object)
9389 if (object.length) return fromArrayLike(that, object)
9391 return fromJsonObject(that, object)
9394 function fromBuffer (that, buffer) {
9395 var length = checked(buffer.length) |
0
9396 that = allocate(that, length)
9397 buffer.copy(that,
0,
0, length)
9401 function fromArray (that, array) {
9402 var length = checked(array.length) |
0
9403 that = allocate(that, length)
9404 for (var i =
0; i < length; i +=
1) {
9405 that[i] = array[i] &
255
9410 // Duplicate of fromArray() to keep fromArray() monomorphic.
9411 function fromTypedArray (that, array) {
9412 var length = checked(array.length) |
0
9413 that = allocate(that, length)
9414 // Truncating the elements is probably not what people expect from typed
9415 // arrays with BYTES_PER_ELEMENT
> 1 but it's compatible with the behavior
9416 // of the old Buffer constructor.
9417 for (var i =
0; i < length; i +=
1) {
9418 that[i] = array[i] &
255
9423 function fromArrayBuffer (that, array) {
9424 if (Buffer.TYPED_ARRAY_SUPPORT) {
9425 // Return an augmented `Uint8Array` instance, for best performance
9427 that = Buffer._augment(new Uint8Array(array))
9429 // Fallback: Return an object instance of the Buffer class
9430 that = fromTypedArray(that, new Uint8Array(array))
9435 function fromArrayLike (that, array) {
9436 var length = checked(array.length) |
0
9437 that = allocate(that, length)
9438 for (var i =
0; i < length; i +=
1) {
9439 that[i] = array[i] &
255
9444 // Deserialize { type: 'Buffer', data: [
1,
2,
3,...] } into a Buffer object.
9445 // Returns a zero-length buffer for inputs that don't conform to the spec.
9446 function fromJsonObject (that, object) {
9450 if (object.type === 'Buffer' && isArray(object.data)) {
9452 length = checked(array.length) |
0
9454 that = allocate(that, length)
9456 for (var i =
0; i < length; i +=
1) {
9457 that[i] = array[i] &
255
9462 function allocate (that, length) {
9463 if (Buffer.TYPED_ARRAY_SUPPORT) {
9464 // Return an augmented `Uint8Array` instance, for best performance
9465 that = Buffer._augment(new Uint8Array(length))
9467 // Fallback: Return an object instance of the Buffer class
9468 that.length = length
9469 that._isBuffer = true
9472 var fromPool = length !==
0 && length <= Buffer.poolSize
>>> 1
9473 if (fromPool) that.parent = rootParent
9478 function checked (length) {
9479 // Note: cannot use `length < kMaxLength` here because that fails when
9480 // length is NaN (which is otherwise coerced to zero.)
9481 if (length
>= kMaxLength()) {
9482 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
9483 'size:
0x' + kMaxLength().toString(
16) + ' bytes')
9488 function SlowBuffer (subject, encoding) {
9489 if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
9491 var buf = new Buffer(subject, encoding)
9496 Buffer.isBuffer = function isBuffer (b) {
9497 return !!(b != null && b._isBuffer)
9500 Buffer.compare = function compare (a, b) {
9501 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
9502 throw new TypeError('Arguments must be Buffers')
9505 if (a === b) return
0
9511 var len = Math.min(x, y)
9513 if (a[i] !== b[i]) break
9523 if (x < y) return -
1
9528 Buffer.isEncoding = function isEncoding (encoding) {
9529 switch (String(encoding).toLowerCase()) {
9547 Buffer.concat = function concat (list, length) {
9548 if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
9550 if (list.length ===
0) {
9551 return new Buffer(
0)
9555 if (length === undefined) {
9557 for (i =
0; i < list.length; i++) {
9558 length += list[i].length
9562 var buf = new Buffer(length)
9564 for (i =
0; i < list.length; i++) {
9572 function byteLength (string, encoding) {
9573 if (typeof string !== 'string') string = '' + string
9575 var len = string.length
9576 if (len ===
0) return
0
9578 // Use a for loop to avoid recursion
9579 var loweredCase = false
9590 return utf8ToBytes(string).length
9599 return base64ToBytes(string).length
9601 if (loweredCase) return utf8ToBytes(string).length // assume utf8
9602 encoding = ('' + encoding).toLowerCase()
9607 Buffer.byteLength = byteLength
9609 // pre-set for values that may exist in the future
9610 Buffer.prototype.length = undefined
9611 Buffer.prototype.parent = undefined
9613 function slowToString (encoding, start, end) {
9614 var loweredCase = false
9617 end = end === undefined || end === Infinity ? this.length : end |
0
9619 if (!encoding) encoding = 'utf8'
9620 if (start <
0) start =
0
9621 if (end
> this.length) end = this.length
9622 if (end <= start) return ''
9627 return hexSlice(this, start, end)
9631 return utf8Slice(this, start, end)
9634 return asciiSlice(this, start, end)
9637 return binarySlice(this, start, end)
9640 return base64Slice(this, start, end)
9646 return utf16leSlice(this, start, end)
9649 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
9650 encoding = (encoding + '').toLowerCase()
9656 Buffer.prototype.toString = function toString () {
9657 var length = this.length |
0
9658 if (length ===
0) return ''
9659 if (arguments.length ===
0) return utf8Slice(this,
0, length)
9660 return slowToString.apply(this, arguments)
9663 Buffer.prototype.equals = function equals (b) {
9664 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
9665 if (this === b) return true
9666 return Buffer.compare(this, b) ===
0
9669 Buffer.prototype.inspect = function inspect () {
9671 var max = exports.INSPECT_MAX_BYTES
9672 if (this.length
> 0) {
9673 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
9674 if (this.length
> max) str += ' ... '
9676 return '
<Buffer ' + str + '
>'
9679 Buffer.prototype.compare = function compare (b) {
9680 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
9681 if (this === b) return
0
9682 return Buffer.compare(this, b)
9685 Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
9686 if (byteOffset
> 0x7fffffff) byteOffset =
0x7fffffff
9687 else if (byteOffset < -
0x80000000) byteOffset = -
0x80000000
9690 if (this.length ===
0) return -
1
9691 if (byteOffset
>= this.length) return -
1
9693 // Negative offsets start from the end of the buffer
9694 if (byteOffset <
0) byteOffset = Math.max(this.length + byteOffset,
0)
9696 if (typeof val === 'string') {
9697 if (val.length ===
0) return -
1 // special case: looking for empty string always fails
9698 return String.prototype.indexOf.call(this, val, byteOffset)
9700 if (Buffer.isBuffer(val)) {
9701 return arrayIndexOf(this, val, byteOffset)
9703 if (typeof val === 'number') {
9704 if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
9705 return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
9707 return arrayIndexOf(this, [ val ], byteOffset)
9710 function arrayIndexOf (arr, val, byteOffset) {
9712 for (var i =
0; byteOffset + i < arr.length; i++) {
9713 if (arr[byteOffset + i] === val[foundIndex === -
1 ?
0 : i - foundIndex]) {
9714 if (foundIndex === -
1) foundIndex = i
9715 if (i - foundIndex +
1 === val.length) return byteOffset + foundIndex
9723 throw new TypeError('val must be string, number or Buffer')
9726 // `get` is deprecated
9727 Buffer.prototype.get = function get (offset) {
9728 console.log('.get() is deprecated. Access using array indexes instead.')
9729 return this.readUInt8(offset)
9732 // `set` is deprecated
9733 Buffer.prototype.set = function set (v, offset) {
9734 console.log('.set() is deprecated. Access using array indexes instead.')
9735 return this.writeUInt8(v, offset)
9738 function hexWrite (buf, string, offset, length) {
9739 offset = Number(offset) ||
0
9740 var remaining = buf.length - offset
9744 length = Number(length)
9745 if (length
> remaining) {
9750 // must be an even number of digits
9751 var strLen = string.length
9752 if (strLen %
2 !==
0) throw new Error('Invalid hex string')
9754 if (length
> strLen /
2) {
9757 for (var i =
0; i < length; i++) {
9758 var parsed = parseInt(string.substr(i *
2,
2),
16)
9759 if (isNaN(parsed)) throw new Error('Invalid hex string')
9760 buf[offset + i] = parsed
9765 function utf8Write (buf, string, offset, length) {
9766 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
9769 function asciiWrite (buf, string, offset, length) {
9770 return blitBuffer(asciiToBytes(string), buf, offset, length)
9773 function binaryWrite (buf, string, offset, length) {
9774 return asciiWrite(buf, string, offset, length)
9777 function base64Write (buf, string, offset, length) {
9778 return blitBuffer(base64ToBytes(string), buf, offset, length)
9781 function ucs2Write (buf, string, offset, length) {
9782 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
9785 Buffer.prototype.write = function write (string, offset, length, encoding) {
9786 // Buffer#write(string)
9787 if (offset === undefined) {
9789 length = this.length
9791 // Buffer#write(string, encoding)
9792 } else if (length === undefined && typeof offset === 'string') {
9794 length = this.length
9796 // Buffer#write(string, offset[, length][, encoding])
9797 } else if (isFinite(offset)) {
9799 if (isFinite(length)) {
9801 if (encoding === undefined) encoding = 'utf8'
9806 // legacy write(string, encoding, offset, length) - remove in v0.13
9814 var remaining = this.length - offset
9815 if (length === undefined || length
> remaining) length = remaining
9817 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
9818 throw new RangeError('attempt to write outside buffer bounds')
9821 if (!encoding) encoding = 'utf8'
9823 var loweredCase = false
9827 return hexWrite(this, string, offset, length)
9831 return utf8Write(this, string, offset, length)
9834 return asciiWrite(this, string, offset, length)
9837 return binaryWrite(this, string, offset, length)
9840 // Warning: maxLength not taken into account in base64Write
9841 return base64Write(this, string, offset, length)
9847 return ucs2Write(this, string, offset, length)
9850 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
9851 encoding = ('' + encoding).toLowerCase()
9857 Buffer.prototype.toJSON = function toJSON () {
9860 data: Array.prototype.slice.call(this._arr || this,
0)
9864 function base64Slice (buf, start, end) {
9865 if (start ===
0 && end === buf.length) {
9866 return base64.fromByteArray(buf)
9868 return base64.fromByteArray(buf.slice(start, end))
9872 function utf8Slice (buf, start, end) {
9873 end = Math.min(buf.length, end)
9878 var bytesPerSequence
9884 for (; i < end; i += bytesPerSequence) {
9888 if (firstByte
> 0xEF) {
9889 bytesPerSequence =
4
9890 } else if (firstByte
> 0xDF) {
9891 bytesPerSequence =
3
9892 } else if (firstByte
> 0xBF) {
9893 bytesPerSequence =
2
9895 bytesPerSequence =
1
9898 if (i + bytesPerSequence <= end) {
9899 switch (bytesPerSequence) {
9901 if (firstByte <
0x80) {
9902 codePoint = firstByte
9906 secondByte = buf[i +
1]
9907 if ((secondByte &
0xC0) ===
0x80) {
9908 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
9909 if (tempCodePoint
> 0x7F) {
9910 codePoint = tempCodePoint
9915 secondByte = buf[i +
1]
9916 thirdByte = buf[i +
2]
9917 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
9918 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
9919 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
9920 codePoint = tempCodePoint
9925 secondByte = buf[i +
1]
9926 thirdByte = buf[i +
2]
9927 fourthByte = buf[i +
3]
9928 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
9929 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
9930 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
9931 codePoint = tempCodePoint
9937 if (codePoint ===
0xFFFD) {
9938 // we generated an invalid codePoint so make sure to only advance by
1 byte
9939 bytesPerSequence =
1
9940 } else if (codePoint
> 0xFFFF) {
9941 // encode to utf16 (surrogate pair dance)
9942 codePoint -=
0x10000
9943 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
9944 codePoint =
0xDC00 | codePoint &
0x3FF
9950 return String.fromCharCode.apply(String, res)
9953 function asciiSlice (buf, start, end) {
9955 end = Math.min(buf.length, end)
9957 for (var i = start; i < end; i++) {
9958 ret += String.fromCharCode(buf[i] &
0x7F)
9963 function binarySlice (buf, start, end) {
9965 end = Math.min(buf.length, end)
9967 for (var i = start; i < end; i++) {
9968 ret += String.fromCharCode(buf[i])
9973 function hexSlice (buf, start, end) {
9974 var len = buf.length
9976 if (!start || start <
0) start =
0
9977 if (!end || end <
0 || end
> len) end = len
9980 for (var i = start; i < end; i++) {
9981 out += toHex(buf[i])
9986 function utf16leSlice (buf, start, end) {
9987 var bytes = buf.slice(start, end)
9989 for (var i =
0; i < bytes.length; i +=
2) {
9990 res += String.fromCharCode(bytes[i] + bytes[i +
1] *
256)
9995 Buffer.prototype.slice = function slice (start, end) {
9996 var len = this.length
9998 end = end === undefined ? len : ~~end
10002 if (start <
0) start =
0
10003 } else if (start
> len) {
10009 if (end <
0) end =
0
10010 } else if (end
> len) {
10014 if (end < start) end = start
10017 if (Buffer.TYPED_ARRAY_SUPPORT) {
10018 newBuf = Buffer._augment(this.subarray(start, end))
10020 var sliceLen = end - start
10021 newBuf = new Buffer(sliceLen, undefined)
10022 for (var i =
0; i < sliceLen; i++) {
10023 newBuf[i] = this[i + start]
10027 if (newBuf.length) newBuf.parent = this.parent || this
10033 * Need to make sure that buffer isn't trying to write out of bounds.
10035 function checkOffset (offset, ext, length) {
10036 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
10037 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
10040 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
10041 offset = offset |
0
10042 byteLength = byteLength |
0
10043 if (!noAssert) checkOffset(offset, byteLength, this.length)
10045 var val = this[offset]
10048 while (++i < byteLength && (mul *=
0x100)) {
10049 val += this[offset + i] * mul
10055 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
10056 offset = offset |
0
10057 byteLength = byteLength |
0
10059 checkOffset(offset, byteLength, this.length)
10062 var val = this[offset + --byteLength]
10064 while (byteLength
> 0 && (mul *=
0x100)) {
10065 val += this[offset + --byteLength] * mul
10071 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
10072 if (!noAssert) checkOffset(offset,
1, this.length)
10073 return this[offset]
10076 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
10077 if (!noAssert) checkOffset(offset,
2, this.length)
10078 return this[offset] | (this[offset +
1] <<
8)
10081 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
10082 if (!noAssert) checkOffset(offset,
2, this.length)
10083 return (this[offset] <<
8) | this[offset +
1]
10086 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
10087 if (!noAssert) checkOffset(offset,
4, this.length)
10089 return ((this[offset]) |
10090 (this[offset +
1] <<
8) |
10091 (this[offset +
2] <<
16)) +
10092 (this[offset +
3] *
0x1000000)
10095 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
10096 if (!noAssert) checkOffset(offset,
4, this.length)
10098 return (this[offset] *
0x1000000) +
10099 ((this[offset +
1] <<
16) |
10100 (this[offset +
2] <<
8) |
10104 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
10105 offset = offset |
0
10106 byteLength = byteLength |
0
10107 if (!noAssert) checkOffset(offset, byteLength, this.length)
10109 var val = this[offset]
10112 while (++i < byteLength && (mul *=
0x100)) {
10113 val += this[offset + i] * mul
10117 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
10122 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
10123 offset = offset |
0
10124 byteLength = byteLength |
0
10125 if (!noAssert) checkOffset(offset, byteLength, this.length)
10129 var val = this[offset + --i]
10130 while (i
> 0 && (mul *=
0x100)) {
10131 val += this[offset + --i] * mul
10135 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
10140 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
10141 if (!noAssert) checkOffset(offset,
1, this.length)
10142 if (!(this[offset] &
0x80)) return (this[offset])
10143 return ((
0xff - this[offset] +
1) * -
1)
10146 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
10147 if (!noAssert) checkOffset(offset,
2, this.length)
10148 var val = this[offset] | (this[offset +
1] <<
8)
10149 return (val &
0x8000) ? val |
0xFFFF0000 : val
10152 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
10153 if (!noAssert) checkOffset(offset,
2, this.length)
10154 var val = this[offset +
1] | (this[offset] <<
8)
10155 return (val &
0x8000) ? val |
0xFFFF0000 : val
10158 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
10159 if (!noAssert) checkOffset(offset,
4, this.length)
10161 return (this[offset]) |
10162 (this[offset +
1] <<
8) |
10163 (this[offset +
2] <<
16) |
10164 (this[offset +
3] <<
24)
10167 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
10168 if (!noAssert) checkOffset(offset,
4, this.length)
10170 return (this[offset] <<
24) |
10171 (this[offset +
1] <<
16) |
10172 (this[offset +
2] <<
8) |
10176 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
10177 if (!noAssert) checkOffset(offset,
4, this.length)
10178 return ieee754.read(this, offset, true,
23,
4)
10181 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
10182 if (!noAssert) checkOffset(offset,
4, this.length)
10183 return ieee754.read(this, offset, false,
23,
4)
10186 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
10187 if (!noAssert) checkOffset(offset,
8, this.length)
10188 return ieee754.read(this, offset, true,
52,
8)
10191 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
10192 if (!noAssert) checkOffset(offset,
8, this.length)
10193 return ieee754.read(this, offset, false,
52,
8)
10196 function checkInt (buf, value, offset, ext, max, min) {
10197 if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
10198 if (value
> max || value < min) throw new RangeError('value is out of bounds')
10199 if (offset + ext
> buf.length) throw new RangeError('index out of range')
10202 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
10204 offset = offset |
0
10205 byteLength = byteLength |
0
10206 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
10210 this[offset] = value &
0xFF
10211 while (++i < byteLength && (mul *=
0x100)) {
10212 this[offset + i] = (value / mul) &
0xFF
10215 return offset + byteLength
10218 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
10220 offset = offset |
0
10221 byteLength = byteLength |
0
10222 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
10224 var i = byteLength -
1
10226 this[offset + i] = value &
0xFF
10227 while (--i
>=
0 && (mul *=
0x100)) {
10228 this[offset + i] = (value / mul) &
0xFF
10231 return offset + byteLength
10234 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
10236 offset = offset |
0
10237 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
10238 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
10239 this[offset] = value
10243 function objectWriteUInt16 (buf, value, offset, littleEndian) {
10244 if (value <
0) value =
0xffff + value +
1
10245 for (var i =
0, j = Math.min(buf.length - offset,
2); i < j; i++) {
10246 buf[offset + i] = (value & (
0xff << (
8 * (littleEndian ? i :
1 - i))))
>>>
10247 (littleEndian ? i :
1 - i) *
8
10251 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
10253 offset = offset |
0
10254 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
10255 if (Buffer.TYPED_ARRAY_SUPPORT) {
10256 this[offset] = value
10257 this[offset +
1] = (value
>>> 8)
10259 objectWriteUInt16(this, value, offset, true)
10264 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
10266 offset = offset |
0
10267 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
10268 if (Buffer.TYPED_ARRAY_SUPPORT) {
10269 this[offset] = (value
>>> 8)
10270 this[offset +
1] = value
10272 objectWriteUInt16(this, value, offset, false)
10277 function objectWriteUInt32 (buf, value, offset, littleEndian) {
10278 if (value <
0) value =
0xffffffff + value +
1
10279 for (var i =
0, j = Math.min(buf.length - offset,
4); i < j; i++) {
10280 buf[offset + i] = (value
>>> (littleEndian ? i :
3 - i) *
8) &
0xff
10284 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
10286 offset = offset |
0
10287 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
10288 if (Buffer.TYPED_ARRAY_SUPPORT) {
10289 this[offset +
3] = (value
>>> 24)
10290 this[offset +
2] = (value
>>> 16)
10291 this[offset +
1] = (value
>>> 8)
10292 this[offset] = value
10294 objectWriteUInt32(this, value, offset, true)
10299 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
10301 offset = offset |
0
10302 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
10303 if (Buffer.TYPED_ARRAY_SUPPORT) {
10304 this[offset] = (value
>>> 24)
10305 this[offset +
1] = (value
>>> 16)
10306 this[offset +
2] = (value
>>> 8)
10307 this[offset +
3] = value
10309 objectWriteUInt32(this, value, offset, false)
10314 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
10316 offset = offset |
0
10318 var limit = Math.pow(
2,
8 * byteLength -
1)
10320 checkInt(this, value, offset, byteLength, limit -
1, -limit)
10325 var sub = value <
0 ?
1 :
0
10326 this[offset] = value &
0xFF
10327 while (++i < byteLength && (mul *=
0x100)) {
10328 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
10331 return offset + byteLength
10334 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
10336 offset = offset |
0
10338 var limit = Math.pow(
2,
8 * byteLength -
1)
10340 checkInt(this, value, offset, byteLength, limit -
1, -limit)
10343 var i = byteLength -
1
10345 var sub = value <
0 ?
1 :
0
10346 this[offset + i] = value &
0xFF
10347 while (--i
>=
0 && (mul *=
0x100)) {
10348 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
10351 return offset + byteLength
10354 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
10356 offset = offset |
0
10357 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
10358 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
10359 if (value <
0) value =
0xff + value +
1
10360 this[offset] = value
10364 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
10366 offset = offset |
0
10367 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
10368 if (Buffer.TYPED_ARRAY_SUPPORT) {
10369 this[offset] = value
10370 this[offset +
1] = (value
>>> 8)
10372 objectWriteUInt16(this, value, offset, true)
10377 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
10379 offset = offset |
0
10380 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
10381 if (Buffer.TYPED_ARRAY_SUPPORT) {
10382 this[offset] = (value
>>> 8)
10383 this[offset +
1] = value
10385 objectWriteUInt16(this, value, offset, false)
10390 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
10392 offset = offset |
0
10393 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
10394 if (Buffer.TYPED_ARRAY_SUPPORT) {
10395 this[offset] = value
10396 this[offset +
1] = (value
>>> 8)
10397 this[offset +
2] = (value
>>> 16)
10398 this[offset +
3] = (value
>>> 24)
10400 objectWriteUInt32(this, value, offset, true)
10405 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
10407 offset = offset |
0
10408 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
10409 if (value <
0) value =
0xffffffff + value +
1
10410 if (Buffer.TYPED_ARRAY_SUPPORT) {
10411 this[offset] = (value
>>> 24)
10412 this[offset +
1] = (value
>>> 16)
10413 this[offset +
2] = (value
>>> 8)
10414 this[offset +
3] = value
10416 objectWriteUInt32(this, value, offset, false)
10421 function checkIEEE754 (buf, value, offset, ext, max, min) {
10422 if (value
> max || value < min) throw new RangeError('value is out of bounds')
10423 if (offset + ext
> buf.length) throw new RangeError('index out of range')
10424 if (offset <
0) throw new RangeError('index out of range')
10427 function writeFloat (buf, value, offset, littleEndian, noAssert) {
10429 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
10431 ieee754.write(buf, value, offset, littleEndian,
23,
4)
10435 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
10436 return writeFloat(this, value, offset, true, noAssert)
10439 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
10440 return writeFloat(this, value, offset, false, noAssert)
10443 function writeDouble (buf, value, offset, littleEndian, noAssert) {
10445 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
10447 ieee754.write(buf, value, offset, littleEndian,
52,
8)
10451 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
10452 return writeDouble(this, value, offset, true, noAssert)
10455 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
10456 return writeDouble(this, value, offset, false, noAssert)
10459 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
10460 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
10461 if (!start) start =
0
10462 if (!end && end !==
0) end = this.length
10463 if (targetStart
>= target.length) targetStart = target.length
10464 if (!targetStart) targetStart =
0
10465 if (end
> 0 && end < start) end = start
10467 // Copy
0 bytes; we're done
10468 if (end === start) return
0
10469 if (target.length ===
0 || this.length ===
0) return
0
10471 // Fatal error conditions
10472 if (targetStart <
0) {
10473 throw new RangeError('targetStart out of bounds')
10475 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
10476 if (end <
0) throw new RangeError('sourceEnd out of bounds')
10479 if (end
> this.length) end = this.length
10480 if (target.length - targetStart < end - start) {
10481 end = target.length - targetStart + start
10484 var len = end - start
10487 if (this === target && start < targetStart && targetStart < end) {
10488 // descending copy from end
10489 for (i = len -
1; i
>=
0; i--) {
10490 target[i + targetStart] = this[i + start]
10492 } else if (len <
1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
10493 // ascending copy from start
10494 for (i =
0; i < len; i++) {
10495 target[i + targetStart] = this[i + start]
10498 target._set(this.subarray(start, start + len), targetStart)
10504 // fill(value, start=
0, end=buffer.length)
10505 Buffer.prototype.fill = function fill (value, start, end) {
10506 if (!value) value =
0
10507 if (!start) start =
0
10508 if (!end) end = this.length
10510 if (end < start) throw new RangeError('end < start')
10512 // Fill
0 bytes; we're done
10513 if (end === start) return
10514 if (this.length ===
0) return
10516 if (start <
0 || start
>= this.length) throw new RangeError('start out of bounds')
10517 if (end <
0 || end
> this.length) throw new RangeError('end out of bounds')
10520 if (typeof value === 'number') {
10521 for (i = start; i < end; i++) {
10525 var bytes = utf8ToBytes(value.toString())
10526 var len = bytes.length
10527 for (i = start; i < end; i++) {
10528 this[i] = bytes[i % len]
10536 * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
10537 * Added in Node
0.12. Only available in browsers that support ArrayBuffer.
10539 Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
10540 if (typeof Uint8Array !== 'undefined') {
10541 if (Buffer.TYPED_ARRAY_SUPPORT) {
10542 return (new Buffer(this)).buffer
10544 var buf = new Uint8Array(this.length)
10545 for (var i =
0, len = buf.length; i < len; i +=
1) {
10551 throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
10555 // HELPER FUNCTIONS
10556 // ================
10558 var BP = Buffer.prototype
10561 * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
10563 Buffer._augment = function _augment (arr) {
10564 arr.constructor = Buffer
10565 arr._isBuffer = true
10567 // save reference to original Uint8Array set method before overwriting
10574 arr.write = BP.write
10575 arr.toString = BP.toString
10576 arr.toLocaleString = BP.toString
10577 arr.toJSON = BP.toJSON
10578 arr.equals = BP.equals
10579 arr.compare = BP.compare
10580 arr.indexOf = BP.indexOf
10582 arr.slice = BP.slice
10583 arr.readUIntLE = BP.readUIntLE
10584 arr.readUIntBE = BP.readUIntBE
10585 arr.readUInt8 = BP.readUInt8
10586 arr.readUInt16LE = BP.readUInt16LE
10587 arr.readUInt16BE = BP.readUInt16BE
10588 arr.readUInt32LE = BP.readUInt32LE
10589 arr.readUInt32BE = BP.readUInt32BE
10590 arr.readIntLE = BP.readIntLE
10591 arr.readIntBE = BP.readIntBE
10592 arr.readInt8 = BP.readInt8
10593 arr.readInt16LE = BP.readInt16LE
10594 arr.readInt16BE = BP.readInt16BE
10595 arr.readInt32LE = BP.readInt32LE
10596 arr.readInt32BE = BP.readInt32BE
10597 arr.readFloatLE = BP.readFloatLE
10598 arr.readFloatBE = BP.readFloatBE
10599 arr.readDoubleLE = BP.readDoubleLE
10600 arr.readDoubleBE = BP.readDoubleBE
10601 arr.writeUInt8 = BP.writeUInt8
10602 arr.writeUIntLE = BP.writeUIntLE
10603 arr.writeUIntBE = BP.writeUIntBE
10604 arr.writeUInt16LE = BP.writeUInt16LE
10605 arr.writeUInt16BE = BP.writeUInt16BE
10606 arr.writeUInt32LE = BP.writeUInt32LE
10607 arr.writeUInt32BE = BP.writeUInt32BE
10608 arr.writeIntLE = BP.writeIntLE
10609 arr.writeIntBE = BP.writeIntBE
10610 arr.writeInt8 = BP.writeInt8
10611 arr.writeInt16LE = BP.writeInt16LE
10612 arr.writeInt16BE = BP.writeInt16BE
10613 arr.writeInt32LE = BP.writeInt32LE
10614 arr.writeInt32BE = BP.writeInt32BE
10615 arr.writeFloatLE = BP.writeFloatLE
10616 arr.writeFloatBE = BP.writeFloatBE
10617 arr.writeDoubleLE = BP.writeDoubleLE
10618 arr.writeDoubleBE = BP.writeDoubleBE
10620 arr.inspect = BP.inspect
10621 arr.toArrayBuffer = BP.toArrayBuffer
10626 var INVALID_BASE64_RE = /[^+\/
0-
9A-Za-z-_]/g
10628 function base64clean (str) {
10629 // Node strips out invalid characters like \n and \t from the string, base64-js does not
10630 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
10631 // Node converts strings with length <
2 to ''
10632 if (str.length <
2) return ''
10633 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
10634 while (str.length %
4 !==
0) {
10640 function stringtrim (str) {
10641 if (str.trim) return str.trim()
10642 return str.replace(/^\s+|\s+$/g, '')
10645 function toHex (n) {
10646 if (n <
16) return '
0' + n.toString(
16)
10647 return n.toString(
16)
10650 function utf8ToBytes (string, units) {
10651 units = units || Infinity
10653 var length = string.length
10654 var leadSurrogate = null
10657 for (var i =
0; i < length; i++) {
10658 codePoint = string.charCodeAt(i)
10660 // is surrogate component
10661 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
10662 // last char was a lead
10663 if (!leadSurrogate) {
10665 if (codePoint
> 0xDBFF) {
10666 // unexpected trail
10667 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10670 } else if (i +
1 === length) {
10672 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10677 leadSurrogate = codePoint
10682 //
2 leads in a row
10683 if (codePoint <
0xDC00) {
10684 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10685 leadSurrogate = codePoint
10689 // valid surrogate pair
10690 codePoint = leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00 |
0x10000
10692 } else if (leadSurrogate) {
10693 // valid bmp char, but last char was a lead
10694 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10697 leadSurrogate = null
10700 if (codePoint <
0x80) {
10701 if ((units -=
1) <
0) break
10702 bytes.push(codePoint)
10703 } else if (codePoint <
0x800) {
10704 if ((units -=
2) <
0) break
10706 codePoint
>> 0x6 |
0xC0,
10707 codePoint &
0x3F |
0x80
10709 } else if (codePoint <
0x10000) {
10710 if ((units -=
3) <
0) break
10712 codePoint
>> 0xC |
0xE0,
10713 codePoint
>> 0x6 &
0x3F |
0x80,
10714 codePoint &
0x3F |
0x80
10716 } else if (codePoint <
0x110000) {
10717 if ((units -=
4) <
0) break
10719 codePoint
>> 0x12 |
0xF0,
10720 codePoint
>> 0xC &
0x3F |
0x80,
10721 codePoint
>> 0x6 &
0x3F |
0x80,
10722 codePoint &
0x3F |
0x80
10725 throw new Error('Invalid code point')
10732 function asciiToBytes (str) {
10734 for (var i =
0; i < str.length; i++) {
10735 // Node's code seems to be doing this and not &
0x7F..
10736 byteArray.push(str.charCodeAt(i) &
0xFF)
10741 function utf16leToBytes (str, units) {
10744 for (var i =
0; i < str.length; i++) {
10745 if ((units -=
2) <
0) break
10747 c = str.charCodeAt(i)
10757 function base64ToBytes (str) {
10758 return base64.toByteArray(base64clean(str))
10761 function blitBuffer (src, dst, offset, length) {
10762 for (var i =
0; i < length; i++) {
10763 if ((i + offset
>= dst.length) || (i
>= src.length)) break
10764 dst[i + offset] = src[i]
10769 },{"base64-js":
8,"ieee754":
9,"is-array":
10}],
8:[function(require,module,exports){
10770 var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
10772 ;(function (exports) {
10775 var Arr = (typeof Uint8Array !== 'undefined')
10779 var PLUS = '+'.charCodeAt(
0)
10780 var SLASH = '/'.charCodeAt(
0)
10781 var NUMBER = '
0'.charCodeAt(
0)
10782 var LOWER = 'a'.charCodeAt(
0)
10783 var UPPER = 'A'.charCodeAt(
0)
10784 var PLUS_URL_SAFE = '-'.charCodeAt(
0)
10785 var SLASH_URL_SAFE = '_'.charCodeAt(
0)
10787 function decode (elt) {
10788 var code = elt.charCodeAt(
0)
10789 if (code === PLUS ||
10790 code === PLUS_URL_SAFE)
10792 if (code === SLASH ||
10793 code === SLASH_URL_SAFE)
10796 return -
1 //no match
10797 if (code < NUMBER +
10)
10798 return code - NUMBER +
26 +
26
10799 if (code < UPPER +
26)
10800 return code - UPPER
10801 if (code < LOWER +
26)
10802 return code - LOWER +
26
10805 function b64ToByteArray (b64) {
10806 var i, j, l, tmp, placeHolders, arr
10808 if (b64.length %
4 > 0) {
10809 throw new Error('Invalid string. Length must be a multiple of
4')
10812 // the number of equal signs (place holders)
10813 // if there are two placeholders, than the two characters before it
10814 // represent one byte
10815 // if there is only one, then the three characters before it represent
2 bytes
10816 // this is just a cheap hack to not do indexOf twice
10817 var len = b64.length
10818 placeHolders = '=' === b64.charAt(len -
2) ?
2 : '=' === b64.charAt(len -
1) ?
1 :
0
10820 // base64 is
4/
3 + up to two characters of the original data
10821 arr = new Arr(b64.length *
3 /
4 - placeHolders)
10823 // if there are placeholders, only get up to the last complete
4 chars
10824 l = placeHolders
> 0 ? b64.length -
4 : b64.length
10828 function push (v) {
10832 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
10833 tmp = (decode(b64.charAt(i)) <<
18) | (decode(b64.charAt(i +
1)) <<
12) | (decode(b64.charAt(i +
2)) <<
6) | decode(b64.charAt(i +
3))
10834 push((tmp &
0xFF0000)
>> 16)
10835 push((tmp &
0xFF00)
>> 8)
10839 if (placeHolders ===
2) {
10840 tmp = (decode(b64.charAt(i)) <<
2) | (decode(b64.charAt(i +
1))
>> 4)
10842 } else if (placeHolders ===
1) {
10843 tmp = (decode(b64.charAt(i)) <<
10) | (decode(b64.charAt(i +
1)) <<
4) | (decode(b64.charAt(i +
2))
>> 2)
10844 push((tmp
>> 8) &
0xFF)
10851 function uint8ToBase64 (uint8) {
10853 extraBytes = uint8.length %
3, // if we have
1 byte left, pad
2 bytes
10857 function encode (num) {
10858 return lookup.charAt(num)
10861 function tripletToBase64 (num) {
10862 return encode(num
>> 18 &
0x3F) + encode(num
>> 12 &
0x3F) + encode(num
>> 6 &
0x3F) + encode(num &
0x3F)
10865 // go through the array every three bytes, we'll deal with trailing stuff later
10866 for (i =
0, length = uint8.length - extraBytes; i < length; i +=
3) {
10867 temp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
10868 output += tripletToBase64(temp)
10871 // pad the end with zeros, but make sure to not forget the extra bytes
10872 switch (extraBytes) {
10874 temp = uint8[uint8.length -
1]
10875 output += encode(temp
>> 2)
10876 output += encode((temp <<
4) &
0x3F)
10880 temp = (uint8[uint8.length -
2] <<
8) + (uint8[uint8.length -
1])
10881 output += encode(temp
>> 10)
10882 output += encode((temp
>> 4) &
0x3F)
10883 output += encode((temp <<
2) &
0x3F)
10891 exports.toByteArray = b64ToByteArray
10892 exports.fromByteArray = uint8ToBase64
10893 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
10895 },{}],
9:[function(require,module,exports){
10896 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10898 var eLen = nBytes *
8 - mLen -
1
10899 var eMax = (
1 << eLen) -
1
10900 var eBias = eMax
>> 1
10902 var i = isLE ? (nBytes -
1) :
0
10903 var d = isLE ? -
1 :
1
10904 var s = buffer[offset + i]
10908 e = s & ((
1 << (-nBits)) -
1)
10911 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10913 m = e & ((
1 << (-nBits)) -
1)
10916 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10920 } else if (e === eMax) {
10921 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10923 m = m + Math.pow(
2, mLen)
10926 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10929 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10931 var eLen = nBytes *
8 - mLen -
1
10932 var eMax = (
1 << eLen) -
1
10933 var eBias = eMax
>> 1
10934 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10935 var i = isLE ?
0 : (nBytes -
1)
10936 var d = isLE ?
1 : -
1
10937 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10939 value = Math.abs(value)
10941 if (isNaN(value) || value === Infinity) {
10942 m = isNaN(value) ?
1 :
0
10945 e = Math.floor(Math.log(value) / Math.LN2)
10946 if (value * (c = Math.pow(
2, -e)) <
1) {
10950 if (e + eBias
>=
1) {
10953 value += rt * Math.pow(
2,
1 - eBias)
10955 if (value * c
>=
2) {
10960 if (e + eBias
>= eMax) {
10963 } else if (e + eBias
>=
1) {
10964 m = (value * c -
1) * Math.pow(
2, mLen)
10967 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10972 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10974 e = (e << mLen) | m
10976 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10978 buffer[offset + i - d] |= s *
128
10981 },{}],
10:[function(require,module,exports){
10987 var isArray = Array.isArray;
10993 var str = Object.prototype.toString;
10996 * Whether or not the given `val`
11003 * isArray(arguments);
11008 * @param {mixed} val
11012 module.exports = isArray || function (val) {
11013 return !! val && '[object Array]' == str.call(val);
11016 },{}],
11:[function(require,module,exports){
11017 // Copyright Joyent, Inc. and other Node contributors.
11019 // Permission is hereby granted, free of charge, to any person obtaining a
11020 // copy of this software and associated documentation files (the
11021 // "Software"), to deal in the Software without restriction, including
11022 // without limitation the rights to use, copy, modify, merge, publish,
11023 // distribute, sublicense, and/or sell copies of the Software, and to permit
11024 // persons to whom the Software is furnished to do so, subject to the
11025 // following conditions:
11027 // The above copyright notice and this permission notice shall be included
11028 // in all copies or substantial portions of the Software.
11030 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11031 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11032 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11033 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11034 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11035 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11036 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11038 function EventEmitter() {
11039 this._events = this._events || {};
11040 this._maxListeners = this._maxListeners || undefined;
11042 module.exports = EventEmitter;
11044 // Backwards-compat with node
0.10.x
11045 EventEmitter.EventEmitter = EventEmitter;
11047 EventEmitter.prototype._events = undefined;
11048 EventEmitter.prototype._maxListeners = undefined;
11050 // By default EventEmitters will print a warning if more than
10 listeners are
11051 // added to it. This is a useful default which helps finding memory leaks.
11052 EventEmitter.defaultMaxListeners =
10;
11054 // Obviously not all Emitters should be limited to
10. This function allows
11055 // that to be increased. Set to zero for unlimited.
11056 EventEmitter.prototype.setMaxListeners = function(n) {
11057 if (!isNumber(n) || n <
0 || isNaN(n))
11058 throw TypeError('n must be a positive number');
11059 this._maxListeners = n;
11063 EventEmitter.prototype.emit = function(type) {
11064 var er, handler, len, args, i, listeners;
11069 // If there is no 'error' event listener then throw.
11070 if (type === 'error') {
11071 if (!this._events.error ||
11072 (isObject(this._events.error) && !this._events.error.length)) {
11074 if (er instanceof Error) {
11075 throw er; // Unhandled 'error' event
11077 throw TypeError('Uncaught, unspecified "error" event.');
11081 handler = this._events[type];
11083 if (isUndefined(handler))
11086 if (isFunction(handler)) {
11087 switch (arguments.length) {
11090 handler.call(this);
11093 handler.call(this, arguments[
1]);
11096 handler.call(this, arguments[
1], arguments[
2]);
11100 len = arguments.length;
11101 args = new Array(len -
1);
11102 for (i =
1; i < len; i++)
11103 args[i -
1] = arguments[i];
11104 handler.apply(this, args);
11106 } else if (isObject(handler)) {
11107 len = arguments.length;
11108 args = new Array(len -
1);
11109 for (i =
1; i < len; i++)
11110 args[i -
1] = arguments[i];
11112 listeners = handler.slice();
11113 len = listeners.length;
11114 for (i =
0; i < len; i++)
11115 listeners[i].apply(this, args);
11121 EventEmitter.prototype.addListener = function(type, listener) {
11124 if (!isFunction(listener))
11125 throw TypeError('listener must be a function');
11130 // To avoid recursion in the case that type === "newListener"! Before
11131 // adding it to the listeners, first emit "newListener".
11132 if (this._events.newListener)
11133 this.emit('newListener', type,
11134 isFunction(listener.listener) ?
11135 listener.listener : listener);
11137 if (!this._events[type])
11138 // Optimize the case of one listener. Don't need the extra array object.
11139 this._events[type] = listener;
11140 else if (isObject(this._events[type]))
11141 // If we've already got an array, just append.
11142 this._events[type].push(listener);
11144 // Adding the second element, need to change to array.
11145 this._events[type] = [this._events[type], listener];
11147 // Check for listener leak
11148 if (isObject(this._events[type]) && !this._events[type].warned) {
11150 if (!isUndefined(this._maxListeners)) {
11151 m = this._maxListeners;
11153 m = EventEmitter.defaultMaxListeners;
11156 if (m && m
> 0 && this._events[type].length
> m) {
11157 this._events[type].warned = true;
11158 console.error('(node) warning: possible EventEmitter memory ' +
11159 'leak detected. %d listeners added. ' +
11160 'Use emitter.setMaxListeners() to increase limit.',
11161 this._events[type].length);
11162 if (typeof console.trace === 'function') {
11163 // not supported in IE
10
11172 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
11174 EventEmitter.prototype.once = function(type, listener) {
11175 if (!isFunction(listener))
11176 throw TypeError('listener must be a function');
11181 this.removeListener(type, g);
11185 listener.apply(this, arguments);
11189 g.listener = listener;
11195 // emits a 'removeListener' event iff the listener was removed
11196 EventEmitter.prototype.removeListener = function(type, listener) {
11197 var list, position, length, i;
11199 if (!isFunction(listener))
11200 throw TypeError('listener must be a function');
11202 if (!this._events || !this._events[type])
11205 list = this._events[type];
11206 length = list.length;
11209 if (list === listener ||
11210 (isFunction(list.listener) && list.listener === listener)) {
11211 delete this._events[type];
11212 if (this._events.removeListener)
11213 this.emit('removeListener', type, listener);
11215 } else if (isObject(list)) {
11216 for (i = length; i--
> 0;) {
11217 if (list[i] === listener ||
11218 (list[i].listener && list[i].listener === listener)) {
11227 if (list.length ===
1) {
11229 delete this._events[type];
11231 list.splice(position,
1);
11234 if (this._events.removeListener)
11235 this.emit('removeListener', type, listener);
11241 EventEmitter.prototype.removeAllListeners = function(type) {
11242 var key, listeners;
11247 // not listening for removeListener, no need to emit
11248 if (!this._events.removeListener) {
11249 if (arguments.length ===
0)
11251 else if (this._events[type])
11252 delete this._events[type];
11256 // emit removeListener for all listeners on all events
11257 if (arguments.length ===
0) {
11258 for (key in this._events) {
11259 if (key === 'removeListener') continue;
11260 this.removeAllListeners(key);
11262 this.removeAllListeners('removeListener');
11267 listeners = this._events[type];
11269 if (isFunction(listeners)) {
11270 this.removeListener(type, listeners);
11273 while (listeners.length)
11274 this.removeListener(type, listeners[listeners.length -
1]);
11276 delete this._events[type];
11281 EventEmitter.prototype.listeners = function(type) {
11283 if (!this._events || !this._events[type])
11285 else if (isFunction(this._events[type]))
11286 ret = [this._events[type]];
11288 ret = this._events[type].slice();
11292 EventEmitter.listenerCount = function(emitter, type) {
11294 if (!emitter._events || !emitter._events[type])
11296 else if (isFunction(emitter._events[type]))
11299 ret = emitter._events[type].length;
11303 function isFunction(arg) {
11304 return typeof arg === 'function';
11307 function isNumber(arg) {
11308 return typeof arg === 'number';
11311 function isObject(arg) {
11312 return typeof arg === 'object' && arg !== null;
11315 function isUndefined(arg) {
11316 return arg === void
0;
11319 },{}],
12:[function(require,module,exports){
11320 if (typeof Object.create === 'function') {
11321 // implementation from standard node.js 'util' module
11322 module.exports = function inherits(ctor, superCtor) {
11323 ctor.super_ = superCtor
11324 ctor.prototype = Object.create(superCtor.prototype, {
11334 // old school shim for old browsers
11335 module.exports = function inherits(ctor, superCtor) {
11336 ctor.super_ = superCtor
11337 var TempCtor = function () {}
11338 TempCtor.prototype = superCtor.prototype
11339 ctor.prototype = new TempCtor()
11340 ctor.prototype.constructor = ctor
11344 },{}],
13:[function(require,module,exports){
11345 module.exports = Array.isArray || function (arr) {
11346 return Object.prototype.toString.call(arr) == '[object Array]';
11349 },{}],
14:[function(require,module,exports){
11350 // shim for using process in browser
11352 var process = module.exports = {};
11354 var draining = false;
11356 var queueIndex = -
1;
11358 function cleanUpNextTick() {
11360 if (currentQueue.length) {
11361 queue = currentQueue.concat(queue);
11365 if (queue.length) {
11370 function drainQueue() {
11374 var timeout = setTimeout(cleanUpNextTick);
11377 var len = queue.length;
11379 currentQueue = queue;
11381 while (++queueIndex < len) {
11382 currentQueue[queueIndex].run();
11385 len = queue.length;
11387 currentQueue = null;
11389 clearTimeout(timeout);
11392 process.nextTick = function (fun) {
11393 var args = new Array(arguments.length -
1);
11394 if (arguments.length
> 1) {
11395 for (var i =
1; i < arguments.length; i++) {
11396 args[i -
1] = arguments[i];
11399 queue.push(new Item(fun, args));
11400 if (queue.length ===
1 && !draining) {
11401 setTimeout(drainQueue,
0);
11405 // v8 likes predictible objects
11406 function Item(fun, array) {
11408 this.array = array;
11410 Item.prototype.run = function () {
11411 this.fun.apply(null, this.array);
11413 process.title = 'browser';
11414 process.browser = true;
11417 process.version = ''; // empty string to avoid regexp issues
11418 process.versions = {};
11423 process.addListener = noop;
11424 process.once = noop;
11425 process.off = noop;
11426 process.removeListener = noop;
11427 process.removeAllListeners = noop;
11428 process.emit = noop;
11430 process.binding = function (name) {
11431 throw new Error('process.binding is not supported');
11435 process.cwd = function () { return '/' };
11436 process.chdir = function (dir) {
11437 throw new Error('process.chdir is not supported');
11439 process.umask = function() { return
0; };
11441 },{}],
15:[function(require,module,exports){
11442 module.exports = require(
"./lib/_stream_duplex.js")
11444 },{
"./lib/_stream_duplex.js":
16}],
16:[function(require,module,exports){
11445 (function (process){
11446 // Copyright Joyent, Inc. and other Node contributors.
11448 // Permission is hereby granted, free of charge, to any person obtaining a
11449 // copy of this software and associated documentation files (the
11450 //
"Software"), to deal in the Software without restriction, including
11451 // without limitation the rights to use, copy, modify, merge, publish,
11452 // distribute, sublicense, and/or sell copies of the Software, and to permit
11453 // persons to whom the Software is furnished to do so, subject to the
11454 // following conditions:
11456 // The above copyright notice and this permission notice shall be included
11457 // in all copies or substantial portions of the Software.
11459 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11460 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11461 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11462 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11463 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11464 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11465 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11467 // a duplex stream is just a stream that is both readable and writable.
11468 // Since JS doesn't have multiple prototypal inheritance, this class
11469 // prototypally inherits from Readable, and then parasitically from
11472 module.exports = Duplex;
11475 var objectKeys = Object.keys || function (obj) {
11477 for (var key in obj) keys.push(key);
11484 var util = require('core-util-is');
11485 util.inherits = require('inherits');
11488 var Readable = require('./_stream_readable');
11489 var Writable = require('./_stream_writable');
11491 util.inherits(Duplex, Readable);
11493 forEach(objectKeys(Writable.prototype), function(method) {
11494 if (!Duplex.prototype[method])
11495 Duplex.prototype[method] = Writable.prototype[method];
11498 function Duplex(options) {
11499 if (!(this instanceof Duplex))
11500 return new Duplex(options);
11502 Readable.call(this, options);
11503 Writable.call(this, options);
11505 if (options && options.readable === false)
11506 this.readable = false;
11508 if (options && options.writable === false)
11509 this.writable = false;
11511 this.allowHalfOpen = true;
11512 if (options && options.allowHalfOpen === false)
11513 this.allowHalfOpen = false;
11515 this.once('end', onend);
11518 // the no-half-open enforcer
11520 // if we allow half-open state, or if the writable side ended,
11522 if (this.allowHalfOpen || this._writableState.ended)
11525 // no more data can be written.
11526 // But allow more writes to happen in this tick.
11527 process.nextTick(this.end.bind(this));
11530 function forEach (xs, f) {
11531 for (var i =
0, l = xs.length; i < l; i++) {
11536 }).call(this,require('_process'))
11537 },{"./_stream_readable":
18,"./_stream_writable":
20,"_process":
14,"core-util-is":
21,"inherits":
12}],
17:[function(require,module,exports){
11538 // Copyright Joyent, Inc. and other Node contributors.
11540 // Permission is hereby granted, free of charge, to any person obtaining a
11541 // copy of this software and associated documentation files (the
11542 // "Software"), to deal in the Software without restriction, including
11543 // without limitation the rights to use, copy, modify, merge, publish,
11544 // distribute, sublicense, and/or sell copies of the Software, and to permit
11545 // persons to whom the Software is furnished to do so, subject to the
11546 // following conditions:
11548 // The above copyright notice and this permission notice shall be included
11549 // in all copies or substantial portions of the Software.
11551 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11552 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11553 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11554 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11555 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11556 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11557 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11559 // a passthrough stream.
11560 // basically just the most minimal sort of Transform stream.
11561 // Every written chunk gets output as-is.
11563 module.exports = PassThrough;
11565 var Transform = require('./_stream_transform');
11568 var util = require('core-util-is');
11569 util.inherits = require('inherits');
11572 util.inherits(PassThrough, Transform);
11574 function PassThrough(options) {
11575 if (!(this instanceof PassThrough))
11576 return new PassThrough(options);
11578 Transform.call(this, options);
11581 PassThrough.prototype._transform = function(chunk, encoding, cb) {
11585 },{"./_stream_transform":
19,"core-util-is":
21,"inherits":
12}],
18:[function(require,module,exports){
11586 (function (process){
11587 // Copyright Joyent, Inc. and other Node contributors.
11589 // Permission is hereby granted, free of charge, to any person obtaining a
11590 // copy of this software and associated documentation files (the
11591 // "Software"), to deal in the Software without restriction, including
11592 // without limitation the rights to use, copy, modify, merge, publish,
11593 // distribute, sublicense, and/or sell copies of the Software, and to permit
11594 // persons to whom the Software is furnished to do so, subject to the
11595 // following conditions:
11597 // The above copyright notice and this permission notice shall be included
11598 // in all copies or substantial portions of the Software.
11600 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11601 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11602 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11603 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11604 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11605 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11606 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11608 module.exports = Readable;
11611 var isArray = require('isarray');
11616 var Buffer = require('buffer').Buffer;
11619 Readable.ReadableState = ReadableState;
11621 var EE = require('events').EventEmitter;
11624 if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
11625 return emitter.listeners(type).length;
11629 var Stream = require('stream');
11632 var util = require('core-util-is');
11633 util.inherits = require('inherits');
11640 var debug = require('util');
11641 if (debug && debug.debuglog) {
11642 debug = debug.debuglog('stream');
11644 debug = function () {};
11649 util.inherits(Readable, Stream);
11651 function ReadableState(options, stream) {
11652 var Duplex = require('./_stream_duplex');
11654 options = options || {};
11656 // the point at which it stops calling _read() to fill the buffer
11657 // Note:
0 is a valid value, means "don't call _read preemptively ever"
11658 var hwm = options.highWaterMark;
11659 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
11660 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
11663 this.highWaterMark = ~~this.highWaterMark;
11668 this.pipesCount =
0;
11669 this.flowing = null;
11670 this.ended = false;
11671 this.endEmitted = false;
11672 this.reading = false;
11674 // a flag to be able to tell if the onwrite cb is called immediately,
11675 // or on a later tick. We set this to true at first, because any
11676 // actions that shouldn't happen until "later" should generally also
11677 // not happen before the first write call.
11680 // whenever we return null, then we set a flag to say
11681 // that we're awaiting a 'readable' event emission.
11682 this.needReadable = false;
11683 this.emittedReadable = false;
11684 this.readableListening = false;
11687 // object stream flag. Used to make read(n) ignore n and to
11688 // make all the buffer merging and length checks go away
11689 this.objectMode = !!options.objectMode;
11691 if (stream instanceof Duplex)
11692 this.objectMode = this.objectMode || !!options.readableObjectMode;
11694 // Crypto is kind of old and crusty. Historically, its default string
11695 // encoding is 'binary' so we have to make this configurable.
11696 // Everything else in the universe uses 'utf8', though.
11697 this.defaultEncoding = options.defaultEncoding || 'utf8';
11699 // when piping, we only care about 'readable' events that happen
11700 // after read()ing all the bytes and not getting any pushback.
11701 this.ranOut = false;
11703 // the number of writers that are awaiting a drain event in .pipe()s
11704 this.awaitDrain =
0;
11706 // if true, a maybeReadMore has been scheduled
11707 this.readingMore = false;
11709 this.decoder = null;
11710 this.encoding = null;
11711 if (options.encoding) {
11712 if (!StringDecoder)
11713 StringDecoder = require('string_decoder/').StringDecoder;
11714 this.decoder = new StringDecoder(options.encoding);
11715 this.encoding = options.encoding;
11719 function Readable(options) {
11720 var Duplex = require('./_stream_duplex');
11722 if (!(this instanceof Readable))
11723 return new Readable(options);
11725 this._readableState = new ReadableState(options, this);
11728 this.readable = true;
11733 // Manually shove something into the read() buffer.
11734 // This returns true if the highWaterMark has not been hit yet,
11735 // similar to how Writable.write() returns true if you should
11736 // write() some more.
11737 Readable.prototype.push = function(chunk, encoding) {
11738 var state = this._readableState;
11740 if (util.isString(chunk) && !state.objectMode) {
11741 encoding = encoding || state.defaultEncoding;
11742 if (encoding !== state.encoding) {
11743 chunk = new Buffer(chunk, encoding);
11748 return readableAddChunk(this, state, chunk, encoding, false);
11751 // Unshift should *always* be something directly out of read()
11752 Readable.prototype.unshift = function(chunk) {
11753 var state = this._readableState;
11754 return readableAddChunk(this, state, chunk, '', true);
11757 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
11758 var er = chunkInvalid(state, chunk);
11760 stream.emit('error', er);
11761 } else if (util.isNullOrUndefined(chunk)) {
11762 state.reading = false;
11764 onEofChunk(stream, state);
11765 } else if (state.objectMode || chunk && chunk.length
> 0) {
11766 if (state.ended && !addToFront) {
11767 var e = new Error('stream.push() after EOF');
11768 stream.emit('error', e);
11769 } else if (state.endEmitted && addToFront) {
11770 var e = new Error('stream.unshift() after end event');
11771 stream.emit('error', e);
11773 if (state.decoder && !addToFront && !encoding)
11774 chunk = state.decoder.write(chunk);
11777 state.reading = false;
11779 // if we want the data now, just emit it.
11780 if (state.flowing && state.length ===
0 && !state.sync) {
11781 stream.emit('data', chunk);
11784 // update the buffer info.
11785 state.length += state.objectMode ?
1 : chunk.length;
11787 state.buffer.unshift(chunk);
11789 state.buffer.push(chunk);
11791 if (state.needReadable)
11792 emitReadable(stream);
11795 maybeReadMore(stream, state);
11797 } else if (!addToFront) {
11798 state.reading = false;
11801 return needMoreData(state);
11806 // if it's past the high water mark, we can push in some more.
11807 // Also, if we have no data yet, we can stand some
11808 // more bytes. This is to work around cases where hwm=
0,
11809 // such as the repl. Also, if the push() triggered a
11810 // readable event, and the user called read(largeNumber) such that
11811 // needReadable was set, then we ought to push more, so that another
11812 // 'readable' event will be triggered.
11813 function needMoreData(state) {
11814 return !state.ended &&
11815 (state.needReadable ||
11816 state.length < state.highWaterMark ||
11817 state.length ===
0);
11820 // backwards compatibility.
11821 Readable.prototype.setEncoding = function(enc) {
11822 if (!StringDecoder)
11823 StringDecoder = require('string_decoder/').StringDecoder;
11824 this._readableState.decoder = new StringDecoder(enc);
11825 this._readableState.encoding = enc;
11829 // Don't raise the hwm
> 128MB
11830 var MAX_HWM =
0x800000;
11831 function roundUpToNextPowerOf2(n) {
11832 if (n
>= MAX_HWM) {
11835 // Get the next highest power of
2
11837 for (var p =
1; p <
32; p <<=
1) n |= n
>> p;
11843 function howMuchToRead(n, state) {
11844 if (state.length ===
0 && state.ended)
11847 if (state.objectMode)
11848 return n ===
0 ?
0 :
1;
11850 if (isNaN(n) || util.isNull(n)) {
11851 // only flow one buffer at a time
11852 if (state.flowing && state.buffer.length)
11853 return state.buffer[
0].length;
11855 return state.length;
11861 // If we're asking for more than the target buffer level,
11862 // then raise the water mark. Bump up to the next highest
11863 // power of
2, to prevent increasing it excessively in tiny
11865 if (n
> state.highWaterMark)
11866 state.highWaterMark = roundUpToNextPowerOf2(n);
11868 // don't have that much. return null, unless we've ended.
11869 if (n
> state.length) {
11870 if (!state.ended) {
11871 state.needReadable = true;
11874 return state.length;
11880 // you can override either this method, or the async _read(n) below.
11881 Readable.prototype.read = function(n) {
11883 var state = this._readableState;
11886 if (!util.isNumber(n) || n
> 0)
11887 state.emittedReadable = false;
11889 // if we're doing read(
0) to trigger a readable event, but we
11890 // already have a bunch of data in the buffer, then just trigger
11891 // the 'readable' event and move on.
11893 state.needReadable &&
11894 (state.length
>= state.highWaterMark || state.ended)) {
11895 debug('read: emitReadable', state.length, state.ended);
11896 if (state.length ===
0 && state.ended)
11899 emitReadable(this);
11903 n = howMuchToRead(n, state);
11905 // if we've ended, and we're now clear, then finish it up.
11906 if (n ===
0 && state.ended) {
11907 if (state.length ===
0)
11912 // All the actual chunk generation logic needs to be
11913 // *below* the call to _read. The reason is that in certain
11914 // synthetic stream cases, such as passthrough streams, _read
11915 // may be a completely synchronous operation which may change
11916 // the state of the read buffer, providing enough data when
11917 // before there was *not* enough.
11919 // So, the steps are:
11920 //
1. Figure out what the state of things will be after we do
11921 // a read from the buffer.
11923 //
2. If that resulting state will trigger a _read, then call _read.
11924 // Note that this may be asynchronous, or synchronous. Yes, it is
11925 // deeply ugly to write APIs this way, but that still doesn't mean
11926 // that the Readable class should behave improperly, as streams are
11927 // designed to be sync/async agnostic.
11928 // Take note if the _read call is sync or async (ie, if the read call
11929 // has returned yet), so that we know whether or not it's safe to emit
11932 //
3. Actually pull the requested chunks out of the buffer and return.
11934 // if we need a readable event, then we need to do some reading.
11935 var doRead = state.needReadable;
11936 debug('need readable', doRead);
11938 // if we currently have less than the highWaterMark, then also read some
11939 if (state.length ===
0 || state.length - n < state.highWaterMark) {
11941 debug('length less than watermark', doRead);
11944 // however, if we've ended, then there's no point, and if we're already
11945 // reading, then it's unnecessary.
11946 if (state.ended || state.reading) {
11948 debug('reading or ended', doRead);
11953 state.reading = true;
11955 // if the length is currently zero, then we *need* a readable event.
11956 if (state.length ===
0)
11957 state.needReadable = true;
11958 // call internal read method
11959 this._read(state.highWaterMark);
11960 state.sync = false;
11963 // If _read pushed data synchronously, then `reading` will be false,
11964 // and we need to re-evaluate how much data we can return to the user.
11965 if (doRead && !state.reading)
11966 n = howMuchToRead(nOrig, state);
11970 ret = fromList(n, state);
11974 if (util.isNull(ret)) {
11975 state.needReadable = true;
11981 // If we have nothing in the buffer, then we want to know
11982 // as soon as we *do* get something into the buffer.
11983 if (state.length ===
0 && !state.ended)
11984 state.needReadable = true;
11986 // If we tried to read() past the EOF, then emit end on the next tick.
11987 if (nOrig !== n && state.ended && state.length ===
0)
11990 if (!util.isNull(ret))
11991 this.emit('data', ret);
11996 function chunkInvalid(state, chunk) {
11998 if (!util.isBuffer(chunk) &&
11999 !util.isString(chunk) &&
12000 !util.isNullOrUndefined(chunk) &&
12001 !state.objectMode) {
12002 er = new TypeError('Invalid non-string/buffer chunk');
12008 function onEofChunk(stream, state) {
12009 if (state.decoder && !state.ended) {
12010 var chunk = state.decoder.end();
12011 if (chunk && chunk.length) {
12012 state.buffer.push(chunk);
12013 state.length += state.objectMode ?
1 : chunk.length;
12016 state.ended = true;
12018 // emit 'readable' now to make sure it gets picked up.
12019 emitReadable(stream);
12022 // Don't emit readable right away in sync mode, because this can trigger
12023 // another read() call =
> stack overflow. This way, it might trigger
12024 // a nextTick recursion warning, but that's not so bad.
12025 function emitReadable(stream) {
12026 var state = stream._readableState;
12027 state.needReadable = false;
12028 if (!state.emittedReadable) {
12029 debug('emitReadable', state.flowing);
12030 state.emittedReadable = true;
12032 process.nextTick(function() {
12033 emitReadable_(stream);
12036 emitReadable_(stream);
12040 function emitReadable_(stream) {
12041 debug('emit readable');
12042 stream.emit('readable');
12047 // at this point, the user has presumably seen the 'readable' event,
12048 // and called read() to consume some data. that may have triggered
12049 // in turn another _read(n) call, in which case reading = true if
12050 // it's in progress.
12051 // However, if we're not ended, or reading, and the length < hwm,
12052 // then go ahead and try to read some more preemptively.
12053 function maybeReadMore(stream, state) {
12054 if (!state.readingMore) {
12055 state.readingMore = true;
12056 process.nextTick(function() {
12057 maybeReadMore_(stream, state);
12062 function maybeReadMore_(stream, state) {
12063 var len = state.length;
12064 while (!state.reading && !state.flowing && !state.ended &&
12065 state.length < state.highWaterMark) {
12066 debug('maybeReadMore read
0');
12068 if (len === state.length)
12069 // didn't get any data, stop spinning.
12072 len = state.length;
12074 state.readingMore = false;
12077 // abstract method. to be overridden in specific implementation classes.
12078 // call cb(er, data) where data is <= n in length.
12079 // for virtual (non-string, non-buffer) streams, "length" is somewhat
12080 // arbitrary, and perhaps not very meaningful.
12081 Readable.prototype._read = function(n) {
12082 this.emit('error', new Error('not implemented'));
12085 Readable.prototype.pipe = function(dest, pipeOpts) {
12087 var state = this._readableState;
12089 switch (state.pipesCount) {
12091 state.pipes = dest;
12094 state.pipes = [state.pipes, dest];
12097 state.pipes.push(dest);
12100 state.pipesCount +=
1;
12101 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
12103 var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
12104 dest !== process.stdout &&
12105 dest !== process.stderr;
12107 var endFn = doEnd ? onend : cleanup;
12108 if (state.endEmitted)
12109 process.nextTick(endFn);
12111 src.once('end', endFn);
12113 dest.on('unpipe', onunpipe);
12114 function onunpipe(readable) {
12116 if (readable === src) {
12126 // when the dest drains, it reduces the awaitDrain counter
12127 // on the source. This would be more elegant with a .once()
12128 // handler in flow(), but adding and removing repeatedly is
12130 var ondrain = pipeOnDrain(src);
12131 dest.on('drain', ondrain);
12133 function cleanup() {
12135 // cleanup event handlers once the pipe is broken
12136 dest.removeListener('close', onclose);
12137 dest.removeListener('finish', onfinish);
12138 dest.removeListener('drain', ondrain);
12139 dest.removeListener('error', onerror);
12140 dest.removeListener('unpipe', onunpipe);
12141 src.removeListener('end', onend);
12142 src.removeListener('end', cleanup);
12143 src.removeListener('data', ondata);
12145 // if the reader is waiting for a drain event from this
12146 // specific writer, then it would cause it to never start
12148 // So, if this is awaiting a drain, then we just call it now.
12149 // If we don't know, then assume that we are waiting for one.
12150 if (state.awaitDrain &&
12151 (!dest._writableState || dest._writableState.needDrain))
12155 src.on('data', ondata);
12156 function ondata(chunk) {
12158 var ret = dest.write(chunk);
12159 if (false === ret) {
12160 debug('false write response, pause',
12161 src._readableState.awaitDrain);
12162 src._readableState.awaitDrain++;
12167 // if the dest has an error, then stop piping into it.
12168 // however, don't suppress the throwing behavior for this.
12169 function onerror(er) {
12170 debug('onerror', er);
12172 dest.removeListener('error', onerror);
12173 if (EE.listenerCount(dest, 'error') ===
0)
12174 dest.emit('error', er);
12176 // This is a brutally ugly hack to make sure that our error handler
12177 // is attached before any userland ones. NEVER DO THIS.
12178 if (!dest._events || !dest._events.error)
12179 dest.on('error', onerror);
12180 else if (isArray(dest._events.error))
12181 dest._events.error.unshift(onerror);
12183 dest._events.error = [onerror, dest._events.error];
12187 // Both close and finish should trigger unpipe, but only once.
12188 function onclose() {
12189 dest.removeListener('finish', onfinish);
12192 dest.once('close', onclose);
12193 function onfinish() {
12195 dest.removeListener('close', onclose);
12198 dest.once('finish', onfinish);
12200 function unpipe() {
12205 // tell the dest that it's being piped to
12206 dest.emit('pipe', src);
12208 // start the flow if it hasn't been started already.
12209 if (!state.flowing) {
12210 debug('pipe resume');
12217 function pipeOnDrain(src) {
12218 return function() {
12219 var state = src._readableState;
12220 debug('pipeOnDrain', state.awaitDrain);
12221 if (state.awaitDrain)
12222 state.awaitDrain--;
12223 if (state.awaitDrain ===
0 && EE.listenerCount(src, 'data')) {
12224 state.flowing = true;
12231 Readable.prototype.unpipe = function(dest) {
12232 var state = this._readableState;
12234 // if we're not piping anywhere, then do nothing.
12235 if (state.pipesCount ===
0)
12238 // just one destination. most common case.
12239 if (state.pipesCount ===
1) {
12240 // passed in one, but it's not the right one.
12241 if (dest && dest !== state.pipes)
12245 dest = state.pipes;
12248 state.pipes = null;
12249 state.pipesCount =
0;
12250 state.flowing = false;
12252 dest.emit('unpipe', this);
12256 // slow case. multiple pipe destinations.
12260 var dests = state.pipes;
12261 var len = state.pipesCount;
12262 state.pipes = null;
12263 state.pipesCount =
0;
12264 state.flowing = false;
12266 for (var i =
0; i < len; i++)
12267 dests[i].emit('unpipe', this);
12271 // try to find the right one.
12272 var i = indexOf(state.pipes, dest);
12276 state.pipes.splice(i,
1);
12277 state.pipesCount -=
1;
12278 if (state.pipesCount ===
1)
12279 state.pipes = state.pipes[
0];
12281 dest.emit('unpipe', this);
12286 // set up data events if they are asked for
12287 // Ensure readable listeners eventually get something
12288 Readable.prototype.on = function(ev, fn) {
12289 var res = Stream.prototype.on.call(this, ev, fn);
12291 // If listening to data, and it has not explicitly been paused,
12292 // then call resume to start the flow of data on the next tick.
12293 if (ev === 'data' && false !== this._readableState.flowing) {
12297 if (ev === 'readable' && this.readable) {
12298 var state = this._readableState;
12299 if (!state.readableListening) {
12300 state.readableListening = true;
12301 state.emittedReadable = false;
12302 state.needReadable = true;
12303 if (!state.reading) {
12305 process.nextTick(function() {
12306 debug('readable nexttick read
0');
12309 } else if (state.length) {
12310 emitReadable(this, state);
12317 Readable.prototype.addListener = Readable.prototype.on;
12319 // pause() and resume() are remnants of the legacy readable stream API
12320 // If the user uses them, then switch into old mode.
12321 Readable.prototype.resume = function() {
12322 var state = this._readableState;
12323 if (!state.flowing) {
12325 state.flowing = true;
12326 if (!state.reading) {
12327 debug('resume read
0');
12330 resume(this, state);
12335 function resume(stream, state) {
12336 if (!state.resumeScheduled) {
12337 state.resumeScheduled = true;
12338 process.nextTick(function() {
12339 resume_(stream, state);
12344 function resume_(stream, state) {
12345 state.resumeScheduled = false;
12346 stream.emit('resume');
12348 if (state.flowing && !state.reading)
12352 Readable.prototype.pause = function() {
12353 debug('call pause flowing=%j', this._readableState.flowing);
12354 if (false !== this._readableState.flowing) {
12356 this._readableState.flowing = false;
12357 this.emit('pause');
12362 function flow(stream) {
12363 var state = stream._readableState;
12364 debug('flow', state.flowing);
12365 if (state.flowing) {
12367 var chunk = stream.read();
12368 } while (null !== chunk && state.flowing);
12372 // wrap an old-style stream as the async data source.
12373 // This is *not* part of the readable stream interface.
12374 // It is an ugly unfortunate mess of history.
12375 Readable.prototype.wrap = function(stream) {
12376 var state = this._readableState;
12377 var paused = false;
12380 stream.on('end', function() {
12381 debug('wrapped end');
12382 if (state.decoder && !state.ended) {
12383 var chunk = state.decoder.end();
12384 if (chunk && chunk.length)
12391 stream.on('data', function(chunk) {
12392 debug('wrapped data');
12394 chunk = state.decoder.write(chunk);
12395 if (!chunk || !state.objectMode && !chunk.length)
12398 var ret = self.push(chunk);
12405 // proxy all the other methods.
12406 // important when wrapping filters and duplexes.
12407 for (var i in stream) {
12408 if (util.isFunction(stream[i]) && util.isUndefined(this[i])) {
12409 this[i] = function(method) { return function() {
12410 return stream[method].apply(stream, arguments);
12415 // proxy certain important events.
12416 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
12417 forEach(events, function(ev) {
12418 stream.on(ev, self.emit.bind(self, ev));
12421 // when we try to consume some more bytes, simply unpause the
12422 // underlying stream.
12423 self._read = function(n) {
12424 debug('wrapped _read', n);
12436 // exposed for testing purposes only.
12437 Readable._fromList = fromList;
12439 // Pluck off n bytes from an array of buffers.
12440 // Length is the combined lengths of all the buffers in the list.
12441 function fromList(n, state) {
12442 var list = state.buffer;
12443 var length = state.length;
12444 var stringMode = !!state.decoder;
12445 var objectMode = !!state.objectMode;
12448 // nothing in the list, definitely empty.
12449 if (list.length ===
0)
12454 else if (objectMode)
12455 ret = list.shift();
12456 else if (!n || n
>= length) {
12457 // read it all, truncate the array.
12459 ret = list.join('');
12461 ret = Buffer.concat(list, length);
12464 // read just some of it.
12465 if (n < list[
0].length) {
12466 // just take a part of the first list item.
12467 // slice is the same for buffers and strings.
12469 ret = buf.slice(
0, n);
12470 list[
0] = buf.slice(n);
12471 } else if (n === list[
0].length) {
12472 // first list is a perfect match
12473 ret = list.shift();
12476 // we have enough to cover it, but it spans past the first buffer.
12480 ret = new Buffer(n);
12483 for (var i =
0, l = list.length; i < l && c < n; i++) {
12485 var cpy = Math.min(n - c, buf.length);
12488 ret += buf.slice(
0, cpy);
12490 buf.copy(ret, c,
0, cpy);
12492 if (cpy < buf.length)
12493 list[
0] = buf.slice(cpy);
12505 function endReadable(stream) {
12506 var state = stream._readableState;
12508 // If we get here before consuming all the bytes, then that is a
12509 // bug in node. Should never happen.
12510 if (state.length
> 0)
12511 throw new Error('endReadable called on non-empty stream');
12513 if (!state.endEmitted) {
12514 state.ended = true;
12515 process.nextTick(function() {
12516 // Check that we didn't get one last unshift.
12517 if (!state.endEmitted && state.length ===
0) {
12518 state.endEmitted = true;
12519 stream.readable = false;
12520 stream.emit('end');
12526 function forEach (xs, f) {
12527 for (var i =
0, l = xs.length; i < l; i++) {
12532 function indexOf (xs, x) {
12533 for (var i =
0, l = xs.length; i < l; i++) {
12534 if (xs[i] === x) return i;
12539 }).call(this,require('_process'))
12540 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"events":
11,
"inherits":
12,
"isarray":
13,
"stream":
26,
"string_decoder/":
27,
"util":
6}],
19:[function(require,module,exports){
12541 // Copyright Joyent, Inc. and other Node contributors.
12543 // Permission is hereby granted, free of charge, to any person obtaining a
12544 // copy of this software and associated documentation files (the
12545 //
"Software"), to deal in the Software without restriction, including
12546 // without limitation the rights to use, copy, modify, merge, publish,
12547 // distribute, sublicense, and/or sell copies of the Software, and to permit
12548 // persons to whom the Software is furnished to do so, subject to the
12549 // following conditions:
12551 // The above copyright notice and this permission notice shall be included
12552 // in all copies or substantial portions of the Software.
12554 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12555 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12556 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12557 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12558 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12559 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12560 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12563 // a transform stream is a readable/writable stream where you do
12564 // something with the data. Sometimes it's called a
"filter",
12565 // but that's not a great name for it, since that implies a thing where
12566 // some bits pass through, and others are simply ignored. (That would
12567 // be a valid example of a transform, of course.)
12569 // While the output is causally related to the input, it's not a
12570 // necessarily symmetric or synchronous transformation. For example,
12571 // a zlib stream might take multiple plain-text writes(), and then
12572 // emit a single compressed chunk some time in the future.
12574 // Here's how this works:
12576 // The Transform stream has all the aspects of the readable and writable
12577 // stream classes. When you write(chunk), that calls _write(chunk,cb)
12578 // internally, and returns false if there's a lot of pending writes
12579 // buffered up. When you call read(), that calls _read(n) until
12580 // there's enough pending readable data buffered up.
12582 // In a transform stream, the written data is placed in a buffer. When
12583 // _read(n) is called, it transforms the queued up data, calling the
12584 // buffered _write cb's as it consumes chunks. If consuming a single
12585 // written chunk would result in multiple output chunks, then the first
12586 // outputted bit calls the readcb, and subsequent chunks just go into
12587 // the read buffer, and will cause it to emit 'readable' if necessary.
12589 // This way, back-pressure is actually determined by the reading side,
12590 // since _read has to be called to start processing a new chunk. However,
12591 // a pathological inflate type of transform can cause excessive buffering
12592 // here. For example, imagine a stream where every byte of input is
12593 // interpreted as an integer from
0-
255, and then results in that many
12594 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
12595 //
1kb of data being output. In this case, you could write a very small
12596 // amount of input, and end up with a very large amount of output. In
12597 // such a pathological inflating mechanism, there'd be no way to tell
12598 // the system to stop doing the transform. A single
4MB write could
12599 // cause the system to run out of memory.
12601 // However, even in such a pathological case, only a single written chunk
12602 // would be consumed, and then the rest would wait (un-transformed) until
12603 // the results of the previous transformed chunk were consumed.
12605 module.exports = Transform;
12607 var Duplex = require('./_stream_duplex');
12610 var util = require('core-util-is');
12611 util.inherits = require('inherits');
12614 util.inherits(Transform, Duplex);
12617 function TransformState(options, stream) {
12618 this.afterTransform = function(er, data) {
12619 return afterTransform(stream, er, data);
12622 this.needTransform = false;
12623 this.transforming = false;
12624 this.writecb = null;
12625 this.writechunk = null;
12628 function afterTransform(stream, er, data) {
12629 var ts = stream._transformState;
12630 ts.transforming = false;
12632 var cb = ts.writecb;
12635 return stream.emit('error', new Error('no writecb in Transform class'));
12637 ts.writechunk = null;
12640 if (!util.isNullOrUndefined(data))
12646 var rs = stream._readableState;
12647 rs.reading = false;
12648 if (rs.needReadable || rs.length < rs.highWaterMark) {
12649 stream._read(rs.highWaterMark);
12654 function Transform(options) {
12655 if (!(this instanceof Transform))
12656 return new Transform(options);
12658 Duplex.call(this, options);
12660 this._transformState = new TransformState(options, this);
12662 // when the writable side finishes, then flush out anything remaining.
12665 // start out asking for a readable event once data is transformed.
12666 this._readableState.needReadable = true;
12668 // we have implemented the _read method, and done the other things
12669 // that Readable wants before the first _read call, so unset the
12670 // sync guard flag.
12671 this._readableState.sync = false;
12673 this.once('prefinish', function() {
12674 if (util.isFunction(this._flush))
12675 this._flush(function(er) {
12683 Transform.prototype.push = function(chunk, encoding) {
12684 this._transformState.needTransform = false;
12685 return Duplex.prototype.push.call(this, chunk, encoding);
12688 // This is the part where you do stuff!
12689 // override this function in implementation classes.
12690 // 'chunk' is an input chunk.
12692 // Call `push(newChunk)` to pass along transformed output
12693 // to the readable side. You may call 'push' zero or more times.
12695 // Call `cb(err)` when you are done with this chunk. If you pass
12696 // an error, then that'll put the hurt on the whole operation. If you
12697 // never call cb(), then you'll never get another chunk.
12698 Transform.prototype._transform = function(chunk, encoding, cb) {
12699 throw new Error('not implemented');
12702 Transform.prototype._write = function(chunk, encoding, cb) {
12703 var ts = this._transformState;
12705 ts.writechunk = chunk;
12706 ts.writeencoding = encoding;
12707 if (!ts.transforming) {
12708 var rs = this._readableState;
12709 if (ts.needTransform ||
12711 rs.length < rs.highWaterMark)
12712 this._read(rs.highWaterMark);
12716 // Doesn't matter what the args are here.
12717 // _transform does all the work.
12718 // That we got here means that the readable side wants more data.
12719 Transform.prototype._read = function(n) {
12720 var ts = this._transformState;
12722 if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) {
12723 ts.transforming = true;
12724 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
12726 // mark that we need a transform, so that any data that comes in
12727 // will get processed, now that we've asked for it.
12728 ts.needTransform = true;
12733 function done(stream, er) {
12735 return stream.emit('error', er);
12737 // if there's nothing in the write buffer, then that means
12738 // that nothing more will ever be provided
12739 var ws = stream._writableState;
12740 var ts = stream._transformState;
12743 throw new Error('calling transform done when ws.length !=
0');
12745 if (ts.transforming)
12746 throw new Error('calling transform done when still transforming');
12748 return stream.push(null);
12751 },{"./_stream_duplex":
16,"core-util-is":
21,"inherits":
12}],
20:[function(require,module,exports){
12752 (function (process){
12753 // Copyright Joyent, Inc. and other Node contributors.
12755 // Permission is hereby granted, free of charge, to any person obtaining a
12756 // copy of this software and associated documentation files (the
12757 // "Software"), to deal in the Software without restriction, including
12758 // without limitation the rights to use, copy, modify, merge, publish,
12759 // distribute, sublicense, and/or sell copies of the Software, and to permit
12760 // persons to whom the Software is furnished to do so, subject to the
12761 // following conditions:
12763 // The above copyright notice and this permission notice shall be included
12764 // in all copies or substantial portions of the Software.
12766 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12767 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12768 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12769 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12770 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12771 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12772 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12774 // A bit simpler than readable streams.
12775 // Implement an async ._write(chunk, cb), and it'll handle all
12776 // the drain event emission and buffering.
12778 module.exports = Writable;
12781 var Buffer = require('buffer').Buffer;
12784 Writable.WritableState = WritableState;
12788 var util = require('core-util-is');
12789 util.inherits = require('inherits');
12792 var Stream = require('stream');
12794 util.inherits(Writable, Stream);
12796 function WriteReq(chunk, encoding, cb) {
12797 this.chunk = chunk;
12798 this.encoding = encoding;
12799 this.callback = cb;
12802 function WritableState(options, stream) {
12803 var Duplex = require('./_stream_duplex');
12805 options = options || {};
12807 // the point at which write() starts returning false
12808 // Note:
0 is a valid value, means that we always return false if
12809 // the entire buffer is not flushed immediately on write()
12810 var hwm = options.highWaterMark;
12811 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
12812 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
12814 // object stream flag to indicate whether or not this stream
12815 // contains buffers or objects.
12816 this.objectMode = !!options.objectMode;
12818 if (stream instanceof Duplex)
12819 this.objectMode = this.objectMode || !!options.writableObjectMode;
12822 this.highWaterMark = ~~this.highWaterMark;
12824 this.needDrain = false;
12825 // at the start of calling end()
12826 this.ending = false;
12827 // when end() has been called, and returned
12828 this.ended = false;
12829 // when 'finish' is emitted
12830 this.finished = false;
12832 // should we decode strings into buffers before passing to _write?
12833 // this is here so that some node-core streams can optimize string
12834 // handling at a lower level.
12835 var noDecode = options.decodeStrings === false;
12836 this.decodeStrings = !noDecode;
12838 // Crypto is kind of old and crusty. Historically, its default string
12839 // encoding is 'binary' so we have to make this configurable.
12840 // Everything else in the universe uses 'utf8', though.
12841 this.defaultEncoding = options.defaultEncoding || 'utf8';
12843 // not an actual buffer we keep track of, but a measurement
12844 // of how much we're waiting to get pushed to some underlying
12848 // a flag to see when we're in the middle of a write.
12849 this.writing = false;
12851 // when true all writes will be buffered until .uncork() call
12854 // a flag to be able to tell if the onwrite cb is called immediately,
12855 // or on a later tick. We set this to true at first, because any
12856 // actions that shouldn't happen until "later" should generally also
12857 // not happen before the first write call.
12860 // a flag to know if we're processing previously buffered items, which
12861 // may call the _write() callback in the same tick, so that we don't
12862 // end up in an overlapped onwrite situation.
12863 this.bufferProcessing = false;
12865 // the callback that's passed to _write(chunk,cb)
12866 this.onwrite = function(er) {
12867 onwrite(stream, er);
12870 // the callback that the user supplies to write(chunk,encoding,cb)
12871 this.writecb = null;
12873 // the amount that is being written when _write is called.
12878 // number of pending user-supplied write callbacks
12879 // this must be
0 before 'finish' can be emitted
12880 this.pendingcb =
0;
12882 // emit prefinish if the only thing we're waiting for is _write cbs
12883 // This is relevant for synchronous Transform streams
12884 this.prefinished = false;
12886 // True if the error was already emitted and should not be thrown again
12887 this.errorEmitted = false;
12890 function Writable(options) {
12891 var Duplex = require('./_stream_duplex');
12893 // Writable ctor is applied to Duplexes, though they're not
12894 // instanceof Writable, they're instanceof Readable.
12895 if (!(this instanceof Writable) && !(this instanceof Duplex))
12896 return new Writable(options);
12898 this._writableState = new WritableState(options, this);
12901 this.writable = true;
12906 // Otherwise people can pipe Writable streams, which is just wrong.
12907 Writable.prototype.pipe = function() {
12908 this.emit('error', new Error('Cannot pipe. Not readable.'));
12912 function writeAfterEnd(stream, state, cb) {
12913 var er = new Error('write after end');
12914 // TODO: defer error events consistently everywhere, not just the cb
12915 stream.emit('error', er);
12916 process.nextTick(function() {
12921 // If we get something that is not a buffer, string, null, or undefined,
12922 // and we're not in objectMode, then that's an error.
12923 // Otherwise stream chunks are all considered to be of length=
1, and the
12924 // watermarks determine how many objects to keep in the buffer, rather than
12925 // how many bytes or characters.
12926 function validChunk(stream, state, chunk, cb) {
12928 if (!util.isBuffer(chunk) &&
12929 !util.isString(chunk) &&
12930 !util.isNullOrUndefined(chunk) &&
12931 !state.objectMode) {
12932 var er = new TypeError('Invalid non-string/buffer chunk');
12933 stream.emit('error', er);
12934 process.nextTick(function() {
12942 Writable.prototype.write = function(chunk, encoding, cb) {
12943 var state = this._writableState;
12946 if (util.isFunction(encoding)) {
12951 if (util.isBuffer(chunk))
12952 encoding = 'buffer';
12953 else if (!encoding)
12954 encoding = state.defaultEncoding;
12956 if (!util.isFunction(cb))
12957 cb = function() {};
12960 writeAfterEnd(this, state, cb);
12961 else if (validChunk(this, state, chunk, cb)) {
12963 ret = writeOrBuffer(this, state, chunk, encoding, cb);
12969 Writable.prototype.cork = function() {
12970 var state = this._writableState;
12975 Writable.prototype.uncork = function() {
12976 var state = this._writableState;
12978 if (state.corked) {
12981 if (!state.writing &&
12984 !state.bufferProcessing &&
12985 state.buffer.length)
12986 clearBuffer(this, state);
12990 function decodeChunk(state, chunk, encoding) {
12991 if (!state.objectMode &&
12992 state.decodeStrings !== false &&
12993 util.isString(chunk)) {
12994 chunk = new Buffer(chunk, encoding);
12999 // if we're already writing something, then just put this
13000 // in the queue, and wait our turn. Otherwise, call _write
13001 // If we return false, then we need a drain event, so set that flag.
13002 function writeOrBuffer(stream, state, chunk, encoding, cb) {
13003 chunk = decodeChunk(state, chunk, encoding);
13004 if (util.isBuffer(chunk))
13005 encoding = 'buffer';
13006 var len = state.objectMode ?
1 : chunk.length;
13008 state.length += len;
13010 var ret = state.length < state.highWaterMark;
13011 // we must ensure that previous needDrain will not be reset to false.
13013 state.needDrain = true;
13015 if (state.writing || state.corked)
13016 state.buffer.push(new WriteReq(chunk, encoding, cb));
13018 doWrite(stream, state, false, len, chunk, encoding, cb);
13023 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
13024 state.writelen = len;
13025 state.writecb = cb;
13026 state.writing = true;
13029 stream._writev(chunk, state.onwrite);
13031 stream._write(chunk, encoding, state.onwrite);
13032 state.sync = false;
13035 function onwriteError(stream, state, sync, er, cb) {
13037 process.nextTick(function() {
13046 stream._writableState.errorEmitted = true;
13047 stream.emit('error', er);
13050 function onwriteStateUpdate(state) {
13051 state.writing = false;
13052 state.writecb = null;
13053 state.length -= state.writelen;
13054 state.writelen =
0;
13057 function onwrite(stream, er) {
13058 var state = stream._writableState;
13059 var sync = state.sync;
13060 var cb = state.writecb;
13062 onwriteStateUpdate(state);
13065 onwriteError(stream, state, sync, er, cb);
13067 // Check if we're actually ready to finish, but don't emit yet
13068 var finished = needFinish(stream, state);
13072 !state.bufferProcessing &&
13073 state.buffer.length) {
13074 clearBuffer(stream, state);
13078 process.nextTick(function() {
13079 afterWrite(stream, state, finished, cb);
13082 afterWrite(stream, state, finished, cb);
13087 function afterWrite(stream, state, finished, cb) {
13089 onwriteDrain(stream, state);
13092 finishMaybe(stream, state);
13095 // Must force callback to be called on nextTick, so that we don't
13096 // emit 'drain' before the write() consumer gets the 'false' return
13097 // value, and has a chance to attach a 'drain' listener.
13098 function onwriteDrain(stream, state) {
13099 if (state.length ===
0 && state.needDrain) {
13100 state.needDrain = false;
13101 stream.emit('drain');
13106 // if there's something in the buffer waiting, then process it
13107 function clearBuffer(stream, state) {
13108 state.bufferProcessing = true;
13110 if (stream._writev && state.buffer.length
> 1) {
13111 // Fast case, write everything using _writev()
13113 for (var c =
0; c < state.buffer.length; c++)
13114 cbs.push(state.buffer[c].callback);
13116 // count the one we are adding, as well.
13117 // TODO(isaacs) clean this up
13119 doWrite(stream, state, true, state.length, state.buffer, '', function(err) {
13120 for (var i =
0; i < cbs.length; i++) {
13129 // Slow case, write chunks one-by-one
13130 for (var c =
0; c < state.buffer.length; c++) {
13131 var entry = state.buffer[c];
13132 var chunk = entry.chunk;
13133 var encoding = entry.encoding;
13134 var cb = entry.callback;
13135 var len = state.objectMode ?
1 : chunk.length;
13137 doWrite(stream, state, false, len, chunk, encoding, cb);
13139 // if we didn't call the onwrite immediately, then
13140 // it means that we need to wait until it does.
13141 // also, that means that the chunk and cb are currently
13142 // being processed, so move the buffer counter past them.
13143 if (state.writing) {
13149 if (c < state.buffer.length)
13150 state.buffer = state.buffer.slice(c);
13152 state.buffer.length =
0;
13155 state.bufferProcessing = false;
13158 Writable.prototype._write = function(chunk, encoding, cb) {
13159 cb(new Error('not implemented'));
13163 Writable.prototype._writev = null;
13165 Writable.prototype.end = function(chunk, encoding, cb) {
13166 var state = this._writableState;
13168 if (util.isFunction(chunk)) {
13172 } else if (util.isFunction(encoding)) {
13177 if (!util.isNullOrUndefined(chunk))
13178 this.write(chunk, encoding);
13180 // .end() fully uncorks
13181 if (state.corked) {
13186 // ignore unnecessary end() calls.
13187 if (!state.ending && !state.finished)
13188 endWritable(this, state, cb);
13192 function needFinish(stream, state) {
13193 return (state.ending &&
13194 state.length ===
0 &&
13199 function prefinish(stream, state) {
13200 if (!state.prefinished) {
13201 state.prefinished = true;
13202 stream.emit('prefinish');
13206 function finishMaybe(stream, state) {
13207 var need = needFinish(stream, state);
13209 if (state.pendingcb ===
0) {
13210 prefinish(stream, state);
13211 state.finished = true;
13212 stream.emit('finish');
13214 prefinish(stream, state);
13219 function endWritable(stream, state, cb) {
13220 state.ending = true;
13221 finishMaybe(stream, state);
13223 if (state.finished)
13224 process.nextTick(cb);
13226 stream.once('finish', cb);
13228 state.ended = true;
13231 }).call(this,require('_process'))
13232 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"inherits":
12,
"stream":
26}],
21:[function(require,module,exports){
13233 (function (Buffer){
13234 // Copyright Joyent, Inc. and other Node contributors.
13236 // Permission is hereby granted, free of charge, to any person obtaining a
13237 // copy of this software and associated documentation files (the
13238 //
"Software"), to deal in the Software without restriction, including
13239 // without limitation the rights to use, copy, modify, merge, publish,
13240 // distribute, sublicense, and/or sell copies of the Software, and to permit
13241 // persons to whom the Software is furnished to do so, subject to the
13242 // following conditions:
13244 // The above copyright notice and this permission notice shall be included
13245 // in all copies or substantial portions of the Software.
13247 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13248 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13249 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13250 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13251 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13252 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13253 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13255 // NOTE: These type checking functions intentionally don't use `instanceof`
13256 // because it is fragile and can be easily faked with `Object.create()`.
13257 function isArray(ar) {
13258 return Array.isArray(ar);
13260 exports.isArray = isArray;
13262 function isBoolean(arg) {
13263 return typeof arg === 'boolean';
13265 exports.isBoolean = isBoolean;
13267 function isNull(arg) {
13268 return arg === null;
13270 exports.isNull = isNull;
13272 function isNullOrUndefined(arg) {
13273 return arg == null;
13275 exports.isNullOrUndefined = isNullOrUndefined;
13277 function isNumber(arg) {
13278 return typeof arg === 'number';
13280 exports.isNumber = isNumber;
13282 function isString(arg) {
13283 return typeof arg === 'string';
13285 exports.isString = isString;
13287 function isSymbol(arg) {
13288 return typeof arg === 'symbol';
13290 exports.isSymbol = isSymbol;
13292 function isUndefined(arg) {
13293 return arg === void
0;
13295 exports.isUndefined = isUndefined;
13297 function isRegExp(re) {
13298 return isObject(re) && objectToString(re) === '[object RegExp]';
13300 exports.isRegExp = isRegExp;
13302 function isObject(arg) {
13303 return typeof arg === 'object' && arg !== null;
13305 exports.isObject = isObject;
13307 function isDate(d) {
13308 return isObject(d) && objectToString(d) === '[object Date]';
13310 exports.isDate = isDate;
13312 function isError(e) {
13313 return isObject(e) &&
13314 (objectToString(e) === '[object Error]' || e instanceof Error);
13316 exports.isError = isError;
13318 function isFunction(arg) {
13319 return typeof arg === 'function';
13321 exports.isFunction = isFunction;
13323 function isPrimitive(arg) {
13324 return arg === null ||
13325 typeof arg === 'boolean' ||
13326 typeof arg === 'number' ||
13327 typeof arg === 'string' ||
13328 typeof arg === 'symbol' || // ES6 symbol
13329 typeof arg === 'undefined';
13331 exports.isPrimitive = isPrimitive;
13333 function isBuffer(arg) {
13334 return Buffer.isBuffer(arg);
13336 exports.isBuffer = isBuffer;
13338 function objectToString(o) {
13339 return Object.prototype.toString.call(o);
13341 }).call(this,require(
"buffer").Buffer)
13342 },{
"buffer":
7}],
22:[function(require,module,exports){
13343 module.exports = require(
"./lib/_stream_passthrough.js")
13345 },{
"./lib/_stream_passthrough.js":
17}],
23:[function(require,module,exports){
13346 exports = module.exports = require('./lib/_stream_readable.js');
13347 exports.Stream = require('stream');
13348 exports.Readable = exports;
13349 exports.Writable = require('./lib/_stream_writable.js');
13350 exports.Duplex = require('./lib/_stream_duplex.js');
13351 exports.Transform = require('./lib/_stream_transform.js');
13352 exports.PassThrough = require('./lib/_stream_passthrough.js');
13354 },{
"./lib/_stream_duplex.js":
16,
"./lib/_stream_passthrough.js":
17,
"./lib/_stream_readable.js":
18,
"./lib/_stream_transform.js":
19,
"./lib/_stream_writable.js":
20,
"stream":
26}],
24:[function(require,module,exports){
13355 module.exports = require(
"./lib/_stream_transform.js")
13357 },{
"./lib/_stream_transform.js":
19}],
25:[function(require,module,exports){
13358 module.exports = require(
"./lib/_stream_writable.js")
13360 },{
"./lib/_stream_writable.js":
20}],
26:[function(require,module,exports){
13361 // Copyright Joyent, Inc. and other Node contributors.
13363 // Permission is hereby granted, free of charge, to any person obtaining a
13364 // copy of this software and associated documentation files (the
13365 //
"Software"), to deal in the Software without restriction, including
13366 // without limitation the rights to use, copy, modify, merge, publish,
13367 // distribute, sublicense, and/or sell copies of the Software, and to permit
13368 // persons to whom the Software is furnished to do so, subject to the
13369 // following conditions:
13371 // The above copyright notice and this permission notice shall be included
13372 // in all copies or substantial portions of the Software.
13374 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13375 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13376 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13377 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13378 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13379 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13380 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13382 module.exports = Stream;
13384 var EE = require('events').EventEmitter;
13385 var inherits = require('inherits');
13387 inherits(Stream, EE);
13388 Stream.Readable = require('readable-stream/readable.js');
13389 Stream.Writable = require('readable-stream/writable.js');
13390 Stream.Duplex = require('readable-stream/duplex.js');
13391 Stream.Transform = require('readable-stream/transform.js');
13392 Stream.PassThrough = require('readable-stream/passthrough.js');
13394 // Backwards-compat with node
0.4.x
13395 Stream.Stream = Stream;
13399 // old-style streams. Note that the pipe method (the only relevant
13400 // part of this class) is overridden in the Readable class.
13402 function Stream() {
13406 Stream.prototype.pipe = function(dest, options) {
13409 function ondata(chunk) {
13410 if (dest.writable) {
13411 if (false === dest.write(chunk) && source.pause) {
13417 source.on('data', ondata);
13419 function ondrain() {
13420 if (source.readable && source.resume) {
13425 dest.on('drain', ondrain);
13427 // If the 'end' option is not supplied, dest.end() will be called when
13428 // source gets the 'end' or 'close' events. Only dest.end() once.
13429 if (!dest._isStdio && (!options || options.end !== false)) {
13430 source.on('end', onend);
13431 source.on('close', onclose);
13434 var didOnEnd = false;
13436 if (didOnEnd) return;
13443 function onclose() {
13444 if (didOnEnd) return;
13447 if (typeof dest.destroy === 'function') dest.destroy();
13450 // don't leave dangling pipes when there are errors.
13451 function onerror(er) {
13453 if (EE.listenerCount(this, 'error') ===
0) {
13454 throw er; // Unhandled stream error in pipe.
13458 source.on('error', onerror);
13459 dest.on('error', onerror);
13461 // remove all the event listeners that were added.
13462 function cleanup() {
13463 source.removeListener('data', ondata);
13464 dest.removeListener('drain', ondrain);
13466 source.removeListener('end', onend);
13467 source.removeListener('close', onclose);
13469 source.removeListener('error', onerror);
13470 dest.removeListener('error', onerror);
13472 source.removeListener('end', cleanup);
13473 source.removeListener('close', cleanup);
13475 dest.removeListener('close', cleanup);
13478 source.on('end', cleanup);
13479 source.on('close', cleanup);
13481 dest.on('close', cleanup);
13483 dest.emit('pipe', source);
13485 // Allow for unix-like usage: A.pipe(B).pipe(C)
13489 },{
"events":
11,
"inherits":
12,
"readable-stream/duplex.js":
15,
"readable-stream/passthrough.js":
22,
"readable-stream/readable.js":
23,
"readable-stream/transform.js":
24,
"readable-stream/writable.js":
25}],
27:[function(require,module,exports){
13490 // Copyright Joyent, Inc. and other Node contributors.
13492 // Permission is hereby granted, free of charge, to any person obtaining a
13493 // copy of this software and associated documentation files (the
13494 //
"Software"), to deal in the Software without restriction, including
13495 // without limitation the rights to use, copy, modify, merge, publish,
13496 // distribute, sublicense, and/or sell copies of the Software, and to permit
13497 // persons to whom the Software is furnished to do so, subject to the
13498 // following conditions:
13500 // The above copyright notice and this permission notice shall be included
13501 // in all copies or substantial portions of the Software.
13503 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13504 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13505 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13506 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13507 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13508 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13509 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13511 var Buffer = require('buffer').Buffer;
13513 var isBufferEncoding = Buffer.isEncoding
13514 || function(encoding) {
13515 switch (encoding && encoding.toLowerCase()) {
13516 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;
13517 default: return false;
13522 function assertEncoding(encoding) {
13523 if (encoding && !isBufferEncoding(encoding)) {
13524 throw new Error('Unknown encoding: ' + encoding);
13528 // StringDecoder provides an interface for efficiently splitting a series of
13529 // buffers into a series of JS strings without breaking apart multi-byte
13530 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
13532 // @TODO Handling all encodings inside a single object makes it very difficult
13533 // to reason about this code, so it should be split up in the future.
13534 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
13535 // points as used by CESU-
8.
13536 var StringDecoder = exports.StringDecoder = function(encoding) {
13537 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
13538 assertEncoding(encoding);
13539 switch (this.encoding) {
13541 // CESU-
8 represents each of Surrogate Pair by
3-bytes
13542 this.surrogateSize =
3;
13546 // UTF-
16 represents each of Surrogate Pair by
2-bytes
13547 this.surrogateSize =
2;
13548 this.detectIncompleteChar = utf16DetectIncompleteChar;
13551 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
13552 this.surrogateSize =
3;
13553 this.detectIncompleteChar = base64DetectIncompleteChar;
13556 this.write = passThroughWrite;
13560 // Enough space to store all bytes of a single character. UTF-
8 needs
4
13561 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
13562 this.charBuffer = new Buffer(
6);
13563 // Number of bytes received for the current incomplete multi-byte character.
13564 this.charReceived =
0;
13565 // Number of bytes expected for the current incomplete multi-byte character.
13566 this.charLength =
0;
13570 // write decodes the given buffer and returns it as JS string that is
13571 // guaranteed to not contain any partial multi-byte characters. Any partial
13572 // character found at the end of the buffer is buffered up, and will be
13573 // returned when calling write again with the remaining bytes.
13575 // Note: Converting a Buffer containing an orphan surrogate to a String
13576 // currently works, but converting a String to a Buffer (via `new Buffer`, or
13577 // Buffer#write) will replace incomplete surrogates with the unicode
13578 // replacement character. See https://codereview.chromium.org/
121173009/ .
13579 StringDecoder.prototype.write = function(buffer) {
13581 // if our last write ended with an incomplete multibyte character
13582 while (this.charLength) {
13583 // determine how many remaining bytes this buffer has to offer for this char
13584 var available = (buffer.length
>= this.charLength - this.charReceived) ?
13585 this.charLength - this.charReceived :
13588 // add the new bytes to the char buffer
13589 buffer.copy(this.charBuffer, this.charReceived,
0, available);
13590 this.charReceived += available;
13592 if (this.charReceived < this.charLength) {
13593 // still not enough chars in this buffer? wait for more ...
13597 // remove bytes belonging to the current character from the buffer
13598 buffer = buffer.slice(available, buffer.length);
13600 // get the character that was split
13601 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
13603 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
13604 var charCode = charStr.charCodeAt(charStr.length -
1);
13605 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
13606 this.charLength += this.surrogateSize;
13610 this.charReceived = this.charLength =
0;
13612 // if there are no more bytes in this buffer, just emit our char
13613 if (buffer.length ===
0) {
13619 // determine and set charLength / charReceived
13620 this.detectIncompleteChar(buffer);
13622 var end = buffer.length;
13623 if (this.charLength) {
13624 // buffer the incomplete character bytes we got
13625 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
13626 end -= this.charReceived;
13629 charStr += buffer.toString(this.encoding,
0, end);
13631 var end = charStr.length -
1;
13632 var charCode = charStr.charCodeAt(end);
13633 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
13634 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
13635 var size = this.surrogateSize;
13636 this.charLength += size;
13637 this.charReceived += size;
13638 this.charBuffer.copy(this.charBuffer, size,
0, size);
13639 buffer.copy(this.charBuffer,
0,
0, size);
13640 return charStr.substring(
0, end);
13643 // or just emit the charStr
13647 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
13648 // the end of the given buffer. If so, it sets this.charLength to the byte
13649 // length that character, and sets this.charReceived to the number of bytes
13650 // that are available for this character.
13651 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
13652 // determine how many bytes we have to check at the end of this buffer
13653 var i = (buffer.length
>=
3) ?
3 : buffer.length;
13655 // Figure out if one of the last i bytes of our buffer announces an
13656 // incomplete char.
13657 for (; i
> 0; i--) {
13658 var c = buffer[buffer.length - i];
13660 // See http://en.wikipedia.org/wiki/UTF-
8#Description
13663 if (i ==
1 && c
>> 5 ==
0x06) {
13664 this.charLength =
2;
13669 if (i <=
2 && c
>> 4 ==
0x0E) {
13670 this.charLength =
3;
13675 if (i <=
3 && c
>> 3 ==
0x1E) {
13676 this.charLength =
4;
13680 this.charReceived = i;
13683 StringDecoder.prototype.end = function(buffer) {
13685 if (buffer && buffer.length)
13686 res = this.write(buffer);
13688 if (this.charReceived) {
13689 var cr = this.charReceived;
13690 var buf = this.charBuffer;
13691 var enc = this.encoding;
13692 res += buf.slice(
0, cr).toString(enc);
13698 function passThroughWrite(buffer) {
13699 return buffer.toString(this.encoding);
13702 function utf16DetectIncompleteChar(buffer) {
13703 this.charReceived = buffer.length %
2;
13704 this.charLength = this.charReceived ?
2 :
0;
13707 function base64DetectIncompleteChar(buffer) {
13708 this.charReceived = buffer.length %
3;
13709 this.charLength = this.charReceived ?
3 :
0;
13712 },{
"buffer":
7}],
28:[function(require,module,exports){
13713 module.exports = function isBuffer(arg) {
13714 return arg && typeof arg === 'object'
13715 && typeof arg.copy === 'function'
13716 && typeof arg.fill === 'function'
13717 && typeof arg.readUInt8 === 'function';
13719 },{}],
29:[function(require,module,exports){
13720 (function (process,global){
13721 // Copyright Joyent, Inc. and other Node contributors.
13723 // Permission is hereby granted, free of charge, to any person obtaining a
13724 // copy of this software and associated documentation files (the
13725 //
"Software"), to deal in the Software without restriction, including
13726 // without limitation the rights to use, copy, modify, merge, publish,
13727 // distribute, sublicense, and/or sell copies of the Software, and to permit
13728 // persons to whom the Software is furnished to do so, subject to the
13729 // following conditions:
13731 // The above copyright notice and this permission notice shall be included
13732 // in all copies or substantial portions of the Software.
13734 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13735 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13736 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13737 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13738 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13739 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13740 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13742 var formatRegExp = /%[sdj%]/g;
13743 exports.format = function(f) {
13744 if (!isString(f)) {
13746 for (var i =
0; i < arguments.length; i++) {
13747 objects.push(inspect(arguments[i]));
13749 return objects.join(' ');
13753 var args = arguments;
13754 var len = args.length;
13755 var str = String(f).replace(formatRegExp, function(x) {
13756 if (x === '%%') return '%';
13757 if (i
>= len) return x;
13759 case '%s': return String(args[i++]);
13760 case '%d': return Number(args[i++]);
13763 return JSON.stringify(args[i++]);
13765 return '[Circular]';
13771 for (var x = args[i]; i < len; x = args[++i]) {
13772 if (isNull(x) || !isObject(x)) {
13775 str += ' ' + inspect(x);
13782 // Mark that a method should not be used.
13783 // Returns a modified function which warns once by default.
13784 // If --no-deprecation is set, then it is a no-op.
13785 exports.deprecate = function(fn, msg) {
13786 // Allow for deprecating things in the process of starting up.
13787 if (isUndefined(global.process)) {
13788 return function() {
13789 return exports.deprecate(fn, msg).apply(this, arguments);
13793 if (process.noDeprecation === true) {
13797 var warned = false;
13798 function deprecated() {
13800 if (process.throwDeprecation) {
13801 throw new Error(msg);
13802 } else if (process.traceDeprecation) {
13803 console.trace(msg);
13805 console.error(msg);
13809 return fn.apply(this, arguments);
13818 exports.debuglog = function(set) {
13819 if (isUndefined(debugEnviron))
13820 debugEnviron = process.env.NODE_DEBUG || '';
13821 set = set.toUpperCase();
13822 if (!debugs[set]) {
13823 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13824 var pid = process.pid;
13825 debugs[set] = function() {
13826 var msg = exports.format.apply(exports, arguments);
13827 console.error('%s %d: %s', set, pid, msg);
13830 debugs[set] = function() {};
13833 return debugs[set];
13838 * Echos the value of a value. Trys to print the value out
13839 * in the best way possible given the different types.
13841 * @param {Object} obj The object to print out.
13842 * @param {Object} opts Optional options object that alters the output.
13844 /* legacy: obj, showHidden, depth, colors*/
13845 function inspect(obj, opts) {
13849 stylize: stylizeNoColor
13852 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13853 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13854 if (isBoolean(opts)) {
13856 ctx.showHidden = opts;
13858 // got an "options" object
13859 exports._extend(ctx, opts);
13861 // set default options
13862 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13863 if (isUndefined(ctx.depth)) ctx.depth =
2;
13864 if (isUndefined(ctx.colors)) ctx.colors = false;
13865 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13866 if (ctx.colors) ctx.stylize = stylizeWithColor;
13867 return formatValue(ctx, obj, ctx.depth);
13869 exports.inspect = inspect;
13872 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13875 'italic' : [
3,
23],
13876 'underline' : [
4,
24],
13877 'inverse' : [
7,
27],
13878 'white' : [
37,
39],
13880 'black' : [
30,
39],
13883 'green' : [
32,
39],
13884 'magenta' : [
35,
39],
13886 'yellow' : [
33,
39]
13889 // Don't use 'blue' not visible on cmd.exe
13892 'number': 'yellow',
13893 'boolean': 'yellow',
13894 'undefined': 'grey',
13898 // "name": intentionally not styling
13903 function stylizeWithColor(str, styleType) {
13904 var style = inspect.styles[styleType];
13907 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13908 '\u001b[' + inspect.colors[style][
1] + 'm';
13915 function stylizeNoColor(str, styleType) {
13920 function arrayToHash(array) {
13923 array.forEach(function(val, idx) {
13931 function formatValue(ctx, value, recurseTimes) {
13932 // Provide a hook for user-specified inspect functions.
13933 // Check that value is an object with an inspect function on it
13934 if (ctx.customInspect &&
13936 isFunction(value.inspect) &&
13937 // Filter out the util module, it's inspect function is special
13938 value.inspect !== exports.inspect &&
13939 // Also filter out any prototype objects using the circular check.
13940 !(value.constructor && value.constructor.prototype === value)) {
13941 var ret = value.inspect(recurseTimes, ctx);
13942 if (!isString(ret)) {
13943 ret = formatValue(ctx, ret, recurseTimes);
13948 // Primitive types cannot have properties
13949 var primitive = formatPrimitive(ctx, value);
13954 // Look up the keys of the object.
13955 var keys = Object.keys(value);
13956 var visibleKeys = arrayToHash(keys);
13958 if (ctx.showHidden) {
13959 keys = Object.getOwnPropertyNames(value);
13962 // IE doesn't make error fields non-enumerable
13963 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13965 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13966 return formatError(value);
13969 // Some type of object without properties can be shortcutted.
13970 if (keys.length ===
0) {
13971 if (isFunction(value)) {
13972 var name = value.name ? ': ' + value.name : '';
13973 return ctx.stylize('[Function' + name + ']', 'special');
13975 if (isRegExp(value)) {
13976 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13978 if (isDate(value)) {
13979 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13981 if (isError(value)) {
13982 return formatError(value);
13986 var base = '', array = false, braces = ['{', '}'];
13988 // Make Array say that they are Array
13989 if (isArray(value)) {
13991 braces = ['[', ']'];
13994 // Make functions say that they are functions
13995 if (isFunction(value)) {
13996 var n = value.name ? ': ' + value.name : '';
13997 base = ' [Function' + n + ']';
14000 // Make RegExps say that they are RegExps
14001 if (isRegExp(value)) {
14002 base = ' ' + RegExp.prototype.toString.call(value);
14005 // Make dates with properties first say the date
14006 if (isDate(value)) {
14007 base = ' ' + Date.prototype.toUTCString.call(value);
14010 // Make error with message first say the error
14011 if (isError(value)) {
14012 base = ' ' + formatError(value);
14015 if (keys.length ===
0 && (!array || value.length ==
0)) {
14016 return braces[
0] + base + braces[
1];
14019 if (recurseTimes <
0) {
14020 if (isRegExp(value)) {
14021 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
14023 return ctx.stylize('[Object]', 'special');
14027 ctx.seen.push(value);
14031 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
14033 output = keys.map(function(key) {
14034 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
14040 return reduceToSingleString(output, base, braces);
14044 function formatPrimitive(ctx, value) {
14045 if (isUndefined(value))
14046 return ctx.stylize('undefined', 'undefined');
14047 if (isString(value)) {
14048 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
14049 .replace(/'/g, "\\'")
14050 .replace(/\\"/g, '"') + '\'';
14051 return ctx.stylize(simple, 'string');
14053 if (isNumber(value))
14054 return ctx.stylize('' + value, 'number');
14055 if (isBoolean(value))
14056 return ctx.stylize('' + value, 'boolean');
14057 // For some reason typeof null is "object", so special case here.
14059 return ctx.stylize('null', 'null');
14063 function formatError(value) {
14064 return '[' + Error.prototype.toString.call(value) + ']';
14068 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
14070 for (var i =
0, l = value.length; i < l; ++i) {
14071 if (hasOwnProperty(value, String(i))) {
14072 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
14078 keys.forEach(function(key) {
14079 if (!key.match(/^\d+$/)) {
14080 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
14088 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
14089 var name, str, desc;
14090 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
14093 str = ctx.stylize('[Getter/Setter]', 'special');
14095 str = ctx.stylize('[Getter]', 'special');
14099 str = ctx.stylize('[Setter]', 'special');
14102 if (!hasOwnProperty(visibleKeys, key)) {
14103 name = '[' + key + ']';
14106 if (ctx.seen.indexOf(desc.value) <
0) {
14107 if (isNull(recurseTimes)) {
14108 str = formatValue(ctx, desc.value, null);
14110 str = formatValue(ctx, desc.value, recurseTimes -
1);
14112 if (str.indexOf('\n')
> -
1) {
14114 str = str.split('\n').map(function(line) {
14116 }).join('\n').substr(
2);
14118 str = '\n' + str.split('\n').map(function(line) {
14124 str = ctx.stylize('[Circular]', 'special');
14127 if (isUndefined(name)) {
14128 if (array && key.match(/^\d+$/)) {
14131 name = JSON.stringify('' + key);
14132 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
14133 name = name.substr(
1, name.length -
2);
14134 name = ctx.stylize(name, 'name');
14136 name = name.replace(/'/g, "\\'")
14137 .replace(/\\"/g, '"')
14138 .replace(/(^"|"$)/g, "'");
14139 name = ctx.stylize(name, 'string');
14143 return name + ': ' + str;
14147 function reduceToSingleString(output, base, braces) {
14148 var numLinesEst =
0;
14149 var length = output.reduce(function(prev, cur) {
14151 if (cur.indexOf('\n')
>=
0) numLinesEst++;
14152 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
14157 (base === '' ? '' : base + '\n ') +
14159 output.join(',\n ') +
14164 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
14168 // NOTE: These type checking functions intentionally don't use `instanceof`
14169 // because it is fragile and can be easily faked with `Object.create()`.
14170 function isArray(ar) {
14171 return Array.isArray(ar);
14173 exports.isArray = isArray;
14175 function isBoolean(arg) {
14176 return typeof arg === 'boolean';
14178 exports.isBoolean = isBoolean;
14180 function isNull(arg) {
14181 return arg === null;
14183 exports.isNull = isNull;
14185 function isNullOrUndefined(arg) {
14186 return arg == null;
14188 exports.isNullOrUndefined = isNullOrUndefined;
14190 function isNumber(arg) {
14191 return typeof arg === 'number';
14193 exports.isNumber = isNumber;
14195 function isString(arg) {
14196 return typeof arg === 'string';
14198 exports.isString = isString;
14200 function isSymbol(arg) {
14201 return typeof arg === 'symbol';
14203 exports.isSymbol = isSymbol;
14205 function isUndefined(arg) {
14206 return arg === void
0;
14208 exports.isUndefined = isUndefined;
14210 function isRegExp(re) {
14211 return isObject(re) && objectToString(re) === '[object RegExp]';
14213 exports.isRegExp = isRegExp;
14215 function isObject(arg) {
14216 return typeof arg === 'object' && arg !== null;
14218 exports.isObject = isObject;
14220 function isDate(d) {
14221 return isObject(d) && objectToString(d) === '[object Date]';
14223 exports.isDate = isDate;
14225 function isError(e) {
14226 return isObject(e) &&
14227 (objectToString(e) === '[object Error]' || e instanceof Error);
14229 exports.isError = isError;
14231 function isFunction(arg) {
14232 return typeof arg === 'function';
14234 exports.isFunction = isFunction;
14236 function isPrimitive(arg) {
14237 return arg === null ||
14238 typeof arg === 'boolean' ||
14239 typeof arg === 'number' ||
14240 typeof arg === 'string' ||
14241 typeof arg === 'symbol' || // ES6 symbol
14242 typeof arg === 'undefined';
14244 exports.isPrimitive = isPrimitive;
14246 exports.isBuffer = require('./support/isBuffer');
14248 function objectToString(o) {
14249 return Object.prototype.toString.call(o);
14254 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
14258 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
14259 'Oct', 'Nov', 'Dec'];
14262 function timestamp() {
14263 var d = new Date();
14264 var time = [pad(d.getHours()),
14265 pad(d.getMinutes()),
14266 pad(d.getSeconds())].join(':');
14267 return [d.getDate(), months[d.getMonth()], time].join(' ');
14271 // log is just a thin wrapper to console.log that prepends a timestamp
14272 exports.log = function() {
14273 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
14278 * Inherit the prototype methods from one constructor into another.
14280 * The Function.prototype.inherits from lang.js rewritten as a standalone
14281 * function (not on Function.prototype). NOTE: If this file is to be loaded
14282 * during bootstrapping this function needs to be rewritten using some native
14283 * functions as prototype setup using normal JavaScript does not work as
14284 * expected during bootstrapping (see mirror.js in r114903).
14286 * @param {function} ctor Constructor function which needs to inherit the
14288 * @param {function} superCtor Constructor function to inherit prototype from.
14290 exports.inherits = require('inherits');
14292 exports._extend = function(origin, add) {
14293 // Don't do anything if add isn't an object
14294 if (!add || !isObject(add)) return origin;
14296 var keys = Object.keys(add);
14297 var i = keys.length;
14299 origin[keys[i]] = add[keys[i]];
14304 function hasOwnProperty(obj, prop) {
14305 return Object.prototype.hasOwnProperty.call(obj, prop);
14308 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
14309 },{
"./support/isBuffer":
28,
"_process":
14,
"inherits":
12}],
30:[function(require,module,exports){
14310 // Base58 encoding/decoding
14311 // Originally written by Mike Hearn for BitcoinJ
14312 // Copyright (c)
2011 Google Inc
14313 // Ported to JavaScript by Stefan Thomas
14314 // Merged Buffer refactorings from base58-native by Stephen Pair
14315 // Copyright (c)
2013 BitPay Inc
14317 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
14318 var ALPHABET_MAP = {}
14319 for(var i =
0; i < ALPHABET.length; i++) {
14320 ALPHABET_MAP[ALPHABET.charAt(i)] = i
14324 function encode(buffer) {
14325 if (buffer.length ===
0) return ''
14327 var i, j, digits = [
0]
14328 for (i =
0; i < buffer.length; i++) {
14329 for (j =
0; j < digits.length; j++) digits[j] <<=
8
14331 digits[
0] += buffer[i]
14334 for (j =
0; j < digits.length; ++j) {
14337 carry = (digits[j] / BASE) |
0
14342 digits.push(carry % BASE)
14344 carry = (carry / BASE) |
0
14348 // deal with leading zeros
14349 for (i =
0; buffer[i] ===
0 && i < buffer.length -
1; i++) digits.push(
0)
14351 // convert digits to a string
14352 var stringOutput =
""
14353 for (var i = digits.length -
1; i
>=
0; i--) {
14354 stringOutput = stringOutput + ALPHABET[digits[i]]
14356 return stringOutput
14359 function decode(string) {
14360 if (string.length ===
0) return []
14362 var i, j, bytes = [
0]
14363 for (i =
0; i < string.length; i++) {
14365 if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character')
14367 for (j =
0; j < bytes.length; j++) bytes[j] *= BASE
14368 bytes[
0] += ALPHABET_MAP[c]
14371 for (j =
0; j < bytes.length; ++j) {
14374 carry = bytes[j]
>> 8
14379 bytes.push(carry &
0xff)
14385 // deal with leading zeros
14386 for (i =
0; string[i] === '
1' && i < string.length -
1; i++) bytes.push(
0)
14388 return bytes.reverse()
14396 },{}],
31:[function(require,module,exports){
14397 (function (Buffer){
14400 var base58 = require('bs58')
14401 var createHash = require('create-hash')
14403 // SHA256(SHA256(buffer))
14404 function sha256x2 (buffer) {
14405 buffer = createHash('sha256').update(buffer).digest()
14406 return createHash('sha256').update(buffer).digest()
14409 // Encode a buffer as a base58-check encoded string
14410 function encode (payload) {
14411 var checksum = sha256x2(payload).slice(
0,
4)
14413 return base58.encode(Buffer.concat([
14419 // Decode a base58-check encoded string to a buffer
14420 function decode (string) {
14421 var buffer = new Buffer(base58.decode(string))
14423 var payload = buffer.slice(
0, -
4)
14424 var checksum = buffer.slice(-
4)
14425 var newChecksum = sha256x2(payload).slice(
0,
4)
14427 for (var i =
0; i < newChecksum.length; ++i) {
14428 if (newChecksum[i] === checksum[i]) continue
14430 throw new Error('Invalid checksum')
14441 }).call(this,require("buffer").Buffer)
14442 },{"bs58":
30,"buffer":
7,"create-hash":
32}],
32:[function(require,module,exports){
14443 (function (Buffer){
14445 var inherits = require('inherits')
14446 var md5 = require('./md5')
14447 var rmd160 = require('ripemd160')
14448 var sha = require('sha.js')
14450 var Transform = require('stream').Transform
14452 function HashNoConstructor(hash) {
14453 Transform.call(this)
14459 inherits(HashNoConstructor, Transform)
14461 HashNoConstructor.prototype._transform = function (data, _, next) {
14462 this.buffers.push(data)
14467 HashNoConstructor.prototype._flush = function (next) {
14468 this.push(this.digest())
14472 HashNoConstructor.prototype.update = function (data, enc) {
14473 if (typeof data === 'string') {
14474 data = new Buffer(data, enc)
14477 this.buffers.push(data)
14481 HashNoConstructor.prototype.digest = function (enc) {
14482 var buf = Buffer.concat(this.buffers)
14483 var r = this._hash(buf)
14484 this.buffers = null
14486 return enc ? r.toString(enc) : r
14489 function Hash(hash) {
14490 Transform.call(this)
14495 inherits(Hash, Transform)
14497 Hash.prototype._transform = function (data, enc, next) {
14498 if (enc) data = new Buffer(data, enc)
14500 this._hash.update(data)
14505 Hash.prototype._flush = function (next) {
14506 this.push(this._hash.digest())
14512 Hash.prototype.update = function (data, enc) {
14513 if (typeof data === 'string') {
14514 data = new Buffer(data, enc)
14517 this._hash.update(data)
14521 Hash.prototype.digest = function (enc) {
14522 var outData = this._hash.digest()
14524 return enc ? outData.toString(enc) : outData
14527 module.exports = function createHash (alg) {
14528 if ('md5' === alg) return new HashNoConstructor(md5)
14529 if ('rmd160' === alg) return new HashNoConstructor(rmd160)
14531 return new Hash(sha(alg))
14534 }).call(this,require("buffer").Buffer)
14535 },{"./md5":
34,"buffer":
7,"inherits":
35,"ripemd160":
36,"sha.js":
38,"stream":
26}],
33:[function(require,module,exports){
14536 (function (Buffer){
14539 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
14542 function toArray(buf, bigEndian) {
14543 if ((buf.length % intSize) !==
0) {
14544 var len = buf.length + (intSize - (buf.length % intSize));
14545 buf = Buffer.concat([buf, zeroBuffer], len);
14549 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
14550 for (var i =
0; i < buf.length; i += intSize) {
14551 arr.push(fn.call(buf, i));
14556 function toBuffer(arr, size, bigEndian) {
14557 var buf = new Buffer(size);
14558 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
14559 for (var i =
0; i < arr.length; i++) {
14560 fn.call(buf, arr[i], i *
4, true);
14565 function hash(buf, fn, hashSize, bigEndian) {
14566 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
14567 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
14568 return toBuffer(arr, hashSize, bigEndian);
14570 exports.hash = hash;
14571 }).call(this,require("buffer").Buffer)
14572 },{"buffer":
7}],
34:[function(require,module,exports){
14575 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
14576 * Digest Algorithm, as defined in RFC
1321.
14577 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
14578 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
14579 * Distributed under the BSD License
14580 * See http://pajhome.org.uk/crypt/md5 for more info.
14583 var helpers = require('./helpers');
14586 * Calculate the MD5 of an array of little-endian words, and a bit length
14588 function core_md5(x, len)
14590 /* append padding */
14591 x[len
>> 5] |=
0x80 << ((len) %
32);
14592 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
14594 var a =
1732584193;
14595 var b = -
271733879;
14596 var c = -
1732584194;
14599 for(var i =
0; i < x.length; i +=
16)
14606 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
14607 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
14608 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
14609 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
14610 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
14611 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
14612 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
14613 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
14614 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
14615 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
14616 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
14617 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
14618 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
14619 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
14620 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
14621 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
14623 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
14624 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
14625 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
14626 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
14627 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
14628 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
14629 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
14630 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
14631 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
14632 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
14633 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
14634 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
14635 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
14636 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
14637 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
14638 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
14640 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
14641 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
14642 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
14643 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
14644 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
14645 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
14646 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
14647 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
14648 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
14649 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
14650 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
14651 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
14652 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
14653 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
14654 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
14655 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
14657 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
14658 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
14659 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
14660 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
14661 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
14662 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
14663 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
14664 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
14665 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
14666 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
14667 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
14668 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
14669 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
14670 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
14671 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
14672 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
14674 a = safe_add(a, olda);
14675 b = safe_add(b, oldb);
14676 c = safe_add(c, oldc);
14677 d = safe_add(d, oldd);
14679 return Array(a, b, c, d);
14684 * These functions implement the four basic operations the algorithm uses.
14686 function md5_cmn(q, a, b, x, s, t)
14688 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
14690 function md5_ff(a, b, c, d, x, s, t)
14692 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
14694 function md5_gg(a, b, c, d, x, s, t)
14696 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
14698 function md5_hh(a, b, c, d, x, s, t)
14700 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
14702 function md5_ii(a, b, c, d, x, s, t)
14704 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
14708 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
14709 * to work around bugs in some JS interpreters.
14711 function safe_add(x, y)
14713 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
14714 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
14715 return (msw <<
16) | (lsw &
0xFFFF);
14719 * Bitwise rotate a
32-bit number to the left.
14721 function bit_rol(num, cnt)
14723 return (num << cnt) | (num
>>> (
32 - cnt));
14726 module.exports = function md5(buf) {
14727 return helpers.hash(buf, core_md5,
16);
14729 },{"./helpers":
33}],
35:[function(require,module,exports){
14730 arguments[
4][
12][
0].apply(exports,arguments)
14731 },{"dup":
12}],
36:[function(require,module,exports){
14732 (function (Buffer){
14735 code.google.com/p/crypto-js
14736 (c)
2009-
2013 by Jeff Mott. All rights reserved.
14737 code.google.com/p/crypto-js/wiki/License
14740 (c)
2012 by Cédric Mesnil. All rights reserved.
14742 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
14744 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
14745 - 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.
14747 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.
14752 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
14753 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
14754 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
14755 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
14756 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
14760 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
14761 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
14762 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
14763 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
14764 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
14768 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
14769 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
14770 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
14771 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
14772 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
14776 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
14777 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
14778 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
14779 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
14780 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
14783 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
14784 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
14786 function bytesToWords (bytes) {
14788 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
14789 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
14794 function wordsToBytes (words) {
14796 for (var b =
0; b < words.length *
32; b +=
8) {
14797 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
14802 function processBlock (H, M, offset) {
14804 for (var i =
0; i <
16; i++) {
14805 var offset_i = offset + i
14806 var M_offset_i = M[offset_i]
14810 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
14811 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
14815 // Working variables
14816 var al, bl, cl, dl, el
14817 var ar, br, cr, dr, er
14827 for (i =
0; i <
80; i +=
1) {
14828 t = (al + M[offset + zl[i]]) |
0
14830 t += f1(bl, cl, dl) + hl[
0]
14831 } else if (i <
32) {
14832 t += f2(bl, cl, dl) + hl[
1]
14833 } else if (i <
48) {
14834 t += f3(bl, cl, dl) + hl[
2]
14835 } else if (i <
64) {
14836 t += f4(bl, cl, dl) + hl[
3]
14837 } else {// if (i
<80) {
14838 t += f5(bl, cl, dl) + hl[
4]
14849 t = (ar + M[offset + zr[i]]) |
0
14851 t += f5(br, cr, dr) + hr[
0]
14852 } else if (i <
32) {
14853 t += f4(br, cr, dr) + hr[
1]
14854 } else if (i <
48) {
14855 t += f3(br, cr, dr) + hr[
2]
14856 } else if (i <
64) {
14857 t += f2(br, cr, dr) + hr[
3]
14858 } else {// if (i
<80) {
14859 t += f1(br, cr, dr) + hr[
4]
14872 // intermediate hash value
14873 t = (H[
1] + cl + dr) |
0
14874 H[
1] = (H[
2] + dl + er) |
0
14875 H[
2] = (H[
3] + el + ar) |
0
14876 H[
3] = (H[
4] + al + br) |
0
14877 H[
4] = (H[
0] + bl + cr) |
0
14881 function f1 (x, y, z) {
14882 return ((x) ^ (y) ^ (z))
14885 function f2 (x, y, z) {
14886 return (((x) & (y)) | ((~x) & (z)))
14889 function f3 (x, y, z) {
14890 return (((x) | (~(y))) ^ (z))
14893 function f4 (x, y, z) {
14894 return (((x) & (z)) | ((y) & (~(z))))
14897 function f5 (x, y, z) {
14898 return ((x) ^ ((y) | (~(z))))
14901 function rotl (x, n) {
14902 return (x << n) | (x
>>> (
32 - n))
14905 function ripemd160 (message) {
14906 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
14908 if (typeof message === 'string') {
14909 message = new Buffer(message, 'utf8')
14912 var m = bytesToWords(message)
14914 var nBitsLeft = message.length *
8
14915 var nBitsTotal = message.length *
8
14918 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
14919 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
14920 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
14921 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
14924 for (var i =
0; i < m.length; i +=
16) {
14925 processBlock(H, m, i)
14929 for (i =
0; i <
5; i++) {
14934 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
14935 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
14938 var digestbytes = wordsToBytes(H)
14939 return new Buffer(digestbytes)
14942 module.exports = ripemd160
14944 }).call(this,require(
"buffer").Buffer)
14945 },{
"buffer":
7}],
37:[function(require,module,exports){
14946 (function (Buffer){
14947 // prototype class for hash functions
14948 function Hash (blockSize, finalSize) {
14949 this._block = new Buffer(blockSize)
14950 this._finalSize = finalSize
14951 this._blockSize = blockSize
14956 Hash.prototype.update = function (data, enc) {
14957 if (typeof data === 'string') {
14958 enc = enc || 'utf8'
14959 data = new Buffer(data, enc)
14962 var l = this._len += data.length
14963 var s = this._s ||
0
14965 var buffer = this._block
14968 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
14971 for (var i =
0; i < ch; i++) {
14972 buffer[(s % this._blockSize) + i] = data[i + f]
14978 if ((s % this._blockSize) ===
0) {
14979 this._update(buffer)
14987 Hash.prototype.digest = function (enc) {
14988 // Suppose the length of the message M, in bits, is l
14989 var l = this._len *
8
14991 // Append the bit
1 to the end of the message
14992 this._block[this._len % this._blockSize] =
0x80
14994 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
14995 this._block.fill(
0, this._len % this._blockSize +
1)
14997 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
14998 this._update(this._block)
14999 this._block.fill(
0)
15002 // to this append the block which is equal to the number l written in binary
15003 // TODO: handle case where l is
> Math.pow(
2,
29)
15004 this._block.writeInt32BE(l, this._blockSize -
4)
15006 var hash = this._update(this._block) || this._hash()
15008 return enc ? hash.toString(enc) : hash
15011 Hash.prototype._update = function () {
15012 throw new Error('_update must be implemented by subclass')
15015 module.exports = Hash
15017 }).call(this,require("buffer").Buffer)
15018 },{"buffer":
7}],
38:[function(require,module,exports){
15019 var exports = module.exports = function SHA (algorithm) {
15020 algorithm = algorithm.toLowerCase()
15022 var Algorithm = exports[algorithm]
15023 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
15025 return new Algorithm()
15028 exports.sha = require('./sha')
15029 exports.sha1 = require('./sha1')
15030 exports.sha224 = require('./sha224')
15031 exports.sha256 = require('./sha256')
15032 exports.sha384 = require('./sha384')
15033 exports.sha512 = require('./sha512')
15035 },{"./sha":
39,"./sha1":
40,"./sha224":
41,"./sha256":
42,"./sha384":
43,"./sha512":
44}],
39:[function(require,module,exports){
15036 (function (Buffer){
15038 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
15039 * in FIPS PUB
180-
1
15040 * This source code is derived from sha1.js of the same repository.
15041 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
15042 * operation was added.
15045 var inherits = require('inherits')
15046 var Hash = require('./hash')
15048 var W = new Array(
80)
15054 Hash.call(this,
64,
56)
15057 inherits(Sha, Hash)
15059 Sha.prototype.init = function () {
15060 this._a =
0x67452301 |
0
15061 this._b =
0xefcdab89 |
0
15062 this._c =
0x98badcfe |
0
15063 this._d =
0x10325476 |
0
15064 this._e =
0xc3d2e1f0 |
0
15070 * Bitwise rotate a
32-bit number to the left.
15072 function rol (num, cnt) {
15073 return (num << cnt) | (num
>>> (
32 - cnt))
15076 Sha.prototype._update = function (M) {
15088 * SHA-
1 has a bitwise rotate left operation. But, SHA is not
15089 * function calcW() { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
15091 function calcW () { return W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16] }
15092 function loop (w, f) {
15095 var t = rol(a,
5) + f + e + w + k
15106 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
15107 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
15109 while (j <
40) loop(calcW(), b ^ c ^ d)
15111 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
15113 while (j <
80) loop(calcW(), b ^ c ^ d)
15115 this._a = (a + this._a) |
0
15116 this._b = (b + this._b) |
0
15117 this._c = (c + this._c) |
0
15118 this._d = (d + this._d) |
0
15119 this._e = (e + this._e) |
0
15122 Sha.prototype._hash = function () {
15123 var H = new Buffer(
20)
15125 H.writeInt32BE(this._a |
0,
0)
15126 H.writeInt32BE(this._b |
0,
4)
15127 H.writeInt32BE(this._c |
0,
8)
15128 H.writeInt32BE(this._d |
0,
12)
15129 H.writeInt32BE(this._e |
0,
16)
15134 module.exports = Sha
15137 }).call(this,require("buffer").Buffer)
15138 },{"./hash":
37,"buffer":
7,"inherits":
35}],
40:[function(require,module,exports){
15139 (function (Buffer){
15141 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
15142 * in FIPS PUB
180-
1
15143 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
15144 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15145 * Distributed under the BSD License
15146 * See http://pajhome.org.uk/crypt/md5 for details.
15149 var inherits = require('inherits')
15150 var Hash = require('./hash')
15152 var W = new Array(
80)
15158 Hash.call(this,
64,
56)
15161 inherits(Sha1, Hash)
15163 Sha1.prototype.init = function () {
15164 this._a =
0x67452301 |
0
15165 this._b =
0xefcdab89 |
0
15166 this._c =
0x98badcfe |
0
15167 this._d =
0x10325476 |
0
15168 this._e =
0xc3d2e1f0 |
0
15174 * Bitwise rotate a
32-bit number to the left.
15176 function rol (num, cnt) {
15177 return (num << cnt) | (num
>>> (
32 - cnt))
15180 Sha1.prototype._update = function (M) {
15191 function calcW () { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
15192 function loop (w, f) {
15195 var t = rol(a,
5) + f + e + w + k
15206 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
15207 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
15209 while (j <
40) loop(calcW(), b ^ c ^ d)
15211 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
15213 while (j <
80) loop(calcW(), b ^ c ^ d)
15215 this._a = (a + this._a) |
0
15216 this._b = (b + this._b) |
0
15217 this._c = (c + this._c) |
0
15218 this._d = (d + this._d) |
0
15219 this._e = (e + this._e) |
0
15222 Sha1.prototype._hash = function () {
15223 var H = new Buffer(
20)
15225 H.writeInt32BE(this._a |
0,
0)
15226 H.writeInt32BE(this._b |
0,
4)
15227 H.writeInt32BE(this._c |
0,
8)
15228 H.writeInt32BE(this._d |
0,
12)
15229 H.writeInt32BE(this._e |
0,
16)
15234 module.exports = Sha1
15236 }).call(this,require("buffer").Buffer)
15237 },{"./hash":
37,"buffer":
7,"inherits":
35}],
41:[function(require,module,exports){
15238 (function (Buffer){
15240 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
15242 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
15243 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15247 var inherits = require('inherits')
15248 var Sha256 = require('./sha256')
15249 var Hash = require('./hash')
15251 var W = new Array(
64)
15253 function Sha224 () {
15256 this._w = W // new Array(
64)
15258 Hash.call(this,
64,
56)
15261 inherits(Sha224, Sha256)
15263 Sha224.prototype.init = function () {
15264 this._a =
0xc1059ed8 |
0
15265 this._b =
0x367cd507 |
0
15266 this._c =
0x3070dd17 |
0
15267 this._d =
0xf70e5939 |
0
15268 this._e =
0xffc00b31 |
0
15269 this._f =
0x68581511 |
0
15270 this._g =
0x64f98fa7 |
0
15271 this._h =
0xbefa4fa4 |
0
15276 Sha224.prototype._hash = function () {
15277 var H = new Buffer(
28)
15279 H.writeInt32BE(this._a,
0)
15280 H.writeInt32BE(this._b,
4)
15281 H.writeInt32BE(this._c,
8)
15282 H.writeInt32BE(this._d,
12)
15283 H.writeInt32BE(this._e,
16)
15284 H.writeInt32BE(this._f,
20)
15285 H.writeInt32BE(this._g,
24)
15290 module.exports = Sha224
15292 }).call(this,require("buffer").Buffer)
15293 },{"./hash":
37,"./sha256":
42,"buffer":
7,"inherits":
35}],
42:[function(require,module,exports){
15294 (function (Buffer){
15296 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
15298 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
15299 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15303 var inherits = require('inherits')
15304 var Hash = require('./hash')
15307 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
15308 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
15309 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
15310 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
15311 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
15312 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
15313 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
15314 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
15315 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
15316 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
15317 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
15318 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
15319 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
15320 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
15321 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
15322 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
15325 var W = new Array(
64)
15327 function Sha256 () {
15330 this._w = W // new Array(
64)
15332 Hash.call(this,
64,
56)
15335 inherits(Sha256, Hash)
15337 Sha256.prototype.init = function () {
15338 this._a =
0x6a09e667 |
0
15339 this._b =
0xbb67ae85 |
0
15340 this._c =
0x3c6ef372 |
0
15341 this._d =
0xa54ff53a |
0
15342 this._e =
0x510e527f |
0
15343 this._f =
0x9b05688c |
0
15344 this._g =
0x1f83d9ab |
0
15345 this._h =
0x5be0cd19 |
0
15350 function S (X, n) {
15351 return (X
>>> n) | (X << (
32 - n))
15354 function R (X, n) {
15358 function Ch (x, y, z) {
15359 return ((x & y) ^ ((~x) & z))
15362 function Maj (x, y, z) {
15363 return ((x & y) ^ (x & z) ^ (y & z))
15366 function Sigma0256 (x) {
15367 return (S(x,
2) ^ S(x,
13) ^ S(x,
22))
15370 function Sigma1256 (x) {
15371 return (S(x,
6) ^ S(x,
11) ^ S(x,
25))
15374 function Gamma0256 (x) {
15375 return (S(x,
7) ^ S(x,
18) ^ R(x,
3))
15378 function Gamma1256 (x) {
15379 return (S(x,
17) ^ S(x,
19) ^ R(x,
10))
15382 Sha256.prototype._update = function (M) {
15385 var a = this._a |
0
15386 var b = this._b |
0
15387 var c = this._c |
0
15388 var d = this._d |
0
15389 var e = this._e |
0
15390 var f = this._f |
0
15391 var g = this._g |
0
15392 var h = this._h |
0
15396 function calcW () { return Gamma1256(W[j -
2]) + W[j -
7] + Gamma0256(W[j -
15]) + W[j -
16] }
15397 function loop (w) {
15400 var T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
15401 var T2 = Sigma0256(a) + Maj(a, b, c)
15415 while (j <
16) loop(M.readInt32BE(j *
4))
15416 while (j <
64) loop(calcW())
15418 this._a = (a + this._a) |
0
15419 this._b = (b + this._b) |
0
15420 this._c = (c + this._c) |
0
15421 this._d = (d + this._d) |
0
15422 this._e = (e + this._e) |
0
15423 this._f = (f + this._f) |
0
15424 this._g = (g + this._g) |
0
15425 this._h = (h + this._h) |
0
15428 Sha256.prototype._hash = function () {
15429 var H = new Buffer(
32)
15431 H.writeInt32BE(this._a,
0)
15432 H.writeInt32BE(this._b,
4)
15433 H.writeInt32BE(this._c,
8)
15434 H.writeInt32BE(this._d,
12)
15435 H.writeInt32BE(this._e,
16)
15436 H.writeInt32BE(this._f,
20)
15437 H.writeInt32BE(this._g,
24)
15438 H.writeInt32BE(this._h,
28)
15443 module.exports = Sha256
15445 }).call(this,require("buffer").Buffer)
15446 },{"./hash":
37,"buffer":
7,"inherits":
35}],
43:[function(require,module,exports){
15447 (function (Buffer){
15448 var inherits = require('inherits')
15449 var SHA512 = require('./sha512')
15450 var Hash = require('./hash')
15452 var W = new Array(
160)
15454 function Sha384 () {
15458 Hash.call(this,
128,
112)
15461 inherits(Sha384, SHA512)
15463 Sha384.prototype.init = function () {
15464 this._a =
0xcbbb9d5d |
0
15465 this._b =
0x629a292a |
0
15466 this._c =
0x9159015a |
0
15467 this._d =
0x152fecd8 |
0
15468 this._e =
0x67332667 |
0
15469 this._f =
0x8eb44a87 |
0
15470 this._g =
0xdb0c2e0d |
0
15471 this._h =
0x47b5481d |
0
15473 this._al =
0xc1059ed8 |
0
15474 this._bl =
0x367cd507 |
0
15475 this._cl =
0x3070dd17 |
0
15476 this._dl =
0xf70e5939 |
0
15477 this._el =
0xffc00b31 |
0
15478 this._fl =
0x68581511 |
0
15479 this._gl =
0x64f98fa7 |
0
15480 this._hl =
0xbefa4fa4 |
0
15485 Sha384.prototype._hash = function () {
15486 var H = new Buffer(
48)
15488 function writeInt64BE (h, l, offset) {
15489 H.writeInt32BE(h, offset)
15490 H.writeInt32BE(l, offset +
4)
15493 writeInt64BE(this._a, this._al,
0)
15494 writeInt64BE(this._b, this._bl,
8)
15495 writeInt64BE(this._c, this._cl,
16)
15496 writeInt64BE(this._d, this._dl,
24)
15497 writeInt64BE(this._e, this._el,
32)
15498 writeInt64BE(this._f, this._fl,
40)
15503 module.exports = Sha384
15505 }).call(this,require("buffer").Buffer)
15506 },{"./hash":
37,"./sha512":
44,"buffer":
7,"inherits":
35}],
44:[function(require,module,exports){
15507 (function (Buffer){
15508 var inherits = require('inherits')
15509 var Hash = require('./hash')
15512 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
15513 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
15514 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
15515 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
15516 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
15517 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
15518 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
15519 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
15520 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
15521 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
15522 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
15523 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
15524 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
15525 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
15526 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
15527 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
15528 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
15529 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
15530 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
15531 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
15532 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
15533 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
15534 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
15535 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
15536 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
15537 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
15538 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
15539 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
15540 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
15541 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
15542 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
15543 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
15544 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
15545 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
15546 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
15547 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
15548 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
15549 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
15550 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
15551 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
15554 var W = new Array(
160)
15556 function Sha512 () {
15560 Hash.call(this,
128,
112)
15563 inherits(Sha512, Hash)
15565 Sha512.prototype.init = function () {
15566 this._a =
0x6a09e667 |
0
15567 this._b =
0xbb67ae85 |
0
15568 this._c =
0x3c6ef372 |
0
15569 this._d =
0xa54ff53a |
0
15570 this._e =
0x510e527f |
0
15571 this._f =
0x9b05688c |
0
15572 this._g =
0x1f83d9ab |
0
15573 this._h =
0x5be0cd19 |
0
15575 this._al =
0xf3bcc908 |
0
15576 this._bl =
0x84caa73b |
0
15577 this._cl =
0xfe94f82b |
0
15578 this._dl =
0x5f1d36f1 |
0
15579 this._el =
0xade682d1 |
0
15580 this._fl =
0x2b3e6c1f |
0
15581 this._gl =
0xfb41bd6b |
0
15582 this._hl =
0x137e2179 |
0
15587 function S (X, Xl, n) {
15588 return (X
>>> n) | (Xl << (
32 - n))
15591 function Ch (x, y, z) {
15592 return ((x & y) ^ ((~x) & z))
15595 function Maj (x, y, z) {
15596 return ((x & y) ^ (x & z) ^ (y & z))
15599 Sha512.prototype._update = function (M) {
15602 var a = this._a |
0
15603 var b = this._b |
0
15604 var c = this._c |
0
15605 var d = this._d |
0
15606 var e = this._e |
0
15607 var f = this._f |
0
15608 var g = this._g |
0
15609 var h = this._h |
0
15611 var al = this._al |
0
15612 var bl = this._bl |
0
15613 var cl = this._cl |
0
15614 var dl = this._dl |
0
15615 var el = this._el |
0
15616 var fl = this._fl |
0
15617 var gl = this._gl |
0
15618 var hl = this._hl |
0
15622 function calcW () {
15623 var x = W[j -
15 *
2]
15624 var xl = W[j -
15 *
2 +
1]
15625 var gamma0 = S(x, xl,
1) ^ S(x, xl,
8) ^ (x
>>> 7)
15626 var gamma0l = S(xl, x,
1) ^ S(xl, x,
8) ^ S(xl, x,
7)
15629 xl = W[j -
2 *
2 +
1]
15630 var gamma1 = S(x, xl,
19) ^ S(xl, x,
29) ^ (x
>>> 6)
15631 var gamma1l = S(xl, x,
19) ^ S(x, xl,
29) ^ S(xl, x,
6)
15633 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
15634 var Wi7 = W[j -
7 *
2]
15635 var Wi7l = W[j -
7 *
2 +
1]
15637 var Wi16 = W[j -
16 *
2]
15638 var Wi16l = W[j -
16 *
2 +
1]
15640 Wil = gamma0l + Wi7l
15641 Wi = gamma0 + Wi7 + ((Wil
>>> 0) < (gamma0l
>>> 0) ?
1 :
0)
15642 Wil = Wil + gamma1l
15643 Wi = Wi + gamma1 + ((Wil
>>> 0) < (gamma1l
>>> 0) ?
1 :
0)
15645 Wi = Wi + Wi16 + ((Wil
>>> 0) < (Wi16l
>>> 0) ?
1 :
0)
15652 var maj = Maj(a, b, c)
15653 var majl = Maj(al, bl, cl)
15655 var sigma0h = S(a, al,
28) ^ S(al, a,
2) ^ S(al, a,
7)
15656 var sigma0l = S(al, a,
28) ^ S(a, al,
2) ^ S(a, al,
7)
15657 var sigma1h = S(e, el,
14) ^ S(e, el,
18) ^ S(el, e,
9)
15658 var sigma1l = S(el, e,
14) ^ S(el, e,
18) ^ S(e, el,
9)
15660 // t1 = h + sigma1 + ch + K[i] + W[i]
15664 var ch = Ch(e, f, g)
15665 var chl = Ch(el, fl, gl)
15667 var t1l = hl + sigma1l
15668 var t1 = h + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0)
15670 t1 = t1 + ch + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0)
15672 t1 = t1 + Ki + ((t1l
>>> 0) < (Kil
>>> 0) ?
1 :
0)
15674 t1 = t1 + Wi + ((t1l
>>> 0) < (Wil
>>> 0) ?
1 :
0)
15676 // t2 = sigma0 + maj
15677 var t2l = sigma0l + majl
15678 var t2 = sigma0h + maj + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0)
15686 el = (dl + t1l) |
0
15687 e = (d + t1 + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
15694 al = (t1l + t2l) |
0
15695 a = (t1 + t2 + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0
15702 Wi = M.readInt32BE(j *
4)
15703 Wil = M.readInt32BE(j *
4 +
4)
15713 this._al = (this._al + al) |
0
15714 this._bl = (this._bl + bl) |
0
15715 this._cl = (this._cl + cl) |
0
15716 this._dl = (this._dl + dl) |
0
15717 this._el = (this._el + el) |
0
15718 this._fl = (this._fl + fl) |
0
15719 this._gl = (this._gl + gl) |
0
15720 this._hl = (this._hl + hl) |
0
15722 this._a = (this._a + a + ((this._al
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0
15723 this._b = (this._b + b + ((this._bl
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0
15724 this._c = (this._c + c + ((this._cl
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0
15725 this._d = (this._d + d + ((this._dl
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
15726 this._e = (this._e + e + ((this._el
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0
15727 this._f = (this._f + f + ((this._fl
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0
15728 this._g = (this._g + g + ((this._gl
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0
15729 this._h = (this._h + h + ((this._hl
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0
15732 Sha512.prototype._hash = function () {
15733 var H = new Buffer(
64)
15735 function writeInt64BE (h, l, offset) {
15736 H.writeInt32BE(h, offset)
15737 H.writeInt32BE(l, offset +
4)
15740 writeInt64BE(this._a, this._al,
0)
15741 writeInt64BE(this._b, this._bl,
8)
15742 writeInt64BE(this._c, this._cl,
16)
15743 writeInt64BE(this._d, this._dl,
24)
15744 writeInt64BE(this._e, this._el,
32)
15745 writeInt64BE(this._f, this._fl,
40)
15746 writeInt64BE(this._g, this._gl,
48)
15747 writeInt64BE(this._h, this._hl,
56)
15752 module.exports = Sha512
15754 }).call(this,require(
"buffer").Buffer)
15755 },{
"./hash":
37,
"buffer":
7,
"inherits":
35}],
45:[function(require,module,exports){
15756 (function (Buffer){
15758 var createHash = require('create-hash/browser');
15759 var inherits = require('inherits')
15761 var Transform = require('stream').Transform
15763 var ZEROS = new Buffer(
128)
15766 function Hmac(alg, key) {
15767 Transform.call(this)
15769 if (typeof key === 'string') {
15770 key = new Buffer(key)
15773 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
15778 if (key.length
> blocksize) {
15779 key = createHash(alg).update(key).digest()
15781 } else if (key.length < blocksize) {
15782 key = Buffer.concat([key, ZEROS], blocksize)
15785 var ipad = this._ipad = new Buffer(blocksize)
15786 var opad = this._opad = new Buffer(blocksize)
15788 for (var i =
0; i < blocksize; i++) {
15789 ipad[i] = key[i] ^
0x36
15790 opad[i] = key[i] ^
0x5C
15793 this._hash = createHash(alg).update(ipad)
15796 inherits(Hmac, Transform)
15798 Hmac.prototype.update = function (data, enc) {
15799 this._hash.update(data, enc)
15804 Hmac.prototype._transform = function (data, _, next) {
15805 this._hash.update(data)
15810 Hmac.prototype._flush = function (next) {
15811 this.push(this.digest())
15816 Hmac.prototype.digest = function (enc) {
15817 var h = this._hash.digest()
15819 return createHash(this._alg).update(this._opad).update(h).digest(enc)
15822 module.exports = function createHmac(alg, key) {
15823 return new Hmac(alg, key)
15826 }).call(this,require("buffer").Buffer)
15827 },{"buffer":
7,"create-hash/browser":
32,"inherits":
46,"stream":
26}],
46:[function(require,module,exports){
15828 arguments[
4][
12][
0].apply(exports,arguments)
15829 },{"dup":
12}],
47:[function(require,module,exports){
15830 var assert = require('assert')
15831 var BigInteger = require('bigi')
15833 var Point = require('./point')
15835 function Curve(p, a, b, Gx, Gy, n, h) {
15839 this.G = Point.fromAffine(this, Gx, Gy)
15843 this.infinity = new Point(this, null, null, BigInteger.ZERO)
15846 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
15849 Curve.prototype.pointFromX = function(isOdd, x) {
15850 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
15851 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
15854 if (beta.isEven() ^ !isOdd) {
15855 y = this.p.subtract(y) // -y % p
15858 return Point.fromAffine(this, x, y)
15861 Curve.prototype.isInfinity = function(Q) {
15862 if (Q === this.infinity) return true
15864 return Q.z.signum() ===
0 && Q.y.signum() !==
0
15867 Curve.prototype.isOnCurve = function(Q) {
15868 if (this.isInfinity(Q)) return true
15876 // Check that xQ and yQ are integers in the interval [
0, p -
1]
15877 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
15878 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
15880 // and check that y^
2 = x^
3 + ax + b (mod p)
15881 var lhs = y.square().mod(p)
15882 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
15883 return lhs.equals(rhs)
15887 * Validate an elliptic curve point.
15889 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
15891 Curve.prototype.validate = function(Q) {
15893 assert(!this.isInfinity(Q), 'Point is at infinity')
15894 assert(this.isOnCurve(Q), 'Point is not on the curve')
15896 // Check nQ = O (where Q is a scalar multiple of G)
15897 var nQ = Q.multiply(this.n)
15898 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
15903 module.exports = Curve
15905 },{"./point":
51,"assert":
5,"bigi":
3}],
48:[function(require,module,exports){
15908 "p": "fffffffdffffffffffffffffffffffff",
15909 "a": "fffffffdfffffffffffffffffffffffc",
15910 "b": "e87579c11079f43dd824993c2cee5ed3",
15911 "n": "fffffffe0000000075a30d1b9038a115",
15913 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
15914 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
15917 "p": "fffffffffffffffffffffffffffffffeffffac73",
15920 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
15922 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
15923 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
15926 "p": "ffffffffffffffffffffffffffffffff7fffffff",
15927 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
15928 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
15929 "n": "
0100000000000000000001f4c8f927aed3ca752257",
15931 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
15932 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
15935 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
15938 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
15940 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
15941 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
15944 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
15945 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
15946 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
15947 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
15949 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
15950 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
15953 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
15956 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
15958 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
15959 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
15962 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
15963 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
15964 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
15965 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
15967 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
15968 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
15972 },{}],
49:[function(require,module,exports){
15973 var Point = require('./point')
15974 var Curve = require('./curve')
15976 var getCurveByName = require('./names')
15981 getCurveByName: getCurveByName
15984 },{"./curve":
47,"./names":
50,"./point":
51}],
50:[function(require,module,exports){
15985 var BigInteger = require('bigi')
15987 var curves = require('./curves')
15988 var Curve = require('./curve')
15990 function getCurveByName(name) {
15991 var curve = curves[name]
15992 if (!curve) return null
15994 var p = new BigInteger(curve.p,
16)
15995 var a = new BigInteger(curve.a,
16)
15996 var b = new BigInteger(curve.b,
16)
15997 var n = new BigInteger(curve.n,
16)
15998 var h = new BigInteger(curve.h,
16)
15999 var Gx = new BigInteger(curve.Gx,
16)
16000 var Gy = new BigInteger(curve.Gy,
16)
16002 return new Curve(p, a, b, Gx, Gy, n, h)
16005 module.exports = getCurveByName
16007 },{"./curve":
47,"./curves":
48,"bigi":
3}],
51:[function(require,module,exports){
16008 (function (Buffer){
16009 var assert = require('assert')
16010 var BigInteger = require('bigi')
16012 var THREE = BigInteger.valueOf(
3)
16014 function Point(curve, x, y, z) {
16015 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
16023 this.compressed = true
16026 Object.defineProperty(Point.prototype, 'zInv', {
16028 if (this._zInv === null) {
16029 this._zInv = this.z.modInverse(this.curve.p)
16036 Object.defineProperty(Point.prototype, 'affineX', {
16038 return this.x.multiply(this.zInv).mod(this.curve.p)
16042 Object.defineProperty(Point.prototype, 'affineY', {
16044 return this.y.multiply(this.zInv).mod(this.curve.p)
16048 Point.fromAffine = function(curve, x, y) {
16049 return new Point(curve, x, y, BigInteger.ONE)
16052 Point.prototype.equals = function(other) {
16053 if (other === this) return true
16054 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
16055 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
16057 // u = Y2 * Z1 - Y1 * Z2
16058 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
16060 if (u.signum() !==
0) return false
16062 // v = X2 * Z1 - X1 * Z2
16063 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
16065 return v.signum() ===
0
16068 Point.prototype.negate = function() {
16069 var y = this.curve.p.subtract(this.y)
16071 return new Point(this.curve, this.x, y, this.z)
16074 Point.prototype.add = function(b) {
16075 if (this.curve.isInfinity(this)) return b
16076 if (this.curve.isInfinity(b)) return this
16083 // u = Y2 * Z1 - Y1 * Z2
16084 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
16085 // v = X2 * Z1 - X1 * Z2
16086 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
16088 if (v.signum() ===
0) {
16089 if (u.signum() ===
0) {
16090 return this.twice() // this == b, so double
16093 return this.curve.infinity // this = -b, so infinity
16096 var v2 = v.square()
16097 var v3 = v2.multiply(v)
16098 var x1v2 = x1.multiply(v2)
16099 var zu2 = u.square().multiply(this.z)
16101 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
16102 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
16103 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
16104 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)
16105 // z3 = v^
3 * z1 * z2
16106 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
16108 return new Point(this.curve, x3, y3, z3)
16111 Point.prototype.twice = function() {
16112 if (this.curve.isInfinity(this)) return this
16113 if (this.y.signum() ===
0) return this.curve.infinity
16118 var y1z1 = y1.multiply(this.z)
16119 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
16120 var a = this.curve.a
16122 // w =
3 * x1^
2 + a * z1^
2
16123 var w = x1.square().multiply(THREE)
16125 if (a.signum() !==
0) {
16126 w = w.add(this.z.square().multiply(a))
16129 w = w.mod(this.curve.p)
16130 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
16131 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
16132 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
16133 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
16134 // z3 =
8 * (y1 * z1)^
3
16135 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
16137 return new Point(this.curve, x3, y3, z3)
16140 // Simple NAF (Non-Adjacent Form) multiplication algorithm
16141 // TODO: modularize the multiplication algorithm
16142 Point.prototype.multiply = function(k) {
16143 if (this.curve.isInfinity(this)) return this
16144 if (k.signum() ===
0) return this.curve.infinity
16147 var h = e.multiply(THREE)
16149 var neg = this.negate()
16152 for (var i = h.bitLength() -
2; i
> 0; --i) {
16155 var hBit = h.testBit(i)
16156 var eBit = e.testBit(i)
16158 if (hBit != eBit) {
16159 R = R.add(hBit ? this : neg)
16166 // Compute this*j + x*k (simultaneous multiplication)
16167 Point.prototype.multiplyTwo = function(j, x, k) {
16170 if (j.bitLength()
> k.bitLength())
16171 i = j.bitLength() -
1
16173 i = k.bitLength() -
1
16175 var R = this.curve.infinity
16176 var both = this.add(x)
16181 var jBit = j.testBit(i)
16182 var kBit = k.testBit(i)
16203 Point.prototype.getEncoded = function(compressed) {
16204 if (compressed == undefined) compressed = this.compressed
16205 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
16207 var x = this.affineX
16208 var y = this.affineY
16212 // Determine size of q in bytes
16213 var byteLength = Math.floor((this.curve.p.bitLength() +
7) /
8)
16217 buffer = new Buffer(
1 + byteLength)
16218 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
16222 buffer = new Buffer(
1 + byteLength + byteLength)
16223 buffer.writeUInt8(
0x04,
0)
16225 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
16228 x.toBuffer(byteLength).copy(buffer,
1)
16233 Point.decodeFrom = function(curve, buffer) {
16234 var type = buffer.readUInt8(
0)
16235 var compressed = (type !==
4)
16237 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
16238 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
16242 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
16243 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
16245 var isOdd = (type ===
0x03)
16246 Q = curve.pointFromX(isOdd, x)
16249 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
16251 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
16252 Q = Point.fromAffine(curve, x, y)
16255 Q.compressed = compressed
16259 Point.prototype.toString = function () {
16260 if (this.curve.isInfinity(this)) return '(INFINITY)'
16262 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
16265 module.exports = Point
16267 }).call(this,require("buffer").Buffer)
16268 },{"assert":
5,"bigi":
3,"buffer":
7}],
52:[function(require,module,exports){
16269 (function (process,global,Buffer){
16272 var crypto = global.crypto || global.msCrypto
16273 if(crypto && crypto.getRandomValues) {
16274 module.exports = randomBytes;
16276 module.exports = oldBrowser;
16278 function randomBytes(size, cb) {
16279 var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
16280 /* This will not work in older browsers.
16281 * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
16284 crypto.getRandomValues(bytes);
16285 if (typeof cb === 'function') {
16286 return process.nextTick(function () {
16292 function oldBrowser() {
16294 'secure random number generation not supported by this browser\n'+
16295 'use chrome, FireFox or Internet Explorer
11'
16299 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
16300 },{"_process":
14,"buffer":
7}],
53:[function(require,module,exports){
16301 (function (Buffer){
16304 function getFunctionName(fn) {
16305 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1];
16308 function getTypeTypeName(type) {
16309 if (nativeTypes.Function(type)) {
16310 type = type.toJSON ? type.toJSON() : getFunctionName(type);
16312 if (nativeTypes.Object(type)) return JSON.stringify(type);
16317 function getValueTypeName(value) {
16318 if (nativeTypes.Null(value)) return '';
16320 return getFunctionName(value.constructor);
16323 function tfErrorString(type, value) {
16324 var typeTypeName = getTypeTypeName(type);
16325 var valueTypeName = getValueTypeName(value);
16327 return 'Expected ' + typeTypeName + ', got ' + (valueTypeName && valueTypeName + ' ') + JSON.stringify(value);
16330 function tfPropertyErrorString(type, name, value) {
16331 return tfErrorString('property \"' + name + '\" of type ' + getTypeTypeName(type), value);
16334 var nativeTypes = {
16335 Array: (function (_Array) {
16336 function Array(_x) {
16337 return _Array.apply(this, arguments);
16340 Array.toString = function () {
16341 return _Array.toString();
16345 })(function (value) {
16346 return value !== null && value !== undefined && value.constructor === Array;
16348 Boolean: function Boolean(value) {
16349 return typeof value === 'boolean';
16351 Buffer: (function (_Buffer) {
16352 function Buffer(_x2) {
16353 return _Buffer.apply(this, arguments);
16356 Buffer.toString = function () {
16357 return _Buffer.toString();
16361 })(function (value) {
16362 return Buffer.isBuffer(value);
16364 Function: function Function(value) {
16365 return typeof value === 'function';
16367 Null: function Null(value) {
16368 return value === undefined || value === null;
16370 Number: function Number(value) {
16371 return typeof value === 'number';
16373 Object: function Object(value) {
16374 return typeof value === 'object';
16376 String: function String(value) {
16377 return typeof value === 'string';
16384 function tJSON(type) {
16385 return type && type.toJSON ? type.toJSON() : type;
16388 function sJSON(type) {
16389 var json = tJSON(type);
16390 return nativeTypes.Object(json) ? JSON.stringify(json) : json;
16394 arrayOf: function arrayOf(type) {
16395 function arrayOf(value, strict) {
16397 return nativeTypes.Array(value) && value.every(function (x) {
16398 return typeforce(type, x, strict);
16404 arrayOf.toJSON = function () {
16405 return [tJSON(type)];
16411 maybe: function maybe(type) {
16412 function maybe(value, strict) {
16413 return nativeTypes.Null(value) || typeforce(type, value, strict);
16415 maybe.toJSON = function () {
16416 return '?' + sJSON(type);
16422 object: function object(type) {
16423 function object(value, strict) {
16424 typeforce(nativeTypes.Object, value, strict);
16426 var propertyName, propertyType, propertyValue;
16429 for (propertyName in type) {
16430 propertyType = type[propertyName];
16431 propertyValue = value[propertyName];
16433 typeforce(propertyType, propertyValue, strict);
16436 throw new TypeError(tfPropertyErrorString(propertyType, propertyName, propertyValue));
16440 for (propertyName in value) {
16441 if (type[propertyName]) continue;
16443 throw new TypeError('Unexpected property "' + propertyName + '"');
16449 object.toJSON = function () {
16456 oneOf: function oneOf() {
16457 for (var _len = arguments.length, types = Array(_len), _key =
0; _key < _len; _key++) {
16458 types[_key] = arguments[_key];
16461 function oneOf(value, strict) {
16462 return types.some(function (type) {
16464 return typeforce(type, value, strict);
16470 oneOf.toJSON = function () {
16471 return types.map(sJSON).join('|');
16477 quacksLike: function quacksLike(type) {
16478 function quacksLike(value, strict) {
16479 return type === getValueTypeName(value);
16481 quacksLike.toJSON = function () {
16488 tuple: function tuple() {
16489 for (var _len2 = arguments.length, types = Array(_len2), _key2 =
0; _key2 < _len2; _key2++) {
16490 types[_key2] = arguments[_key2];
16493 function tuple(value, strict) {
16494 return types.every(function (type, i) {
16495 return typeforce(type, value[i], strict);
16498 tuple.toJSON = function () {
16499 return '(' + types.map(sJSON).join(', ') + ')';
16505 value: function value(expected) {
16506 function value(actual) {
16507 return actual === expected;
16509 value.toJSON = function () {
16517 function compile(type) {
16518 if (nativeTypes.String(type)) {
16519 if (type[
0] === '?') return otherTypes.maybe(compile(type.slice(
1)));
16521 return nativeTypes[type] || otherTypes.quacksLike(type);
16522 } else if (type && nativeTypes.Object(type)) {
16523 if (nativeTypes.Array(type)) return otherTypes.arrayOf(compile(type[
0]));
16527 for (var propertyName in type) {
16528 compiled[propertyName] = compile(type[propertyName]);
16531 return otherTypes.object(compiled);
16532 } else if (nativeTypes.Function(type)) {
16536 return otherTypes.value(type);
16539 function typeforce(_x3, _x4, _x5) {
16542 _function: while (_again) {
16548 if (nativeTypes.Function(type)) {
16549 if (type(value, strict)) return true;
16551 throw new TypeError(tfErrorString(type, value));
16555 _x3 = compile(type);
16559 continue _function;
16563 // assign all types to typeforce function
16565 Object.keys(nativeTypes).forEach(function (typeName) {
16566 var nativeType = nativeTypes[typeName];
16567 nativeType.toJSON = function () {
16571 typeforce[typeName] = nativeType;
16574 for (typeName in otherTypes) {
16575 typeforce[typeName] = otherTypes[typeName];
16578 module.exports = typeforce;
16579 module.exports.compile = compile;
16580 }).call(this,require("buffer").Buffer)
16581 },{"buffer":
7}],
54:[function(require,module,exports){
16582 (function (Buffer){
16583 var assert = require('assert')
16584 var base58check = require('bs58check')
16585 var typeForce = require('typeforce')
16586 var networks = require('./networks')
16587 var scripts = require('./scripts')
16589 function findScriptTypeByVersion (version) {
16590 for (var networkName in networks) {
16591 var network = networks[networkName]
16593 if (version === network.pubKeyHash) return 'pubkeyhash'
16594 if (version === network.scriptHash) return 'scripthash'
16598 function Address (hash, version) {
16599 typeForce('Buffer', hash)
16601 assert.strictEqual(hash.length,
20, 'Invalid hash length')
16602 assert.strictEqual(version &
0xff, version, 'Invalid version byte')
16605 this.version = version
16608 Address.fromBase58Check = function (string) {
16609 var payload = base58check.decode(string)
16610 var version = payload.readUInt8(
0)
16611 var hash = payload.slice(
1)
16613 return new Address(hash, version)
16616 Address.fromOutputScript = function (script, network) {
16617 network = network || networks.bitcoin
16619 if (scripts.isPubKeyHashOutput(script)) return new Address(script.chunks[
2], network.pubKeyHash)
16620 if (scripts.isScriptHashOutput(script)) return new Address(script.chunks[
1], network.scriptHash)
16622 assert(false, script.toASM() + ' has no matching Address')
16625 Address.prototype.toBase58Check = function () {
16626 var payload = new Buffer(
21)
16627 payload.writeUInt8(this.version,
0)
16628 this.hash.copy(payload,
1)
16630 return base58check.encode(payload)
16633 Address.prototype.toOutputScript = function () {
16634 var scriptType = findScriptTypeByVersion(this.version)
16636 if (scriptType === 'pubkeyhash') return scripts.pubKeyHashOutput(this.hash)
16637 if (scriptType === 'scripthash') return scripts.scriptHashOutput(this.hash)
16639 assert(false, this.toString() + ' has no matching Script')
16642 Address.prototype.toString = Address.prototype.toBase58Check
16644 module.exports = Address
16646 }).call(this,require("buffer").Buffer)
16647 },{"./networks":
66,"./scripts":
69,"assert":
5,"bs58check":
31,"buffer":
7,"typeforce":
53}],
55:[function(require,module,exports){
16648 var bs58check = require('bs58check')
16650 function decode () {
16651 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
16653 return bs58check.decode.apply(undefined, arguments)
16656 function encode () {
16657 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
16659 return bs58check.encode.apply(undefined, arguments)
16667 },{"bs58check":
31}],
56:[function(require,module,exports){
16668 (function (Buffer){
16669 var assert = require('assert')
16670 var bufferutils = require('./bufferutils')
16671 var crypto = require('./crypto')
16673 var Transaction = require('./transaction')
16675 function Block () {
16677 this.prevHash = null
16678 this.merkleRoot = null
16684 Block.fromBuffer = function (buffer) {
16685 assert(buffer.length
>=
80, 'Buffer too small (<
80 bytes)')
16688 function readSlice (n) {
16690 return buffer.slice(offset - n, offset)
16693 function readUInt32 () {
16694 var i = buffer.readUInt32LE(offset)
16699 var block = new Block()
16700 block.version = readUInt32()
16701 block.prevHash = readSlice(
32)
16702 block.merkleRoot = readSlice(
32)
16703 block.timestamp = readUInt32()
16704 block.bits = readUInt32()
16705 block.nonce = readUInt32()
16707 if (buffer.length ===
80) return block
16709 function readVarInt () {
16710 var vi = bufferutils.readVarInt(buffer, offset)
16715 // FIXME: poor performance
16716 function readTransaction () {
16717 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
16719 offset += tx.toBuffer().length
16723 var nTransactions = readVarInt()
16724 block.transactions = []
16726 for (var i =
0; i < nTransactions; ++i) {
16727 var tx = readTransaction()
16728 block.transactions.push(tx)
16734 Block.fromHex = function (hex) {
16735 return Block.fromBuffer(new Buffer(hex, 'hex'))
16738 Block.prototype.getHash = function () {
16739 return crypto.hash256(this.toBuffer(true))
16742 Block.prototype.getId = function () {
16743 return bufferutils.reverse(this.getHash()).toString('hex')
16746 Block.prototype.getUTCDate = function () {
16747 var date = new Date(
0) // epoch
16748 date.setUTCSeconds(this.timestamp)
16753 Block.prototype.toBuffer = function (headersOnly) {
16754 var buffer = new Buffer(
80)
16757 function writeSlice (slice) {
16758 slice.copy(buffer, offset)
16759 offset += slice.length
16762 function writeUInt32 (i) {
16763 buffer.writeUInt32LE(i, offset)
16767 writeUInt32(this.version)
16768 writeSlice(this.prevHash)
16769 writeSlice(this.merkleRoot)
16770 writeUInt32(this.timestamp)
16771 writeUInt32(this.bits)
16772 writeUInt32(this.nonce)
16774 if (headersOnly || !this.transactions) return buffer
16776 var txLenBuffer = bufferutils.varIntBuffer(this.transactions.length)
16777 var txBuffers = this.transactions.map(function (tx) {
16778 return tx.toBuffer()
16781 return Buffer.concat([buffer, txLenBuffer].concat(txBuffers))
16784 Block.prototype.toHex = function (headersOnly) {
16785 return this.toBuffer(headersOnly).toString('hex')
16788 module.exports = Block
16790 }).call(this,require("buffer").Buffer)
16791 },{"./bufferutils":
57,"./crypto":
58,"./transaction":
70,"assert":
5,"buffer":
7}],
57:[function(require,module,exports){
16792 (function (Buffer){
16793 var assert = require('assert')
16794 var opcodes = require('./opcodes')
16796 // https://github.com/feross/buffer/blob/master/index.js#L1127
16797 function verifuint (value, max) {
16798 assert(typeof value === 'number', 'cannot write a non-number as a number')
16799 assert(value
>=
0, 'specified a negative value for writing an unsigned value')
16800 assert(value <= max, 'value is larger than maximum value for type')
16801 assert(Math.floor(value) === value, 'value has a fractional component')
16804 function pushDataSize (i) {
16805 return i < opcodes.OP_PUSHDATA1 ?
1
16811 function readPushDataInt (buffer, offset) {
16812 var opcode = buffer.readUInt8(offset)
16816 if (opcode < opcodes.OP_PUSHDATA1) {
16821 } else if (opcode === opcodes.OP_PUSHDATA1) {
16822 if (offset +
2 > buffer.length) return null
16823 number = buffer.readUInt8(offset +
1)
16827 } else if (opcode === opcodes.OP_PUSHDATA2) {
16828 if (offset +
3 > buffer.length) return null
16829 number = buffer.readUInt16LE(offset +
1)
16834 if (offset +
5 > buffer.length) return null
16835 assert.equal(opcode, opcodes.OP_PUSHDATA4, 'Unexpected opcode')
16837 number = buffer.readUInt32LE(offset +
1)
16848 function readUInt64LE (buffer, offset) {
16849 var a = buffer.readUInt32LE(offset)
16850 var b = buffer.readUInt32LE(offset +
4)
16853 verifuint(b + a,
0x001fffffffffffff)
16858 function readVarInt (buffer, offset) {
16859 var t = buffer.readUInt8(offset)
16868 } else if (t <
254) {
16869 number = buffer.readUInt16LE(offset +
1)
16873 } else if (t <
255) {
16874 number = buffer.readUInt32LE(offset +
1)
16879 number = readUInt64LE(buffer, offset +
1)
16889 function writePushDataInt (buffer, number, offset) {
16890 var size = pushDataSize(number)
16894 buffer.writeUInt8(number, offset)
16897 } else if (size ===
2) {
16898 buffer.writeUInt8(opcodes.OP_PUSHDATA1, offset)
16899 buffer.writeUInt8(number, offset +
1)
16902 } else if (size ===
3) {
16903 buffer.writeUInt8(opcodes.OP_PUSHDATA2, offset)
16904 buffer.writeUInt16LE(number, offset +
1)
16908 buffer.writeUInt8(opcodes.OP_PUSHDATA4, offset)
16909 buffer.writeUInt32LE(number, offset +
1)
16915 function writeUInt64LE (buffer, value, offset) {
16916 verifuint(value,
0x001fffffffffffff)
16918 buffer.writeInt32LE(value & -
1, offset)
16919 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16922 function varIntSize (i) {
16925 : i <
0x100000000 ?
5
16929 function writeVarInt (buffer, number, offset) {
16930 var size = varIntSize(number)
16934 buffer.writeUInt8(number, offset)
16937 } else if (size ===
3) {
16938 buffer.writeUInt8(
253, offset)
16939 buffer.writeUInt16LE(number, offset +
1)
16942 } else if (size ===
5) {
16943 buffer.writeUInt8(
254, offset)
16944 buffer.writeUInt32LE(number, offset +
1)
16948 buffer.writeUInt8(
255, offset)
16949 writeUInt64LE(buffer, number, offset +
1)
16955 function varIntBuffer (i) {
16956 var size = varIntSize(i)
16957 var buffer = new Buffer(size)
16958 writeVarInt(buffer, i,
0)
16963 function reverse (buffer) {
16964 var buffer2 = new Buffer(buffer)
16965 Array.prototype.reverse.call(buffer2)
16970 pushDataSize: pushDataSize,
16971 readPushDataInt: readPushDataInt,
16972 readUInt64LE: readUInt64LE,
16973 readVarInt: readVarInt,
16975 varIntBuffer: varIntBuffer,
16976 varIntSize: varIntSize,
16977 writePushDataInt: writePushDataInt,
16978 writeUInt64LE: writeUInt64LE,
16979 writeVarInt: writeVarInt
16982 }).call(this,require("buffer").Buffer)
16983 },{"./opcodes":
67,"assert":
5,"buffer":
7}],
58:[function(require,module,exports){
16984 var createHash = require('create-hash')
16986 function hash160 (buffer) {
16987 return ripemd160(sha256(buffer))
16990 function hash256 (buffer) {
16991 return sha256(sha256(buffer))
16994 function ripemd160 (buffer) {
16995 return createHash('rmd160').update(buffer).digest()
16998 function sha1 (buffer) {
16999 return createHash('sha1').update(buffer).digest()
17002 function sha256 (buffer) {
17003 return createHash('sha256').update(buffer).digest()
17006 // FIXME: Name not consistent with others
17007 var createHmac = require('create-hmac')
17009 function HmacSHA256 (buffer, secret) {
17010 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
17011 return createHmac('sha256', secret).update(buffer).digest()
17014 function HmacSHA512 (buffer, secret) {
17015 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
17016 return createHmac('sha512', secret).update(buffer).digest()
17020 ripemd160: ripemd160,
17025 HmacSHA256: HmacSHA256,
17026 HmacSHA512: HmacSHA512
17029 },{"create-hash":
32,"create-hmac":
45}],
59:[function(require,module,exports){
17030 (function (Buffer){
17031 var assert = require('assert')
17032 var createHmac = require('create-hmac')
17033 var typeForce = require('typeforce')
17035 var BigInteger = require('bigi')
17036 var ECSignature = require('./ecsignature')
17038 var ZERO = new Buffer([
0])
17039 var ONE = new Buffer([
1])
17041 // https://tools.ietf.org/html/rfc6979#section-
3.2
17042 function deterministicGenerateK (curve, hash, d, checkSig) {
17043 typeForce('Buffer', hash)
17044 typeForce('BigInteger', d)
17046 // FIXME: remove/uncomment for
2.0.0
17047 // typeForce('Function', checkSig)
17049 if (typeof checkSig !== 'function') {
17050 console.warn('deterministicGenerateK requires a checkSig callback in
2.0.0, see #
337 for more information')
17052 checkSig = function (k) {
17055 var e = BigInteger.fromBuffer(hash)
17057 var Q = G.multiply(k)
17059 if (curve.isInfinity(Q))
17062 var r = Q.affineX.mod(n)
17063 if (r.signum() ===
0)
17066 var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
17067 if (s.signum() ===
0)
17075 assert.equal(hash.length,
32, 'Hash must be
256 bit')
17077 var x = d.toBuffer(
32)
17078 var k = new Buffer(
32)
17079 var v = new Buffer(
32)
17081 // Step A, ignored as hash already provided
17089 k = createHmac('sha256', k)
17097 v = createHmac('sha256', k).update(v).digest()
17100 k = createHmac('sha256', k)
17108 v = createHmac('sha256', k).update(v).digest()
17110 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
17112 v = createHmac('sha256', k).update(v).digest()
17114 var T = BigInteger.fromBuffer(v)
17116 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
17117 while ((T.signum() <=
0) || (T.compareTo(curve.n)
>=
0) || !checkSig(T)) {
17118 k = createHmac('sha256', k)
17123 v = createHmac('sha256', k).update(v).digest()
17125 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
17127 v = createHmac('sha256', k).update(v).digest()
17128 T = BigInteger.fromBuffer(v)
17134 function sign (curve, hash, d) {
17137 var e = BigInteger.fromBuffer(hash)
17141 deterministicGenerateK(curve, hash, d, function (k) {
17142 var Q = G.multiply(k)
17144 if (curve.isInfinity(Q))
17147 r = Q.affineX.mod(n)
17148 if (r.signum() ===
0)
17151 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
17152 if (s.signum() ===
0)
17158 var N_OVER_TWO = n.shiftRight(
1)
17160 // enforce low S values, see bip62: 'low s values in signatures'
17161 if (s.compareTo(N_OVER_TWO)
> 0) {
17165 return new ECSignature(r, s)
17168 function verifyRaw (curve, e, signature, Q) {
17172 var r = signature.r
17173 var s = signature.s
17175 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
17176 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
17177 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
17180 var c = s.modInverse(n)
17182 //
1.4.4 Compute u1 = es^−
1 mod n
17183 // u2 = rs^−
1 mod n
17184 var u1 = e.multiply(c).mod(n)
17185 var u2 = r.multiply(c).mod(n)
17187 //
1.4.5 Compute R = (xR, yR) = u1G + u2Q
17188 var R = G.multiplyTwo(u1, Q, u2)
17189 var v = R.affineX.mod(n)
17191 //
1.4.5 (cont.) Enforce R is not at infinity
17192 if (curve.isInfinity(R)) return false
17194 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
17198 function verify (curve, hash, signature, Q) {
17199 //
1.4.2 H = Hash(M), already done by the user
17201 var e = BigInteger.fromBuffer(hash)
17203 return verifyRaw(curve, e, signature, Q)
17207 * Recover a public key from a signature.
17209 * See SEC
1: Elliptic Curve Cryptography, section
4.1.6, "Public
17210 * Key Recovery Operation".
17212 * http://www.secg.org/download/aid-
780/sec1-v2.pdf
17214 function recoverPubKey (curve, e, signature, i) {
17215 assert.strictEqual(i &
3, i, 'Recovery param is more than two bits')
17220 var r = signature.r
17221 var s = signature.s
17223 assert(r.signum()
> 0 && r.compareTo(n) <
0, 'Invalid r value')
17224 assert(s.signum()
> 0 && s.compareTo(n) <
0, 'Invalid s value')
17226 // A set LSB signifies that the y-coordinate is odd
17229 // The more significant bit specifies whether we should use the
17230 // first or second candidate key.
17231 var isSecondKey = i
>> 1
17233 //
1.1 Let x = r + jn
17234 var x = isSecondKey ? r.add(n) : r
17235 var R = curve.pointFromX(isYOdd, x)
17237 //
1.4 Check that nR is at infinity
17238 var nR = R.multiply(n)
17239 assert(curve.isInfinity(nR), 'nR is not a valid curve point')
17241 // Compute -e from e
17242 var eNeg = e.negate().mod(n)
17244 //
1.6.1 Compute Q = r^-
1 (sR - eG)
17245 // Q = r^-
1 (sR + -eG)
17246 var rInv = r.modInverse(n)
17248 var Q = R.multiplyTwo(s, G, eNeg).multiply(rInv)
17255 * Calculate pubkey extraction parameter.
17257 * When extracting a pubkey from a signature, we have to
17258 * distinguish four different cases. Rather than putting this
17259 * burden on the verifier, Bitcoin includes a
2-bit value with the
17262 * This function simply tries all four cases and returns the value
17263 * that resulted in a successful pubkey recovery.
17265 function calcPubKeyRecoveryParam (curve, e, signature, Q) {
17266 for (var i =
0; i <
4; i++) {
17267 var Qprime = recoverPubKey(curve, e, signature, i)
17270 if (Qprime.equals(Q)) {
17275 throw new Error('Unable to find valid recovery factor')
17279 calcPubKeyRecoveryParam: calcPubKeyRecoveryParam,
17280 deterministicGenerateK: deterministicGenerateK,
17281 recoverPubKey: recoverPubKey,
17284 verifyRaw: verifyRaw
17287 }).call(this,require(
"buffer").Buffer)
17288 },{
"./ecsignature":
62,
"assert":
5,
"bigi":
3,
"buffer":
7,
"create-hmac":
45,
"typeforce":
53}],
60:[function(require,module,exports){
17289 (function (Buffer){
17290 var assert = require('assert')
17291 var base58check = require('bs58check')
17292 var ecdsa = require('./ecdsa')
17293 var networks = require('./networks')
17294 var randomBytes = require('randombytes')
17295 var typeForce = require('typeforce')
17297 var BigInteger = require('bigi')
17298 var ECPubKey = require('./ecpubkey')
17300 var ecurve = require('ecurve')
17301 var secp256k1 = ecurve.getCurveByName('secp256k1')
17303 function ECKey (d, compressed) {
17304 assert(d.signum()
> 0, 'Private key must be greater than
0')
17305 assert(d.compareTo(ECKey.curve.n) <
0, 'Private key must be less than the curve order')
17307 var Q = ECKey.curve.G.multiply(d)
17310 this.pub = new ECPubKey(Q, compressed)
17314 ECKey.curve = secp256k1
17316 // Static constructors
17317 ECKey.fromWIF = function (string) {
17318 var payload = base58check.decode(string)
17319 var compressed = false
17321 // Ignore the version byte
17322 payload = payload.slice(
1)
17324 if (payload.length ===
33) {
17325 assert.strictEqual(payload[
32],
0x01, 'Invalid compression flag')
17327 // Truncate the compression flag
17328 payload = payload.slice(
0, -
1)
17332 assert.equal(payload.length,
32, 'Invalid WIF payload length')
17334 var d = BigInteger.fromBuffer(payload)
17335 return new ECKey(d, compressed)
17338 ECKey.makeRandom = function (compressed, rng) {
17339 rng = rng || randomBytes
17341 var buffer = rng(
32)
17342 typeForce('Buffer', buffer)
17343 assert.equal(buffer.length,
32, 'Expected
256-bit Buffer from RNG')
17345 var d = BigInteger.fromBuffer(buffer)
17346 d = d.mod(ECKey.curve.n)
17348 return new ECKey(d, compressed)
17351 // Export functions
17352 ECKey.prototype.toWIF = function (network) {
17353 network = network || networks.bitcoin
17355 var bufferLen = this.pub.compressed ?
34 :
33
17356 var buffer = new Buffer(bufferLen)
17358 buffer.writeUInt8(network.wif,
0)
17359 this.d.toBuffer(
32).copy(buffer,
1)
17361 if (this.pub.compressed) {
17362 buffer.writeUInt8(
0x01,
33)
17365 return base58check.encode(buffer)
17369 ECKey.prototype.sign = function (hash) {
17370 return ecdsa.sign(ECKey.curve, hash, this.d)
17373 module.exports = ECKey
17375 }).call(this,require(
"buffer").Buffer)
17376 },{
"./ecdsa":
59,
"./ecpubkey":
61,
"./networks":
66,
"assert":
5,
"bigi":
3,
"bs58check":
31,
"buffer":
7,
"ecurve":
49,
"randombytes":
52,
"typeforce":
53}],
61:[function(require,module,exports){
17377 (function (Buffer){
17378 var crypto = require('./crypto')
17379 var ecdsa = require('./ecdsa')
17380 var typeForce = require('typeforce')
17381 var networks = require('./networks')
17383 var Address = require('./address')
17385 var ecurve = require('ecurve')
17386 var secp256k1 = ecurve.getCurveByName('secp256k1')
17388 function ECPubKey (Q, compressed) {
17389 if (compressed === undefined) {
17393 typeForce('Point', Q)
17394 typeForce('Boolean', compressed)
17396 this.compressed = compressed
17401 ECPubKey.curve = secp256k1
17403 // Static constructors
17404 ECPubKey.fromBuffer = function (buffer) {
17405 var Q = ecurve.Point.decodeFrom(ECPubKey.curve, buffer)
17406 return new ECPubKey(Q, Q.compressed)
17409 ECPubKey.fromHex = function (hex) {
17410 return ECPubKey.fromBuffer(new Buffer(hex, 'hex'))
17414 ECPubKey.prototype.getAddress = function (network) {
17415 network = network || networks.bitcoin
17417 return new Address(crypto.hash160(this.toBuffer()), network.pubKeyHash)
17420 ECPubKey.prototype.verify = function (hash, signature) {
17421 return ecdsa.verify(ECPubKey.curve, hash, signature, this.Q)
17424 // Export functions
17425 ECPubKey.prototype.toBuffer = function () {
17426 return this.Q.getEncoded(this.compressed)
17429 ECPubKey.prototype.toHex = function () {
17430 return this.toBuffer().toString('hex')
17433 module.exports = ECPubKey
17435 }).call(this,require(
"buffer").Buffer)
17436 },{
"./address":
54,
"./crypto":
58,
"./ecdsa":
59,
"./networks":
66,
"buffer":
7,
"ecurve":
49,
"typeforce":
53}],
62:[function(require,module,exports){
17437 (function (Buffer){
17438 var assert = require('assert')
17439 var typeForce = require('typeforce')
17441 var BigInteger = require('bigi')
17443 function ECSignature (r, s) {
17444 typeForce('BigInteger', r)
17445 typeForce('BigInteger', s)
17451 ECSignature.parseCompact = function (buffer) {
17452 assert.equal(buffer.length,
65, 'Invalid signature length')
17453 var i = buffer.readUInt8(
0) -
27
17456 assert.equal(i, i &
7, 'Invalid signature parameter')
17457 var compressed = !!(i &
4)
17459 // Recovery param only
17462 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
17463 var s = BigInteger.fromBuffer(buffer.slice(
33))
17466 compressed: compressed,
17468 signature: new ECSignature(r, s)
17472 ECSignature.fromDER = function (buffer) {
17473 assert.equal(buffer.readUInt8(
0),
0x30, 'Not a DER sequence')
17474 assert.equal(buffer.readUInt8(
1), buffer.length -
2, 'Invalid sequence length')
17475 assert.equal(buffer.readUInt8(
2),
0x02, 'Expected a DER integer')
17477 var rLen = buffer.readUInt8(
3)
17478 assert(rLen
> 0, 'R length is zero')
17480 var offset =
4 + rLen
17481 assert.equal(buffer.readUInt8(offset),
0x02, 'Expected a DER integer (
2)')
17483 var sLen = buffer.readUInt8(offset +
1)
17484 assert(sLen
> 0, 'S length is zero')
17486 var rB = buffer.slice(
4, offset)
17487 var sB = buffer.slice(offset +
2)
17490 if (rLen
> 1 && rB.readUInt8(
0) ===
0x00) {
17491 assert(rB.readUInt8(
1) &
0x80, 'R value excessively padded')
17494 if (sLen
> 1 && sB.readUInt8(
0) ===
0x00) {
17495 assert(sB.readUInt8(
1) &
0x80, 'S value excessively padded')
17498 assert.equal(offset, buffer.length, 'Invalid DER encoding')
17499 var r = BigInteger.fromDERInteger(rB)
17500 var s = BigInteger.fromDERInteger(sB)
17502 assert(r.signum()
>=
0, 'R value is negative')
17503 assert(s.signum()
>=
0, 'S value is negative')
17505 return new ECSignature(r, s)
17508 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
17509 ECSignature.parseScriptSignature = function (buffer) {
17510 var hashType = buffer.readUInt8(buffer.length -
1)
17511 var hashTypeMod = hashType & ~
0x80
17513 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
17516 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
17521 ECSignature.prototype.toCompact = function (i, compressed) {
17528 var buffer = new Buffer(
65)
17529 buffer.writeUInt8(i,
0)
17531 this.r.toBuffer(
32).copy(buffer,
1)
17532 this.s.toBuffer(
32).copy(buffer,
33)
17537 ECSignature.prototype.toDER = function () {
17538 var rBa = this.r.toDERInteger()
17539 var sBa = this.s.toDERInteger()
17544 sequence.push(
0x02, rBa.length)
17545 sequence = sequence.concat(rBa)
17548 sequence.push(
0x02, sBa.length)
17549 sequence = sequence.concat(sBa)
17552 sequence.unshift(
0x30, sequence.length)
17554 return new Buffer(sequence)
17557 ECSignature.prototype.toScriptSignature = function (hashType) {
17558 var hashTypeMod = hashType & ~
0x80
17559 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
17561 var hashTypeBuffer = new Buffer(
1)
17562 hashTypeBuffer.writeUInt8(hashType,
0)
17564 return Buffer.concat([this.toDER(), hashTypeBuffer])
17567 module.exports = ECSignature
17569 }).call(this,require(
"buffer").Buffer)
17570 },{
"assert":
5,
"bigi":
3,
"buffer":
7,
"typeforce":
53}],
63:[function(require,module,exports){
17571 (function (Buffer){
17572 var assert = require('assert')
17573 var base58check = require('bs58check')
17574 var bcrypto = require('./crypto')
17575 var createHmac = require('create-hmac')
17576 var typeForce = require('typeforce')
17577 var networks = require('./networks')
17579 var BigInteger = require('bigi')
17580 var ECKey = require('./eckey')
17581 var ECPubKey = require('./ecpubkey')
17583 var ecurve = require('ecurve')
17584 var curve = ecurve.getCurveByName('secp256k1')
17586 function findBIP32NetworkByVersion (version) {
17587 for (var name in networks) {
17588 var network = networks[name]
17590 if (version === network.bip32.private || version === network.bip32.public) {
17595 assert(false, 'Could not find network for ' + version.toString(
16))
17598 function HDNode (K, chainCode, network) {
17599 network = network || networks.bitcoin
17601 typeForce('Buffer', chainCode)
17603 assert.equal(chainCode.length,
32, 'Expected chainCode length of
32, got ' + chainCode.length)
17604 assert(network.bip32, 'Unknown BIP32 constants for network')
17606 this.chainCode = chainCode
17609 this.parentFingerprint =
0x00000000
17610 this.network = network
17612 if (K instanceof BigInteger) {
17613 this.privKey = new ECKey(K, true)
17614 this.pubKey = this.privKey.pub
17615 } else if (K instanceof ECKey) {
17616 assert(K.pub.compressed, 'ECKey must be compressed')
17618 this.pubKey = K.pub
17619 } else if (K instanceof ECPubKey) {
17620 assert(K.compressed, 'ECPubKey must be compressed')
17623 this.pubKey = new ECPubKey(K, true)
17627 HDNode.MASTER_SECRET = new Buffer('Bitcoin seed')
17628 HDNode.HIGHEST_BIT =
0x80000000
17631 HDNode.fromSeedBuffer = function (seed, network) {
17632 typeForce('Buffer', seed)
17634 assert(seed.length
>=
16, 'Seed should be at least
128 bits')
17635 assert(seed.length <=
64, 'Seed should be at most
512 bits')
17637 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
17638 var IL = I.slice(
0,
32)
17639 var IR = I.slice(
32)
17641 // In case IL is
0 or
>= n, the master key is invalid
17642 // This is handled by `new ECKey` in the HDNode constructor
17643 var pIL = BigInteger.fromBuffer(IL)
17645 return new HDNode(pIL, IR, network)
17648 HDNode.fromSeedHex = function (hex, network) {
17649 return HDNode.fromSeedBuffer(new Buffer(hex, 'hex'), network)
17652 HDNode.fromBase58 = function (string, network) {
17653 return HDNode.fromBuffer(base58check.decode(string), network, true)
17656 // FIXME: remove in
2.x.y
17657 HDNode.fromBuffer = function (buffer, network, __ignoreDeprecation) {
17658 if (!__ignoreDeprecation) {
17659 console.warn('HDNode.fromBuffer() is deprecated for removal in
2.x.y, use fromBase58 instead')
17662 assert.strictEqual(buffer.length, HDNode.LENGTH, 'Invalid buffer length')
17664 //
4 byte: version bytes
17665 var version = buffer.readUInt32BE(
0)
17668 assert(version === network.bip32.private || version === network.bip32.public, "Network doesn't match")
17672 network = findBIP32NetworkByVersion(version)
17675 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
17676 var depth = buffer.readUInt8(
4)
17678 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
17679 var parentFingerprint = buffer.readUInt32BE(
5)
17681 assert.strictEqual(parentFingerprint,
0x00000000, 'Invalid parent fingerprint')
17684 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
17685 // This is encoded in MSB order. (
0x00000000 if master key)
17686 var index = buffer.readUInt32BE(
9)
17687 assert(depth
> 0 || index ===
0, 'Invalid index')
17689 //
32 bytes: the chain code
17690 var chainCode = buffer.slice(
13,
45)
17693 //
33 bytes: private key data (
0x00 + k)
17694 if (version === network.bip32.private) {
17695 assert.strictEqual(buffer.readUInt8(
45),
0x00, 'Invalid private key')
17696 data = buffer.slice(
46,
78)
17697 var d = BigInteger.fromBuffer(data)
17698 hd = new HDNode(d, chainCode, network)
17700 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
17702 data = buffer.slice(
45,
78)
17703 var Q = ecurve.Point.decodeFrom(curve, data)
17704 assert.equal(Q.compressed, true, 'Invalid public key')
17706 // Verify that the X coordinate in the public point corresponds to a point on the curve.
17707 // If not, the extended public key is invalid.
17710 hd = new HDNode(Q, chainCode, network)
17715 hd.parentFingerprint = parentFingerprint
17720 // FIXME: remove in
2.x.y
17721 HDNode.fromHex = function (hex, network) {
17722 return HDNode.fromBuffer(new Buffer(hex, 'hex'), network)
17725 HDNode.prototype.getIdentifier = function () {
17726 return bcrypto.hash160(this.pubKey.toBuffer())
17729 HDNode.prototype.getFingerprint = function () {
17730 return this.getIdentifier().slice(
0,
4)
17733 HDNode.prototype.getAddress = function () {
17734 return this.pubKey.getAddress(this.network)
17737 HDNode.prototype.neutered = function () {
17738 var neutered = new HDNode(this.pubKey.Q, this.chainCode, this.network)
17739 neutered.depth = this.depth
17740 neutered.index = this.index
17741 neutered.parentFingerprint = this.parentFingerprint
17746 HDNode.prototype.toBase58 = function (isPrivate) {
17747 return base58check.encode(this.toBuffer(isPrivate, true))
17750 // FIXME: remove in
2.x.y
17751 HDNode.prototype.toBuffer = function (isPrivate, __ignoreDeprecation) {
17752 if (isPrivate === undefined) {
17753 isPrivate = !!this.privKey
17755 // FIXME: remove in
2.x.y
17757 console.warn('isPrivate flag is deprecated, please use the .neutered() method instead')
17760 if (!__ignoreDeprecation) {
17761 console.warn('HDNode.toBuffer() is deprecated for removal in
2.x.y, use toBase58 instead')
17765 var version = isPrivate ? this.network.bip32.private : this.network.bip32.public
17766 var buffer = new Buffer(HDNode.LENGTH)
17768 //
4 bytes: version bytes
17769 buffer.writeUInt32BE(version,
0)
17772 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
17773 buffer.writeUInt8(this.depth,
4)
17775 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
17776 buffer.writeUInt32BE(this.parentFingerprint,
5)
17778 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
17779 // This is encoded in Big endian. (
0x00000000 if master key)
17780 buffer.writeUInt32BE(this.index,
9)
17782 //
32 bytes: the chain code
17783 this.chainCode.copy(buffer,
13)
17785 //
33 bytes: the public key or private key data
17787 // FIXME: remove in
2.x.y
17788 assert(this.privKey, 'Missing private key')
17790 //
0x00 + k for private keys
17791 buffer.writeUInt8(
0,
45)
17792 this.privKey.d.toBuffer(
32).copy(buffer,
46)
17794 // X9.62 encoding for public keys
17795 this.pubKey.toBuffer().copy(buffer,
45)
17801 // FIXME: remove in
2.x.y
17802 HDNode.prototype.toHex = function (isPrivate) {
17803 return this.toBuffer(isPrivate).toString('hex')
17806 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
17807 HDNode.prototype.derive = function (index) {
17808 var isHardened = index
>= HDNode.HIGHEST_BIT
17809 var indexBuffer = new Buffer(
4)
17810 indexBuffer.writeUInt32BE(index,
0)
17816 assert(this.privKey, 'Could not derive hardened child key')
17818 // data =
0x00 || ser256(kpar) || ser32(index)
17819 data = Buffer.concat([
17820 this.privKey.d.toBuffer(
33),
17826 // data = serP(point(kpar)) || ser32(index)
17827 // = serP(Kpar) || ser32(index)
17828 data = Buffer.concat([
17829 this.pubKey.toBuffer(),
17834 var I = createHmac('sha512', this.chainCode).update(data).digest()
17835 var IL = I.slice(
0,
32)
17836 var IR = I.slice(
32)
17838 var pIL = BigInteger.fromBuffer(IL)
17840 // In case parse256(IL)
>= n, proceed with the next value for i
17841 if (pIL.compareTo(curve.n)
>=
0) {
17842 return this.derive(index +
1)
17845 // Private parent key -
> private child key
17847 if (this.privKey) {
17848 // ki = parse256(IL) + kpar (mod n)
17849 var ki = pIL.add(this.privKey.d).mod(curve.n)
17851 // In case ki ==
0, proceed with the next value for i
17852 if (ki.signum() ===
0) {
17853 return this.derive(index +
1)
17856 hd = new HDNode(ki, IR, this.network)
17858 // Public parent key -
> public child key
17860 // Ki = point(parse256(IL)) + Kpar
17862 var Ki = curve.G.multiply(pIL).add(this.pubKey.Q)
17864 // In case Ki is the point at infinity, proceed with the next value for i
17865 if (curve.isInfinity(Ki)) {
17866 return this.derive(index +
1)
17869 hd = new HDNode(Ki, IR, this.network)
17872 hd.depth = this.depth +
1
17874 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
17879 HDNode.prototype.deriveHardened = function (index) {
17880 // Only derives hardened private keys by default
17881 return this.derive(index + HDNode.HIGHEST_BIT)
17884 HDNode.prototype.toString = HDNode.prototype.toBase58
17886 module.exports = HDNode
17888 }).call(this,require("buffer").Buffer)
17889 },{"./crypto":
58,"./eckey":
60,"./ecpubkey":
61,"./networks":
66,"assert":
5,"bigi":
3,"bs58check":
31,"buffer":
7,"create-hmac":
45,"ecurve":
49,"typeforce":
53}],
64:[function(require,module,exports){
17891 Address: require('./address'),
17892 base58check: require('./base58check'),
17893 Block: require('./block'),
17894 bufferutils: require('./bufferutils'),
17895 crypto: require('./crypto'),
17896 ecdsa: require('./ecdsa'),
17897 ECKey: require('./eckey'),
17898 ECPubKey: require('./ecpubkey'),
17899 ECSignature: require('./ecsignature'),
17900 Message: require('./message'),
17901 opcodes: require('./opcodes'),
17902 HDNode: require('./hdnode'),
17903 Script: require('./script'),
17904 scripts: require('./scripts'),
17905 Transaction: require('./transaction'),
17906 TransactionBuilder: require('./transaction_builder'),
17907 networks: require('./networks'),
17908 Wallet: require('./wallet')
17911 },{"./address":
54,"./base58check":
55,"./block":
56,"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./eckey":
60,"./ecpubkey":
61,"./ecsignature":
62,"./hdnode":
63,"./message":
65,"./networks":
66,"./opcodes":
67,"./script":
68,"./scripts":
69,"./transaction":
70,"./transaction_builder":
71,"./wallet":
72}],
65:[function(require,module,exports){
17912 (function (Buffer){
17913 var bufferutils = require('./bufferutils')
17914 var crypto = require('./crypto')
17915 var ecdsa = require('./ecdsa')
17916 var networks = require('./networks')
17918 var BigInteger = require('bigi')
17919 var ECPubKey = require('./ecpubkey')
17920 var ECSignature = require('./ecsignature')
17922 var ecurve = require('ecurve')
17923 var ecparams = ecurve.getCurveByName('secp256k1')
17925 function magicHash (message, network) {
17926 var magicPrefix = new Buffer(network.magicPrefix)
17927 var messageBuffer = new Buffer(message)
17928 var lengthBuffer = bufferutils.varIntBuffer(messageBuffer.length)
17930 var buffer = Buffer.concat([magicPrefix, lengthBuffer, messageBuffer])
17931 return crypto.hash256(buffer)
17934 function sign (privKey, message, network) {
17935 network = network || networks.bitcoin
17937 var hash = magicHash(message, network)
17938 var signature = privKey.sign(hash)
17939 var e = BigInteger.fromBuffer(hash)
17940 var i = ecdsa.calcPubKeyRecoveryParam(ecparams, e, signature, privKey.pub.Q)
17942 return signature.toCompact(i, privKey.pub.compressed)
17945 // TODO: network could be implied from address
17946 function verify (address, signature, message, network) {
17947 if (!Buffer.isBuffer(signature)) {
17948 signature = new Buffer(signature, 'base64')
17951 network = network || networks.bitcoin
17953 var hash = magicHash(message, network)
17954 var parsed = ECSignature.parseCompact(signature)
17955 var e = BigInteger.fromBuffer(hash)
17956 var Q = ecdsa.recoverPubKey(ecparams, e, parsed.signature, parsed.i)
17958 var pubKey = new ECPubKey(Q, parsed.compressed)
17959 return pubKey.getAddress(network).toString() === address.toString()
17963 magicHash: magicHash,
17968 }).call(this,require("buffer").Buffer)
17969 },{"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./ecpubkey":
61,"./ecsignature":
62,"./networks":
66,"bigi":
3,"buffer":
7,"ecurve":
49}],
66:[function(require,module,exports){
17970 // https://en.bitcoin.it/wiki/List_of_address_prefixes
17971 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
17975 magicPrefix: '\x18Bitcoin Signed Message:\n',
17977 public:
0x0488b21e,
17978 private:
0x0488ade4
17983 dustThreshold:
546, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/core.h#L151-L162
17984 feePerKb:
10000, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/main.cpp#L53
17985 estimateFee: estimateFee('bitcoin')
17988 magicPrefix: '\x18Bitcoin Signed Message:\n',
17990 public:
0x043587cf,
17991 private:
0x04358394
17996 dustThreshold:
546,
17998 estimateFee: estimateFee('testnet')
18001 magicPrefix: '\x19Litecoin Signed Message:\n',
18003 public:
0x019da462,
18004 private:
0x019d9cfe
18009 dustThreshold:
0, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L360-L365
18010 dustSoftThreshold:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.h#L53
18011 feePerKb:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L56
18012 estimateFee: estimateFee('litecoin')
18015 magicPrefix: '\x19Dogecoin Signed Message:\n',
18017 public:
0x02facafd,
18018 private:
0x02fac398
18023 dustThreshold:
0, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/core.h#L155-L160
18024 dustSoftThreshold:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.h#L62
18025 feePerKb:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.cpp#L58
18026 estimateFee: estimateFee('dogecoin')
18029 magicPrefix: '\x18Viacoin Signed Message:\n',
18031 public:
0x0488b21e,
18032 private:
0x0488ade4
18037 dustThreshold:
560,
18038 dustSoftThreshold:
100000,
18039 feePerKb:
100000, //
18040 estimateFee: estimateFee('viacoin')
18043 magicPrefix: '\x18Viacoin Signed Message:\n',
18045 public:
0x043587cf,
18046 private:
0x04358394
18051 dustThreshold:
560,
18052 dustSoftThreshold:
100000,
18054 estimateFee: estimateFee('viacointestnet')
18057 magicPrefix: '\x19Gamerscoin Signed Message:\n',
18059 public:
0x019da462,
18060 private:
0x019d9cfe
18065 dustThreshold:
0, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L358-L363
18066 dustSoftThreshold:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L51
18067 feePerKb:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L54
18068 estimateFee: estimateFee('gamerscoin')
18071 magicPrefix: '\x19Jumbucks Signed Message:\n',
18073 public:
0x037a689a,
18074 private:
0x037a6460
18080 dustSoftThreshold:
10000,
18082 estimateFee: estimateFee('jumbucks')
18085 magicPrefix: '\x18Zetacoin Signed Message:\n',
18087 public:
0x0488b21e,
18088 private:
0x0488ade4
18093 dustThreshold:
546, // https://github.com/zetacoin/zetacoin/blob/master/src/core.h#L159
18094 feePerKb:
10000, // https://github.com/zetacoin/zetacoin/blob/master/src/main.cpp#L54
18095 estimateFee: estimateFee('zetacoin')
18099 function estimateFee (type) {
18100 return function (tx) {
18101 var network = networks[type]
18102 var baseFee = network.feePerKb
18103 var byteSize = tx.toBuffer().length
18105 var fee = baseFee * Math.ceil(byteSize /
1000)
18106 if (network.dustSoftThreshold === undefined) return fee
18108 tx.outs.forEach(function (e) {
18109 if (e.value < network.dustSoftThreshold) {
18118 module.exports = networks
18120 },{}],
67:[function(require,module,exports){
18161 OP_TOALTSTACK:
107,
18162 OP_FROMALTSTACK:
108,
18194 OP_EQUALVERIFY:
136,
18219 OP_NUMEQUALVERIFY:
157,
18220 OP_NUMNOTEQUAL:
158,
18222 OP_GREATERTHAN:
160,
18223 OP_LESSTHANOREQUAL:
161,
18224 OP_GREATERTHANOREQUAL:
162,
18236 OP_CODESEPARATOR:
171,
18238 OP_CHECKSIGVERIFY:
173,
18239 OP_CHECKMULTISIG:
174,
18240 OP_CHECKMULTISIGVERIFY:
175,
18254 // template matching params
18255 OP_PUBKEYHASH:
253,
18257 OP_INVALIDOPCODE:
255
18260 },{}],
68:[function(require,module,exports){
18261 (function (Buffer){
18262 var assert = require('assert')
18263 var bufferutils = require('./bufferutils')
18264 var crypto = require('./crypto')
18265 var typeForce = require('typeforce')
18266 var opcodes = require('./opcodes')
18268 function Script (buffer, chunks) {
18269 typeForce('Buffer', buffer)
18270 typeForce('Array', chunks)
18272 this.buffer = buffer
18273 this.chunks = chunks
18276 Script.fromASM = function (asm) {
18277 var strChunks = asm.split(' ')
18278 var chunks = strChunks.map(function (strChunk) {
18280 if (strChunk in opcodes) {
18281 return opcodes[strChunk]
18285 return new Buffer(strChunk, 'hex')
18289 return Script.fromChunks(chunks)
18292 Script.fromBuffer = function (buffer) {
18296 while (i < buffer.length) {
18297 var opcode = buffer.readUInt8(i)
18300 if ((opcode
> opcodes.OP_0) && (opcode <= opcodes.OP_PUSHDATA4)) {
18301 var d = bufferutils.readPushDataInt(buffer, i)
18303 // did reading a pushDataInt fail? return non-chunked script
18304 if (d === null) return new Script(buffer, [])
18307 // attempt to read too much data?
18308 if (i + d.number
> buffer.length) return new Script(buffer, [])
18310 var data = buffer.slice(i, i + d.number)
18317 chunks.push(opcode)
18323 return new Script(buffer, chunks)
18326 Script.fromChunks = function (chunks) {
18327 typeForce('Array', chunks)
18329 var bufferSize = chunks.reduce(function (accum, chunk) {
18331 if (Buffer.isBuffer(chunk)) {
18332 return accum + bufferutils.pushDataSize(chunk.length) + chunk.length
18339 var buffer = new Buffer(bufferSize)
18342 chunks.forEach(function (chunk) {
18344 if (Buffer.isBuffer(chunk)) {
18345 offset += bufferutils.writePushDataInt(buffer, chunk.length, offset)
18347 chunk.copy(buffer, offset)
18348 offset += chunk.length
18352 buffer.writeUInt8(chunk, offset)
18357 assert.equal(offset, buffer.length, 'Could not decode chunks')
18358 return new Script(buffer, chunks)
18361 Script.fromHex = function (hex) {
18362 return Script.fromBuffer(new Buffer(hex, 'hex'))
18365 Script.EMPTY = Script.fromChunks([])
18367 Script.prototype.getHash = function () {
18368 return crypto.hash160(this.buffer)
18371 // FIXME: doesn't work for data chunks, maybe time to use buffertools.compare...
18372 Script.prototype.without = function (needle) {
18373 return Script.fromChunks(this.chunks.filter(function (op) {
18374 return op !== needle
18378 var reverseOps = []
18379 for (var op in opcodes) {
18380 var code = opcodes[op]
18381 reverseOps[code] = op
18384 Script.prototype.toASM = function () {
18385 return this.chunks.map(function (chunk) {
18387 if (Buffer.isBuffer(chunk)) {
18388 return chunk.toString('hex')
18392 return reverseOps[chunk]
18397 Script.prototype.toBuffer = function () {
18401 Script.prototype.toHex = function () {
18402 return this.toBuffer().toString('hex')
18405 module.exports = Script
18407 }).call(this,require("buffer").Buffer)
18408 },{"./bufferutils":
57,"./crypto":
58,"./opcodes":
67,"assert":
5,"buffer":
7,"typeforce":
53}],
69:[function(require,module,exports){
18409 (function (Buffer){
18410 var assert = require('assert')
18411 var ops = require('./opcodes')
18412 var typeForce = require('typeforce')
18414 var ecurve = require('ecurve')
18415 var curve = ecurve.getCurveByName('secp256k1')
18417 var ECSignature = require('./ecsignature')
18418 var Script = require('./script')
18420 function isCanonicalPubKey (buffer) {
18421 if (!Buffer.isBuffer(buffer)) return false
18424 ecurve.Point.decodeFrom(curve, buffer)
18426 if (!(e.message.match(/Invalid sequence (length|tag)/)))
18435 function isCanonicalSignature (buffer) {
18436 if (!Buffer.isBuffer(buffer)) return false
18439 ECSignature.parseScriptSignature(buffer)
18441 if (!(e.message.match(/Not a DER sequence|Invalid sequence length|Expected a DER integer|R length is zero|S length is zero|R value excessively padded|S value excessively padded|R value is negative|S value is negative|Invalid hashType/))) {
18451 function isPubKeyHashInput (script) {
18452 return script.chunks.length ===
2 &&
18453 isCanonicalSignature(script.chunks[
0]) &&
18454 isCanonicalPubKey(script.chunks[
1])
18457 function isPubKeyHashOutput (script) {
18458 return script.chunks.length ===
5 &&
18459 script.chunks[
0] === ops.OP_DUP &&
18460 script.chunks[
1] === ops.OP_HASH160 &&
18461 Buffer.isBuffer(script.chunks[
2]) &&
18462 script.chunks[
2].length ===
20 &&
18463 script.chunks[
3] === ops.OP_EQUALVERIFY &&
18464 script.chunks[
4] === ops.OP_CHECKSIG
18467 function isPubKeyInput (script) {
18468 return script.chunks.length ===
1 &&
18469 isCanonicalSignature(script.chunks[
0])
18472 function isPubKeyOutput (script) {
18473 return script.chunks.length ===
2 &&
18474 isCanonicalPubKey(script.chunks[
0]) &&
18475 script.chunks[
1] === ops.OP_CHECKSIG
18478 function isScriptHashInput (script, allowIncomplete) {
18479 if (script.chunks.length <
2) return false
18481 var lastChunk = script.chunks[script.chunks.length -
1]
18482 if (!Buffer.isBuffer(lastChunk)) return false
18484 var scriptSig = Script.fromChunks(script.chunks.slice(
0, -
1))
18485 var redeemScript = Script.fromBuffer(lastChunk)
18487 // is redeemScript a valid script?
18488 if (redeemScript.chunks.length ===
0) return false
18490 return classifyInput(scriptSig, allowIncomplete) === classifyOutput(redeemScript)
18493 function isScriptHashOutput (script) {
18494 return script.chunks.length ===
3 &&
18495 script.chunks[
0] === ops.OP_HASH160 &&
18496 Buffer.isBuffer(script.chunks[
1]) &&
18497 script.chunks[
1].length ===
20 &&
18498 script.chunks[
2] === ops.OP_EQUAL
18501 // allowIncomplete is to account for combining signatures
18502 // See https://github.com/bitcoin/bitcoin/blob/f425050546644a36b0b8e0eb2f6934a3e0f6f80f/src/script/sign.cpp#L195-L197
18503 function isMultisigInput (script, allowIncomplete) {
18504 if (script.chunks.length <
2) return false
18505 if (script.chunks[
0] !== ops.OP_0) return false
18507 if (allowIncomplete) {
18508 return script.chunks.slice(
1).every(function (chunk) {
18509 return chunk === ops.OP_0 || isCanonicalSignature(chunk)
18513 return script.chunks.slice(
1).every(isCanonicalSignature)
18516 function isMultisigOutput (script) {
18517 if (script.chunks.length <
4) return false
18518 if (script.chunks[script.chunks.length -
1] !== ops.OP_CHECKMULTISIG) return false
18520 var mOp = script.chunks[
0]
18521 if (mOp === ops.OP_0) return false
18522 if (mOp < ops.OP_1) return false
18523 if (mOp
> ops.OP_16) return false
18525 var nOp = script.chunks[script.chunks.length -
2]
18526 if (nOp === ops.OP_0) return false
18527 if (nOp < ops.OP_1) return false
18528 if (nOp
> ops.OP_16) return false
18530 var m = mOp - (ops.OP_1 -
1)
18531 var n = nOp - (ops.OP_1 -
1)
18532 if (n < m) return false
18534 var pubKeys = script.chunks.slice(
1, -
2)
18535 if (n < pubKeys.length) return false
18537 return pubKeys.every(isCanonicalPubKey)
18540 function isNullDataOutput (script) {
18541 return script.chunks[
0] === ops.OP_RETURN
18544 function classifyOutput (script) {
18545 typeForce('Script', script)
18547 if (isPubKeyHashOutput(script)) {
18548 return 'pubkeyhash'
18549 } else if (isScriptHashOutput(script)) {
18550 return 'scripthash'
18551 } else if (isMultisigOutput(script)) {
18553 } else if (isPubKeyOutput(script)) {
18555 } else if (isNullDataOutput(script)) {
18559 return 'nonstandard'
18562 function classifyInput (script, allowIncomplete) {
18563 typeForce('Script', script)
18565 if (isPubKeyHashInput(script)) {
18566 return 'pubkeyhash'
18567 } else if (isMultisigInput(script, allowIncomplete)) {
18569 } else if (isScriptHashInput(script, allowIncomplete)) {
18570 return 'scripthash'
18571 } else if (isPubKeyInput(script)) {
18575 return 'nonstandard'
18578 // Standard Script Templates
18579 // {pubKey} OP_CHECKSIG
18580 function pubKeyOutput (pubKey) {
18581 return Script.fromChunks([
18587 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
18588 function pubKeyHashOutput (hash) {
18589 typeForce('Buffer', hash)
18591 return Script.fromChunks([
18595 ops.OP_EQUALVERIFY,
18600 // OP_HASH160 {scriptHash} OP_EQUAL
18601 function scriptHashOutput (hash) {
18602 typeForce('Buffer', hash)
18604 return Script.fromChunks([
18611 // m [pubKeys ...] n OP_CHECKMULTISIG
18612 function multisigOutput (m, pubKeys) {
18613 typeForce(['ECPubKey'], pubKeys)
18615 assert(pubKeys.length
>= m, 'Not enough pubKeys provided')
18617 var pubKeyBuffers = pubKeys.map(function (pubKey) {
18618 return pubKey.toBuffer()
18620 var n = pubKeys.length
18622 return Script.fromChunks([].concat(
18623 (ops.OP_1 -
1) + m,
18625 (ops.OP_1 -
1) + n,
18626 ops.OP_CHECKMULTISIG
18631 function pubKeyInput (signature) {
18632 typeForce('Buffer', signature)
18634 return Script.fromChunks([signature])
18637 // {signature} {pubKey}
18638 function pubKeyHashInput (signature, pubKey) {
18639 typeForce('Buffer', signature)
18641 return Script.fromChunks([signature, pubKey.toBuffer()])
18644 //
<scriptSig> {serialized scriptPubKey script}
18645 function scriptHashInput (scriptSig, scriptPubKey) {
18646 return Script.fromChunks([].concat(
18648 scriptPubKey.toBuffer()
18652 // OP_0 [signatures ...]
18653 function multisigInput (signatures, scriptPubKey) {
18654 if (scriptPubKey) {
18655 assert(isMultisigOutput(scriptPubKey))
18657 var mOp = scriptPubKey.chunks[
0]
18658 var nOp = scriptPubKey.chunks[scriptPubKey.chunks.length -
2]
18659 var m = mOp - (ops.OP_1 -
1)
18660 var n = nOp - (ops.OP_1 -
1)
18662 assert(signatures.length
>= m, 'Not enough signatures provided')
18663 assert(signatures.length <= n, 'Too many signatures provided')
18666 return Script.fromChunks([].concat(ops.OP_0, signatures))
18669 function nullDataOutput (data) {
18670 return Script.fromChunks([ops.OP_RETURN, data])
18674 isCanonicalPubKey: isCanonicalPubKey,
18675 isCanonicalSignature: isCanonicalSignature,
18676 isPubKeyHashInput: isPubKeyHashInput,
18677 isPubKeyHashOutput: isPubKeyHashOutput,
18678 isPubKeyInput: isPubKeyInput,
18679 isPubKeyOutput: isPubKeyOutput,
18680 isScriptHashInput: isScriptHashInput,
18681 isScriptHashOutput: isScriptHashOutput,
18682 isMultisigInput: isMultisigInput,
18683 isMultisigOutput: isMultisigOutput,
18684 isNullDataOutput: isNullDataOutput,
18685 classifyOutput: classifyOutput,
18686 classifyInput: classifyInput,
18687 pubKeyOutput: pubKeyOutput,
18688 pubKeyHashOutput: pubKeyHashOutput,
18689 scriptHashOutput: scriptHashOutput,
18690 multisigOutput: multisigOutput,
18691 pubKeyInput: pubKeyInput,
18692 pubKeyHashInput: pubKeyHashInput,
18693 scriptHashInput: scriptHashInput,
18694 multisigInput: multisigInput,
18695 dataOutput: function (data) {
18696 console.warn('dataOutput is deprecated, use nullDataOutput by
2.0.0')
18697 return nullDataOutput(data)
18699 nullDataOutput: nullDataOutput
18702 }).call(this,require("buffer").Buffer)
18703 },{"./ecsignature":
62,"./opcodes":
67,"./script":
68,"assert":
5,"buffer":
7,"ecurve":
49,"typeforce":
53}],
70:[function(require,module,exports){
18704 (function (Buffer){
18705 var assert = require('assert')
18706 var bufferutils = require('./bufferutils')
18707 var crypto = require('./crypto')
18708 var typeForce = require('typeforce')
18709 var opcodes = require('./opcodes')
18710 var scripts = require('./scripts')
18712 var Address = require('./address')
18713 var ECSignature = require('./ecsignature')
18714 var Script = require('./script')
18716 function Transaction () {
18723 Transaction.DEFAULT_SEQUENCE =
0xffffffff
18724 Transaction.SIGHASH_ALL =
0x01
18725 Transaction.SIGHASH_NONE =
0x02
18726 Transaction.SIGHASH_SINGLE =
0x03
18727 Transaction.SIGHASH_ANYONECANPAY =
0x80
18729 Transaction.fromBuffer = function (buffer, __disableAssert) {
18731 function readSlice (n) {
18733 return buffer.slice(offset - n, offset)
18736 function readUInt32 () {
18737 var i = buffer.readUInt32LE(offset)
18742 function readUInt64 () {
18743 var i = bufferutils.readUInt64LE(buffer, offset)
18748 function readVarInt () {
18749 var vi = bufferutils.readVarInt(buffer, offset)
18754 function readScript () {
18755 return Script.fromBuffer(readSlice(readVarInt()))
18758 function readGenerationScript () {
18759 return new Script(readSlice(readVarInt()), [])
18762 var tx = new Transaction()
18763 tx.version = readUInt32()
18765 var vinLen = readVarInt()
18766 for (var i =
0; i < vinLen; ++i) {
18767 var hash = readSlice(
32)
18769 if (Transaction.isCoinbaseHash(hash)) {
18772 index: readUInt32(),
18773 script: readGenerationScript(),
18774 sequence: readUInt32()
18779 index: readUInt32(),
18780 script: readScript(),
18781 sequence: readUInt32()
18786 var voutLen = readVarInt()
18787 for (i =
0; i < voutLen; ++i) {
18789 value: readUInt64(),
18790 script: readScript()
18794 tx.locktime = readUInt32()
18796 if (!__disableAssert) {
18797 assert.equal(offset, buffer.length, 'Transaction has unexpected data')
18803 Transaction.fromHex = function (hex) {
18804 return Transaction.fromBuffer(new Buffer(hex, 'hex'))
18807 Transaction.isCoinbaseHash = function (buffer) {
18808 return Array.prototype.every.call(buffer, function (x) {
18814 * Create a new txIn.
18816 * Can be called with any of:
18818 * - A transaction and an index
18819 * - A transaction hash and an index
18821 * Note that this method does not sign the created input.
18823 Transaction.prototype.addInput = function (hash, index, sequence, script) {
18824 if (sequence === undefined || sequence === null) {
18825 sequence = Transaction.DEFAULT_SEQUENCE
18828 script = script || Script.EMPTY
18830 if (typeof hash === 'string') {
18831 // TxId hex is big-endian, we need little-endian
18832 hash = bufferutils.reverse(new Buffer(hash, 'hex'))
18833 } else if (hash instanceof Transaction) {
18834 hash = hash.getHash()
18837 typeForce('Buffer', hash)
18838 typeForce('Number', index)
18839 typeForce('Number', sequence)
18840 typeForce('Script', script)
18842 assert.equal(hash.length,
32, 'Expected hash length of
32, got ' + hash.length)
18844 // Add the input and return the input's index
18845 return (this.ins.push({
18854 * Create a new txOut.
18856 * Can be called with:
18858 * - A base58 address string and a value
18859 * - An Address object and a value
18860 * - A scriptPubKey Script and a value
18862 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18863 // Attempt to get a valid address if it's a base58 address string
18864 if (typeof scriptPubKey === 'string') {
18865 scriptPubKey = Address.fromBase58Check(scriptPubKey)
18868 // Attempt to get a valid script if it's an Address object
18869 if (scriptPubKey instanceof Address) {
18870 scriptPubKey = scriptPubKey.toOutputScript()
18873 typeForce('Script', scriptPubKey)
18874 typeForce('Number', value)
18876 // Add the output and return the output's index
18877 return (this.outs.push({
18878 script: scriptPubKey,
18883 Transaction.prototype.clone = function () {
18884 var newTx = new Transaction()
18885 newTx.version = this.version
18886 newTx.locktime = this.locktime
18888 newTx.ins = this.ins.map(function (txIn) {
18892 script: txIn.script,
18893 sequence: txIn.sequence
18897 newTx.outs = this.outs.map(function (txOut) {
18899 script: txOut.script,
18908 * Hash transaction for signing a specific input.
18910 * Bitcoin uses a different hash for each signed transaction input. This
18911 * method copies the transaction, makes the necessary changes based on the
18912 * hashType, serializes and finally hashes the result. This hash can then be
18913 * used to sign the transaction input in question.
18915 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18916 // FIXME: remove in
2.x.y
18917 if (arguments[
0] instanceof Script) {
18918 console.warn('hashForSignature(prevOutScript, inIndex, ...) has been deprecated. Use hashForSignature(inIndex, prevOutScript, ...)')
18920 // swap the arguments (must be stored in tmp, arguments is special)
18921 var tmp = arguments[
0]
18922 inIndex = arguments[
1]
18923 prevOutScript = tmp
18926 typeForce('Number', inIndex)
18927 typeForce('Script', prevOutScript)
18928 typeForce('Number', hashType)
18930 assert(inIndex
>=
0, 'Invalid vin index')
18931 assert(inIndex < this.ins.length, 'Invalid vin index')
18933 var txTmp = this.clone()
18934 var hashScript = prevOutScript.without(opcodes.OP_CODESEPARATOR)
18936 // Blank out other inputs' signatures
18937 txTmp.ins.forEach(function (txIn) {
18938 txIn.script = Script.EMPTY
18940 txTmp.ins[inIndex].script = hashScript
18942 var hashTypeModifier = hashType &
0x1f
18944 if (hashTypeModifier === Transaction.SIGHASH_NONE) {
18945 assert(false, 'SIGHASH_NONE not yet supported')
18946 } else if (hashTypeModifier === Transaction.SIGHASH_SINGLE) {
18947 assert(false, 'SIGHASH_SINGLE not yet supported')
18950 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18951 assert(false, 'SIGHASH_ANYONECANPAY not yet supported')
18954 var hashTypeBuffer = new Buffer(
4)
18955 hashTypeBuffer.writeInt32LE(hashType,
0)
18957 var buffer = Buffer.concat([txTmp.toBuffer(), hashTypeBuffer])
18958 return crypto.hash256(buffer)
18961 Transaction.prototype.getHash = function () {
18962 return crypto.hash256(this.toBuffer())
18965 Transaction.prototype.getId = function () {
18966 // TxHash is little-endian, we need big-endian
18967 return bufferutils.reverse(this.getHash()).toString('hex')
18970 Transaction.prototype.toBuffer = function () {
18971 function scriptSize (script) {
18972 var length = script.buffer.length
18974 return bufferutils.varIntSize(length) + length
18977 var buffer = new Buffer(
18979 bufferutils.varIntSize(this.ins.length) +
18980 bufferutils.varIntSize(this.outs.length) +
18981 this.ins.reduce(function (sum, input) { return sum +
40 + scriptSize(input.script) },
0) +
18982 this.outs.reduce(function (sum, output) { return sum +
8 + scriptSize(output.script) },
0)
18986 function writeSlice (slice) {
18987 slice.copy(buffer, offset)
18988 offset += slice.length
18991 function writeUInt32 (i) {
18992 buffer.writeUInt32LE(i, offset)
18996 function writeUInt64 (i) {
18997 bufferutils.writeUInt64LE(buffer, i, offset)
19001 function writeVarInt (i) {
19002 var n = bufferutils.writeVarInt(buffer, i, offset)
19006 writeUInt32(this.version)
19007 writeVarInt(this.ins.length)
19009 this.ins.forEach(function (txIn) {
19010 writeSlice(txIn.hash)
19011 writeUInt32(txIn.index)
19012 writeVarInt(txIn.script.buffer.length)
19013 writeSlice(txIn.script.buffer)
19014 writeUInt32(txIn.sequence)
19017 writeVarInt(this.outs.length)
19018 this.outs.forEach(function (txOut) {
19019 writeUInt64(txOut.value)
19020 writeVarInt(txOut.script.buffer.length)
19021 writeSlice(txOut.script.buffer)
19024 writeUInt32(this.locktime)
19029 Transaction.prototype.toHex = function () {
19030 return this.toBuffer().toString('hex')
19033 Transaction.prototype.setInputScript = function (index, script) {
19034 typeForce('Number', index)
19035 typeForce('Script', script)
19037 this.ins[index].script = script
19040 // FIXME: remove in
2.x.y
19041 Transaction.prototype.sign = function (index, privKey, hashType) {
19042 console.warn('Transaction.prototype.sign is deprecated. Use TransactionBuilder instead.')
19044 var prevOutScript = privKey.pub.getAddress().toOutputScript()
19045 var signature = this.signInput(index, prevOutScript, privKey, hashType)
19047 var scriptSig = scripts.pubKeyHashInput(signature, privKey.pub)
19048 this.setInputScript(index, scriptSig)
19051 // FIXME: remove in
2.x.y
19052 Transaction.prototype.signInput = function (index, prevOutScript, privKey, hashType) {
19053 console.warn('Transaction.prototype.signInput is deprecated. Use TransactionBuilder instead.')
19055 hashType = hashType || Transaction.SIGHASH_ALL
19057 var hash = this.hashForSignature(index, prevOutScript, hashType)
19058 var signature = privKey.sign(hash)
19060 return signature.toScriptSignature(hashType)
19063 // FIXME: remove in
2.x.y
19064 Transaction.prototype.validateInput = function (index, prevOutScript, pubKey, buffer) {
19065 console.warn('Transaction.prototype.validateInput is deprecated. Use TransactionBuilder instead.')
19067 var parsed = ECSignature.parseScriptSignature(buffer)
19068 var hash = this.hashForSignature(index, prevOutScript, parsed.hashType)
19070 return pubKey.verify(hash, parsed.signature)
19073 module.exports = Transaction
19075 }).call(this,require("buffer").Buffer)
19076 },{"./address":
54,"./bufferutils":
57,"./crypto":
58,"./ecsignature":
62,"./opcodes":
67,"./script":
68,"./scripts":
69,"assert":
5,"buffer":
7,"typeforce":
53}],
71:[function(require,module,exports){
19077 (function (Buffer){
19078 var assert = require('assert')
19079 var ops = require('./opcodes')
19080 var scripts = require('./scripts')
19082 var ECPubKey = require('./ecpubkey')
19083 var ECSignature = require('./ecsignature')
19084 var Script = require('./script')
19085 var Transaction = require('./transaction')
19087 function extractInput (txIn) {
19089 var scriptSig = txIn.script
19091 var prevOutType = scripts.classifyInput(scriptSig, true)
19094 // Re-classify if scriptHash
19095 if (prevOutType === 'scripthash') {
19096 redeemScript = Script.fromBuffer(scriptSig.chunks.slice(-
1)[
0])
19097 prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
19099 scriptSig = Script.fromChunks(scriptSig.chunks.slice(
0, -
1))
19100 scriptType = scripts.classifyInput(scriptSig, true)
19102 scriptType = prevOutType
19105 // Extract hashType, pubKeys and signatures
19106 var hashType, parsed, pubKeys, signatures
19108 switch (scriptType) {
19109 case 'pubkeyhash': {
19110 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
19111 hashType = parsed.hashType
19112 pubKeys = [ECPubKey.fromBuffer(scriptSig.chunks[
1])]
19113 signatures = [parsed.signature]
19114 prevOutScript = pubKeys[
0].getAddress().toOutputScript()
19120 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
19121 hashType = parsed.hashType
19122 signatures = [parsed.signature]
19124 if (redeemScript) {
19125 pubKeys = [ECPubKey.fromBuffer(redeemScript.chunks[
0])]
19132 signatures = scriptSig.chunks.slice(
1).map(function (chunk) {
19133 if (chunk === ops.OP_0) return chunk
19135 var parsed = ECSignature.parseScriptSignature(chunk)
19136 hashType = parsed.hashType
19138 return parsed.signature
19141 if (redeemScript) {
19142 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19150 hashType: hashType,
19151 prevOutScript: prevOutScript,
19152 prevOutType: prevOutType,
19154 redeemScript: redeemScript,
19155 scriptType: scriptType,
19156 signatures: signatures
19160 function TransactionBuilder () {
19161 this.prevTxMap = {}
19162 this.prevOutScripts = {}
19163 this.prevOutTypes = {}
19166 this.tx = new Transaction()
19169 TransactionBuilder.fromTransaction = function (transaction) {
19170 var txb = new TransactionBuilder()
19172 // Copy other transaction fields
19173 txb.tx.version = transaction.version
19174 txb.tx.locktime = transaction.locktime
19176 // Extract/add inputs
19177 transaction.ins.forEach(function (txIn) {
19178 txb.addInput(txIn.hash, txIn.index, txIn.sequence)
19181 // Extract/add outputs
19182 transaction.outs.forEach(function (txOut) {
19183 txb.addOutput(txOut.script, txOut.value)
19186 // Extract/add signatures
19187 txb.inputs = transaction.ins.map(function (txIn) {
19188 // TODO: remove me after testcase added
19189 assert(!Transaction.isCoinbaseHash(txIn.hash), 'coinbase inputs not supported')
19191 // Ignore empty scripts
19192 if (txIn.script.buffer.length ===
0) return {}
19194 return extractInput(txIn)
19200 TransactionBuilder.prototype.addInput = function (prevTx, index, sequence, prevOutScript) {
19204 if (typeof prevTx === 'string') {
19205 prevOutHash = new Buffer(prevTx, 'hex')
19207 // TxId hex is big-endian, we want little-endian hash
19208 Array.prototype.reverse.call(prevOutHash)
19211 } else if (prevTx instanceof Transaction) {
19212 prevOutHash = prevTx.getHash()
19213 prevOutScript = prevTx.outs[index].script
19217 prevOutHash = prevTx
19221 if (prevOutScript) {
19222 var prevOutType = scripts.classifyOutput(prevOutScript)
19224 // if we can, extract pubKey information
19225 switch (prevOutType) {
19227 input.pubKeys = prevOutScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19232 input.pubKeys = prevOutScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
19237 if (prevOutType !== 'scripthash') {
19238 input.scriptType = prevOutType
19241 input.prevOutScript = prevOutScript
19242 input.prevOutType = prevOutType
19245 assert(this.inputs.every(function (input2) {
19246 if (input2.hashType === undefined) return true
19248 return input2.hashType & Transaction.SIGHASH_ANYONECANPAY
19249 }), 'No, this would invalidate signatures')
19251 var prevOut = prevOutHash.toString('hex') + ':' + index
19252 assert(!(prevOut in this.prevTxMap), 'Transaction is already an input')
19254 var vin = this.tx.addInput(prevOutHash, index, sequence)
19255 this.inputs[vin] = input
19256 this.prevTxMap[prevOut] = vin
19261 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19262 assert(this.inputs.every(function (input) {
19263 if (input.hashType === undefined) return true
19265 return (input.hashType &
0x1f) === Transaction.SIGHASH_SINGLE
19266 }), 'No, this would invalidate signatures')
19268 return this.tx.addOutput(scriptPubKey, value)
19271 TransactionBuilder.prototype.build = function () {
19272 return this.__build(false)
19274 TransactionBuilder.prototype.buildIncomplete = function () {
19275 return this.__build(true)
19278 var canSignTypes = {
19279 'pubkeyhash': true,
19284 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19285 if (!allowIncomplete) {
19286 assert(this.tx.ins.length
> 0, 'Transaction has no inputs')
19287 assert(this.tx.outs.length
> 0, 'Transaction has no outputs')
19290 var tx = this.tx.clone()
19292 // Create script signatures from signature meta-data
19293 this.inputs.forEach(function (input, index) {
19294 var scriptType = input.scriptType
19297 if (!allowIncomplete) {
19298 assert(!!scriptType, 'Transaction is not complete')
19299 assert(scriptType in canSignTypes, scriptType + ' not supported')
19300 assert(input.signatures, 'Transaction is missing signatures')
19303 if (input.signatures) {
19304 switch (scriptType) {
19305 case 'pubkeyhash': {
19306 var pkhSignature = input.signatures[
0].toScriptSignature(input.hashType)
19307 scriptSig = scripts.pubKeyHashInput(pkhSignature, input.pubKeys[
0])
19312 // Array.prototype.map is sparse-compatible
19313 var msSignatures = input.signatures.map(function (signature) {
19314 return signature && signature.toScriptSignature(input.hashType)
19317 // fill in blanks with OP_0
19318 if (allowIncomplete) {
19319 for (var i =
0; i < msSignatures.length; ++i) {
19320 if (msSignatures[i]) continue
19322 msSignatures[i] = ops.OP_0
19325 // Array.prototype.filter returns non-sparse array
19326 msSignatures = msSignatures.filter(function (x) { return x })
19329 var redeemScript = allowIncomplete ? undefined : input.redeemScript
19330 scriptSig = scripts.multisigInput(msSignatures, redeemScript)
19335 var pkSignature = input.signatures[
0].toScriptSignature(input.hashType)
19336 scriptSig = scripts.pubKeyInput(pkSignature)
19342 // did we build a scriptSig?
19344 // wrap as scriptHash if necessary
19345 if (input.prevOutType === 'scripthash') {
19346 scriptSig = scripts.scriptHashInput(scriptSig, input.redeemScript)
19349 tx.setInputScript(index, scriptSig)
19356 TransactionBuilder.prototype.sign = function (index, privKey, redeemScript, hashType) {
19357 assert(index in this.inputs, 'No input at index: ' + index)
19358 hashType = hashType || Transaction.SIGHASH_ALL
19360 var input = this.inputs[index]
19361 var canSign = input.hashType &&
19362 input.prevOutScript &&
19363 input.prevOutType &&
19365 input.scriptType &&
19368 // are we almost ready to sign?
19370 // if redeemScript was provided, enforce consistency
19371 if (redeemScript) {
19372 assert.deepEqual(input.redeemScript, redeemScript, 'Inconsistent redeemScript')
19375 assert.equal(input.hashType, hashType, 'Inconsistent hashType')
19379 // must be pay-to-scriptHash?
19380 if (redeemScript) {
19381 // if we have a prevOutScript, enforce scriptHash equality to the redeemScript
19382 if (input.prevOutScript) {
19383 assert.equal(input.prevOutType, 'scripthash', 'PrevOutScript must be P2SH')
19385 var scriptHash = input.prevOutScript.chunks[
1]
19386 assert.deepEqual(scriptHash, redeemScript.getHash(), 'RedeemScript does not match ' + scriptHash.toString('hex'))
19389 var scriptType = scripts.classifyOutput(redeemScript)
19390 assert(scriptType in canSignTypes, 'RedeemScript not supported (' + scriptType + ')')
19393 switch (scriptType) {
19395 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19399 case 'pubkeyhash': {
19400 var pkh1 = redeemScript.chunks[
2]
19401 var pkh2 = privKey.pub.getAddress().hash
19403 assert.deepEqual(pkh1, pkh2, 'privateKey cannot sign for this input')
19404 pubKeys = [privKey.pub]
19409 pubKeys = redeemScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
19414 if (!input.prevOutScript) {
19415 input.prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
19416 input.prevOutType = 'scripthash'
19419 input.pubKeys = pubKeys
19420 input.redeemScript = redeemScript
19421 input.scriptType = scriptType
19423 // cannot be pay-to-scriptHash
19425 assert.notEqual(input.prevOutType, 'scripthash', 'PrevOutScript is P2SH, missing redeemScript')
19427 // can we otherwise sign this?
19428 if (input.scriptType) {
19429 assert(input.pubKeys, input.scriptType + ' not supported')
19431 // we know nothin' Jon Snow, assume pubKeyHash
19433 input.prevOutScript = privKey.pub.getAddress().toOutputScript()
19434 input.prevOutType = 'pubkeyhash'
19435 input.pubKeys = [privKey.pub]
19436 input.scriptType = input.prevOutType
19440 input.hashType = hashType
19441 input.signatures = input.signatures || []
19444 var signatureScript = input.redeemScript || input.prevOutScript
19445 var signatureHash = this.tx.hashForSignature(index, signatureScript, hashType)
19447 // enforce signature order matches public keys
19448 if (input.scriptType === 'multisig' && input.redeemScript && input.signatures.length !== input.pubKeys.length) {
19449 // maintain a local copy of unmatched signatures
19450 var unmatched = input.signatures.slice()
19452 input.signatures = input.pubKeys.map(function (pubKey) {
19455 // check for any matching signatures
19456 unmatched.some(function (signature, i) {
19457 if (!pubKey.verify(signatureHash, signature)) return false
19460 // remove matched signature from unmatched
19461 unmatched.splice(i,
1)
19466 return match || undefined
19470 // enforce in order signing of public keys
19471 assert(input.pubKeys.some(function (pubKey, i) {
19472 if (!privKey.pub.Q.equals(pubKey.Q)) return false
19474 assert(!input.signatures[i], 'Signature already exists')
19475 var signature = privKey.sign(signatureHash)
19476 input.signatures[i] = signature
19479 }, this), 'privateKey cannot sign for this input')
19482 module.exports = TransactionBuilder
19484 }).call(this,require(
"buffer").Buffer)
19485 },{
"./ecpubkey":
61,
"./ecsignature":
62,
"./opcodes":
67,
"./script":
68,
"./scripts":
69,
"./transaction":
70,
"assert":
5,
"buffer":
7}],
72:[function(require,module,exports){
19486 (function (Buffer){
19487 var assert = require('assert')
19488 var bufferutils = require('./bufferutils')
19489 var typeForce = require('typeforce')
19490 var networks = require('./networks')
19491 var randomBytes = require('randombytes')
19493 var Address = require('./address')
19494 var HDNode = require('./hdnode')
19495 var TransactionBuilder = require('./transaction_builder')
19496 var Script = require('./script')
19498 function Wallet (seed, network) {
19499 console.warn('Wallet is deprecated and will be removed in
2.0.0, see #
296')
19501 seed = seed || randomBytes(
32)
19502 network = network || networks.bitcoin
19504 // Stored in a closure to make accidental serialization less likely
19505 var masterKey = HDNode.fromSeedBuffer(seed, network)
19507 // HD first-level child derivation method should be hardened
19508 // See https://bitcointalk.org/index.php?topic=
405179.msg4415254#msg4415254
19509 var accountZero = masterKey.deriveHardened(
0)
19510 var externalAccount = accountZero.derive(
0)
19511 var internalAccount = accountZero.derive(
1)
19513 this.addresses = []
19514 this.changeAddresses = []
19515 this.network = network
19518 // FIXME: remove in
2.0.0
19519 this.unspentMap = {}
19521 // FIXME: remove in
2.0.0
19523 this.newMasterKey = function (seed) {
19524 console.warn('newMasterKey is deprecated, please make a new Wallet instance instead')
19526 seed = seed || randomBytes(
32)
19527 masterKey = HDNode.fromSeedBuffer(seed, network)
19529 accountZero = masterKey.deriveHardened(
0)
19530 externalAccount = accountZero.derive(
0)
19531 internalAccount = accountZero.derive(
1)
19534 me.changeAddresses = []
19540 this.getMasterKey = function () {
19543 this.getAccountZero = function () {
19546 this.getExternalAccount = function () {
19547 return externalAccount
19549 this.getInternalAccount = function () {
19550 return internalAccount
19554 Wallet.prototype.createTransaction = function (to, value, options) {
19555 // FIXME: remove in
2.0.0
19556 if (typeof options !== 'object') {
19557 if (options !== undefined) {
19558 console.warn('Non options object parameters are deprecated, use options object instead')
19561 fixedFee: arguments[
2],
19562 changeAddress: arguments[
3]
19567 options = options || {}
19569 assert(value
> this.network.dustThreshold, value + ' must be above dust threshold (' + this.network.dustThreshold + ' Satoshis)')
19571 var changeAddress = options.changeAddress
19572 var fixedFee = options.fixedFee
19573 var minConf = options.minConf === undefined ?
0 : options.minConf // FIXME: change minConf:
1 by default in
2.0.0
19575 // filter by minConf, then pending and sort by descending value
19576 var unspents = this.unspents.filter(function (unspent) {
19577 return unspent.confirmations
>= minConf
19578 }).filter(function (unspent) {
19579 return !unspent.pending
19580 }).sort(function (o1, o2) {
19581 return o2.value - o1.value
19586 var subTotal = value
19588 var txb = new TransactionBuilder()
19589 txb.addOutput(to, value)
19591 for (var i =
0; i < unspents.length; ++i) {
19592 var unspent = unspents[i]
19593 addresses.push(unspent.address)
19595 txb.addInput(unspent.txHash, unspent.index)
19597 var fee = fixedFee === undefined ? estimatePaddedFee(txb.buildIncomplete(), this.network) : fixedFee
19599 accum += unspent.value
19600 subTotal = value + fee
19602 if (accum
>= subTotal) {
19603 var change = accum - subTotal
19605 if (change
> this.network.dustThreshold) {
19606 txb.addOutput(changeAddress || this.getChangeAddress(), change)
19613 assert(accum
>= subTotal, 'Not enough funds (incl. fee): ' + accum + ' < ' + subTotal)
19615 return this.signWith(txb, addresses).build()
19618 // FIXME: remove in
2.0.0
19619 Wallet.prototype.processPendingTx = function (tx) {
19620 this.__processTx(tx, true)
19623 // FIXME: remove in
2.0.0
19624 Wallet.prototype.processConfirmedTx = function (tx) {
19625 this.__processTx(tx, false)
19628 // FIXME: remove in
2.0.0
19629 Wallet.prototype.__processTx = function (tx, isPending) {
19630 console.warn('processTransaction is considered harmful, see issue #
260 for more information')
19632 var txId = tx.getId()
19633 var txHash = tx.getHash()
19635 tx.outs.forEach(function (txOut, i) {
19639 address = Address.fromOutputScript(txOut.script, this.network).toString()
19641 if (!(e.message.match(/has no matching Address/)))
19645 var myAddresses = this.addresses.concat(this.changeAddresses)
19646 if (myAddresses.indexOf(address)
> -
1) {
19647 var lookup = txId + ':' + i
19648 if (lookup in this.unspentMap) return
19650 // its unique, add it
19653 confirmations:
0, // no way to determine this without more information
19657 value: txOut.value,
19661 this.unspentMap[lookup] = unspent
19662 this.unspents.push(unspent)
19666 tx.ins.forEach(function (txIn) {
19667 // copy and convert to big-endian hex
19668 var txInId = bufferutils.reverse(txIn.hash).toString('hex')
19670 var lookup = txInId + ':' + txIn.index
19671 if (!(lookup in this.unspentMap)) return
19673 var unspent = this.unspentMap[lookup]
19676 unspent.pending = true
19677 unspent.spent = true
19679 delete this.unspentMap[lookup]
19681 this.unspents = this.unspents.filter(function (unspent2) {
19682 return unspent !== unspent2
19688 Wallet.prototype.generateAddress = function () {
19689 var k = this.addresses.length
19690 var address = this.getExternalAccount().derive(k).getAddress()
19692 this.addresses.push(address.toString())
19694 return this.getReceiveAddress()
19697 Wallet.prototype.generateChangeAddress = function () {
19698 var k = this.changeAddresses.length
19699 var address = this.getInternalAccount().derive(k).getAddress()
19701 this.changeAddresses.push(address.toString())
19703 return this.getChangeAddress()
19706 Wallet.prototype.getAddress = function () {
19707 if (this.addresses.length ===
0) {
19708 this.generateAddress()
19711 return this.addresses[this.addresses.length -
1]
19714 Wallet.prototype.getBalance = function (minConf) {
19715 minConf = minConf ||
0
19717 return this.unspents.filter(function (unspent) {
19718 return unspent.confirmations
>= minConf
19720 // FIXME: remove spent filter in
2.0.0
19721 }).filter(function (unspent) {
19722 return !unspent.spent
19723 }).reduce(function (accum, unspent) {
19724 return accum + unspent.value
19728 Wallet.prototype.getChangeAddress = function () {
19729 if (this.changeAddresses.length ===
0) {
19730 this.generateChangeAddress()
19733 return this.changeAddresses[this.changeAddresses.length -
1]
19736 Wallet.prototype.getInternalPrivateKey = function (index) {
19737 return this.getInternalAccount().derive(index).privKey
19740 Wallet.prototype.getPrivateKey = function (index) {
19741 return this.getExternalAccount().derive(index).privKey
19744 Wallet.prototype.getPrivateKeyForAddress = function (address) {
19747 if ((index = this.addresses.indexOf(address))
> -
1) {
19748 return this.getPrivateKey(index)
19751 if ((index = this.changeAddresses.indexOf(address))
> -
1) {
19752 return this.getInternalPrivateKey(index)
19755 assert(false, 'Unknown address. Make sure the address is from the keychain and has been generated')
19758 Wallet.prototype.getUnspentOutputs = function (minConf) {
19759 minConf = minConf ||
0
19761 return this.unspents.filter(function (unspent) {
19762 return unspent.confirmations
>= minConf
19764 // FIXME: remove spent filter in
2.0.0
19765 }).filter(function (unspent) {
19766 return !unspent.spent
19767 }).map(function (unspent) {
19769 address: unspent.address,
19770 confirmations: unspent.confirmations,
19771 index: unspent.index,
19772 txId: unspent.txId,
19773 value: unspent.value,
19775 // FIXME: remove in
2.0.0
19776 hash: unspent.txId,
19777 pending: unspent.pending
19782 Wallet.prototype.setUnspentOutputs = function (unspents) {
19783 this.unspentMap = {}
19784 this.unspents = unspents.map(function (unspent) {
19785 // FIXME: remove unspent.hash in
2.0.0
19786 var txId = unspent.txId || unspent.hash
19787 var index = unspent.index
19789 // FIXME: remove in
2.0.0
19790 if (unspent.hash !== undefined) {
19791 console.warn('unspent.hash is deprecated, use unspent.txId instead')
19794 // FIXME: remove in
2.0.0
19795 if (index === undefined) {
19796 console.warn('unspent.outputIndex is deprecated, use unspent.index instead')
19797 index = unspent.outputIndex
19800 typeForce('String', txId)
19801 typeForce('Number', index)
19802 typeForce('Number', unspent.value)
19804 assert.equal(txId.length,
64, 'Expected valid txId, got ' + txId)
19805 assert.doesNotThrow(function () {
19806 Address.fromBase58Check(unspent.address)
19807 }, 'Expected Base58 Address, got ' + unspent.address)
19808 assert(isFinite(index), 'Expected finite index, got ' + index)
19810 // FIXME: remove branch in
2.0.0
19811 if (unspent.confirmations !== undefined) {
19812 typeForce('Number', unspent.confirmations)
19815 var txHash = bufferutils.reverse(new Buffer(txId, 'hex'))
19818 address: unspent.address,
19819 confirmations: unspent.confirmations ||
0,
19823 value: unspent.value,
19825 // FIXME: remove in
2.0.0
19826 pending: unspent.pending || false
19829 // FIXME: remove in
2.0.0
19830 this.unspentMap[txId + ':' + index] = unspent
19836 Wallet.prototype.signWith = function (tx, addresses) {
19837 addresses.forEach(function (address, i) {
19838 var privKey = this.getPrivateKeyForAddress(address)
19840 tx.sign(i, privKey)
19846 function estimatePaddedFee (tx, network) {
19847 var tmpTx = tx.clone()
19848 tmpTx.addOutput(Script.EMPTY, network.dustSoftThreshold ||
0)
19850 return network.estimateFee(tmpTx)
19853 // FIXME:
1.0.0 shims, remove in
2.0.0
19854 Wallet.prototype.getReceiveAddress = Wallet.prototype.getAddress
19855 Wallet.prototype.createTx = Wallet.prototype.createTransaction
19857 module.exports = Wallet
19859 }).call(this,require("buffer").Buffer)
19860 },{"./address":
54,"./bufferutils":
57,"./hdnode":
63,"./networks":
66,"./script":
68,"./transaction_builder":
71,"assert":
5,"buffer":
7,"randombytes":
52,"typeforce":
53}]},{},[
64])(
64)
19862 <script>bitcoin.networks.shadow = {
19863 magicPrefix: '\x19ShadowCash Signed Message:\n',
19865 public:
0xEE80286A,
19866 private:
0xEE8031E8
19873 estimateFee: function() { return "unused in this app" },
19876 bitcoin.networks.shadowtn = {
19877 magicPrefix: '\x19ShadowCash Signed Message:\n',
19879 public:
0x76C0FDFB,
19880 private:
0x76C1077A
19887 estimateFee: function() { return "unused in this app" },
19890 bitcoin.networks.clam = {
19892 public:
0xa8c26d64,
19893 private:
0xa8c17826
19899 bitcoin.networks.dash = {
19901 public:
0x0488b21e,
19902 private:
0x0488ade4
19909 bitcoin.networks.game = {
19911 public:
0x0488b21e,
19912 private:
0x0488ade4
19919 bitcoin.networks.namecoin = {
19921 public:
0x0488b21e,
19922 private:
0x0488ade4
19925 //scriptHash:
0x10,
19929 bitcoin.networks.peercoin = {
19931 public:
0x0488b21e,
19932 private:
0x0488ade4
19935 //scriptHash:
0x10,
19939 bitcoin.networks.slimcoin = {
19941 public:
0xef6adf10,
19942 private:
0xef69ea80
19949 bitcoin.networks.slimcointn = {
19951 public:
0x043587CF,
19952 private:
0x04358394
19960 <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){
19961 (function (global){
19964 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
19965 // original notice:
19968 * The buffer module from node.js, for the browser.
19970 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
19973 function compare(a, b) {
19981 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
19982 if (a[i] !== b[i]) {
19997 function isBuffer(b) {
19998 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
19999 return global.Buffer.isBuffer(b);
20001 return !!(b != null && b._isBuffer);
20004 // based on node assert, original notice:
20006 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
20008 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
20010 // Originally from narwhal.js (http://narwhaljs.org)
20011 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
20013 // Permission is hereby granted, free of charge, to any person obtaining a copy
20014 // of this software and associated documentation files (the 'Software'), to
20015 // deal in the Software without restriction, including without limitation the
20016 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
20017 // sell copies of the Software, and to permit persons to whom the Software is
20018 // furnished to do so, subject to the following conditions:
20020 // The above copyright notice and this permission notice shall be included in
20021 // all copies or substantial portions of the Software.
20023 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20024 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20025 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20026 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20027 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20028 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20030 var util = require('util/');
20031 var hasOwn = Object.prototype.hasOwnProperty;
20032 var pSlice = Array.prototype.slice;
20033 var functionsHaveNames = (function () {
20034 return function foo() {}.name === 'foo';
20036 function pToString (obj) {
20037 return Object.prototype.toString.call(obj);
20039 function isView(arrbuf) {
20040 if (isBuffer(arrbuf)) {
20043 if (typeof global.ArrayBuffer !== 'function') {
20046 if (typeof ArrayBuffer.isView === 'function') {
20047 return ArrayBuffer.isView(arrbuf);
20052 if (arrbuf instanceof DataView) {
20055 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
20060 //
1. The assert module provides functions that throw
20061 // AssertionError's when particular conditions are not met. The
20062 // assert module must conform to the following interface.
20064 var assert = module.exports = ok;
20066 //
2. The AssertionError is defined in assert.
20067 // new assert.AssertionError({ message: message,
20069 // expected: expected })
20071 var regex = /\s*function\s+([^\(\s]*)\s*/;
20072 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
20073 function getName(func) {
20074 if (!util.isFunction(func)) {
20077 if (functionsHaveNames) {
20080 var str = func.toString();
20081 var match = str.match(regex);
20082 return match && match[
1];
20084 assert.AssertionError = function AssertionError(options) {
20085 this.name = 'AssertionError';
20086 this.actual = options.actual;
20087 this.expected = options.expected;
20088 this.operator = options.operator;
20089 if (options.message) {
20090 this.message = options.message;
20091 this.generatedMessage = false;
20093 this.message = getMessage(this);
20094 this.generatedMessage = true;
20096 var stackStartFunction = options.stackStartFunction || fail;
20097 if (Error.captureStackTrace) {
20098 Error.captureStackTrace(this, stackStartFunction);
20100 // non v8 browsers so we can have a stacktrace
20101 var err = new Error();
20103 var out = err.stack;
20105 // try to strip useless frames
20106 var fn_name = getName(stackStartFunction);
20107 var idx = out.indexOf('\n' + fn_name);
20109 // once we have located the function frame
20110 // we need to strip out everything before it (and its line)
20111 var next_line = out.indexOf('\n', idx +
1);
20112 out = out.substring(next_line +
1);
20120 // assert.AssertionError instanceof Error
20121 util.inherits(assert.AssertionError, Error);
20123 function truncate(s, n) {
20124 if (typeof s === 'string') {
20125 return s.length < n ? s : s.slice(
0, n);
20130 function inspect(something) {
20131 if (functionsHaveNames || !util.isFunction(something)) {
20132 return util.inspect(something);
20134 var rawname = getName(something);
20135 var name = rawname ? ': ' + rawname : '';
20136 return '[Function' + name + ']';
20138 function getMessage(self) {
20139 return truncate(inspect(self.actual),
128) + ' ' +
20140 self.operator + ' ' +
20141 truncate(inspect(self.expected),
128);
20144 // At present only the three keys mentioned above are used and
20145 // understood by the spec. Implementations or sub modules can pass
20146 // other keys to the AssertionError's constructor - they will be
20149 //
3. All of the following functions must throw an AssertionError
20150 // when a corresponding condition is not met, with a message that
20151 // may be undefined if not provided. All assertion methods provide
20152 // both the actual and expected values to the assertion error for
20153 // display purposes.
20155 function fail(actual, expected, message, operator, stackStartFunction) {
20156 throw new assert.AssertionError({
20159 expected: expected,
20160 operator: operator,
20161 stackStartFunction: stackStartFunction
20165 // EXTENSION! allows for well behaved errors defined elsewhere.
20166 assert.fail = fail;
20168 //
4. Pure assertion tests whether a value is truthy, as determined
20170 // assert.ok(guard, message_opt);
20171 // This statement is equivalent to assert.equal(true, !!guard,
20172 // message_opt);. To test strictly for the value true, use
20173 // assert.strictEqual(true, guard, message_opt);.
20175 function ok(value, message) {
20176 if (!value) fail(value, true, message, '==', assert.ok);
20180 //
5. The equality assertion tests shallow, coercive equality with
20182 // assert.equal(actual, expected, message_opt);
20184 assert.equal = function equal(actual, expected, message) {
20185 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
20188 //
6. The non-equality assertion tests for whether two objects are not equal
20189 // with != assert.notEqual(actual, expected, message_opt);
20191 assert.notEqual = function notEqual(actual, expected, message) {
20192 if (actual == expected) {
20193 fail(actual, expected, message, '!=', assert.notEqual);
20197 //
7. The equivalence assertion tests a deep equality relation.
20198 // assert.deepEqual(actual, expected, message_opt);
20200 assert.deepEqual = function deepEqual(actual, expected, message) {
20201 if (!_deepEqual(actual, expected, false)) {
20202 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
20206 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
20207 if (!_deepEqual(actual, expected, true)) {
20208 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
20212 function _deepEqual(actual, expected, strict, memos) {
20213 //
7.1. All identical values are equivalent, as determined by ===.
20214 if (actual === expected) {
20216 } else if (isBuffer(actual) && isBuffer(expected)) {
20217 return compare(actual, expected) ===
0;
20219 //
7.2. If the expected value is a Date object, the actual value is
20220 // equivalent if it is also a Date object that refers to the same time.
20221 } else if (util.isDate(actual) && util.isDate(expected)) {
20222 return actual.getTime() === expected.getTime();
20224 //
7.3 If the expected value is a RegExp object, the actual value is
20225 // equivalent if it is also a RegExp object with the same source and
20226 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
20227 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
20228 return actual.source === expected.source &&
20229 actual.global === expected.global &&
20230 actual.multiline === expected.multiline &&
20231 actual.lastIndex === expected.lastIndex &&
20232 actual.ignoreCase === expected.ignoreCase;
20234 //
7.4. Other pairs that do not both pass typeof value == 'object',
20235 // equivalence is determined by ==.
20236 } else if ((actual === null || typeof actual !== 'object') &&
20237 (expected === null || typeof expected !== 'object')) {
20238 return strict ? actual === expected : actual == expected;
20240 // If both values are instances of typed arrays, wrap their underlying
20241 // ArrayBuffers in a Buffer each to increase performance
20242 // This optimization requires the arrays to have the same type as checked by
20243 // Object.prototype.toString (aka pToString). Never perform binary
20244 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
20245 // bit patterns are not identical.
20246 } else if (isView(actual) && isView(expected) &&
20247 pToString(actual) === pToString(expected) &&
20248 !(actual instanceof Float32Array ||
20249 actual instanceof Float64Array)) {
20250 return compare(new Uint8Array(actual.buffer),
20251 new Uint8Array(expected.buffer)) ===
0;
20253 //
7.5 For all other Object pairs, including Array objects, equivalence is
20254 // determined by having the same number of owned properties (as verified
20255 // with Object.prototype.hasOwnProperty.call), the same set of keys
20256 // (although not necessarily the same order), equivalent values for every
20257 // corresponding key, and an identical 'prototype' property. Note: this
20258 // accounts for both named and indexed properties on Arrays.
20259 } else if (isBuffer(actual) !== isBuffer(expected)) {
20262 memos = memos || {actual: [], expected: []};
20264 var actualIndex = memos.actual.indexOf(actual);
20265 if (actualIndex !== -
1) {
20266 if (actualIndex === memos.expected.indexOf(expected)) {
20271 memos.actual.push(actual);
20272 memos.expected.push(expected);
20274 return objEquiv(actual, expected, strict, memos);
20278 function isArguments(object) {
20279 return Object.prototype.toString.call(object) == '[object Arguments]';
20282 function objEquiv(a, b, strict, actualVisitedObjects) {
20283 if (a === null || a === undefined || b === null || b === undefined)
20285 // if one is a primitive, the other must be same
20286 if (util.isPrimitive(a) || util.isPrimitive(b))
20288 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
20290 var aIsArgs = isArguments(a);
20291 var bIsArgs = isArguments(b);
20292 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
20295 a = pSlice.call(a);
20296 b = pSlice.call(b);
20297 return _deepEqual(a, b, strict);
20299 var ka = objectKeys(a);
20300 var kb = objectKeys(b);
20302 // having the same number of owned properties (keys incorporates
20304 if (ka.length !== kb.length)
20306 //the same set of keys (although not necessarily the same order),
20309 //~~~cheap key test
20310 for (i = ka.length -
1; i
>=
0; i--) {
20311 if (ka[i] !== kb[i])
20314 //equivalent values for every corresponding key, and
20315 //~~~possibly expensive deep test
20316 for (i = ka.length -
1; i
>=
0; i--) {
20318 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
20324 //
8. The non-equivalence assertion tests for any deep inequality.
20325 // assert.notDeepEqual(actual, expected, message_opt);
20327 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
20328 if (_deepEqual(actual, expected, false)) {
20329 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
20333 assert.notDeepStrictEqual = notDeepStrictEqual;
20334 function notDeepStrictEqual(actual, expected, message) {
20335 if (_deepEqual(actual, expected, true)) {
20336 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
20341 //
9. The strict equality assertion tests strict equality, as determined by ===.
20342 // assert.strictEqual(actual, expected, message_opt);
20344 assert.strictEqual = function strictEqual(actual, expected, message) {
20345 if (actual !== expected) {
20346 fail(actual, expected, message, '===', assert.strictEqual);
20350 //
10. The strict non-equality assertion tests for strict inequality, as
20351 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
20353 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
20354 if (actual === expected) {
20355 fail(actual, expected, message, '!==', assert.notStrictEqual);
20359 function expectedException(actual, expected) {
20360 if (!actual || !expected) {
20364 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
20365 return expected.test(actual);
20369 if (actual instanceof expected) {
20373 // Ignore. The instanceof check doesn't work for arrow functions.
20376 if (Error.isPrototypeOf(expected)) {
20380 return expected.call({}, actual) === true;
20383 function _tryBlock(block) {
20393 function _throws(shouldThrow, block, expected, message) {
20396 if (typeof block !== 'function') {
20397 throw new TypeError('"block" argument must be a function');
20400 if (typeof expected === 'string') {
20401 message = expected;
20405 actual = _tryBlock(block);
20407 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
20408 (message ? ' ' + message : '.');
20410 if (shouldThrow && !actual) {
20411 fail(actual, expected, 'Missing expected exception' + message);
20414 var userProvidedMessage = typeof message === 'string';
20415 var isUnwantedException = !shouldThrow && util.isError(actual);
20416 var isUnexpectedException = !shouldThrow && actual && !expected;
20418 if ((isUnwantedException &&
20419 userProvidedMessage &&
20420 expectedException(actual, expected)) ||
20421 isUnexpectedException) {
20422 fail(actual, expected, 'Got unwanted exception' + message);
20425 if ((shouldThrow && actual && expected &&
20426 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
20431 //
11. Expected to throw an error:
20432 // assert.throws(block, Error_opt, message_opt);
20434 assert.throws = function(block, /*optional*/error, /*optional*/message) {
20435 _throws(true, block, error, message);
20438 // EXTENSION! This is annoying to write outside this module.
20439 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
20440 _throws(false, block, error, message);
20443 assert.ifError = function(err) { if (err) throw err; };
20445 var objectKeys = Object.keys || function (obj) {
20447 for (var key in obj) {
20448 if (hasOwn.call(obj, key)) keys.push(key);
20453 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
20454 },{"util/":
30}],
2:[function(require,module,exports){
20457 exports.byteLength = byteLength
20458 exports.toByteArray = toByteArray
20459 exports.fromByteArray = fromByteArray
20463 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
20465 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
20466 for (var i =
0, len = code.length; i < len; ++i) {
20467 lookup[i] = code[i]
20468 revLookup[code.charCodeAt(i)] = i
20471 revLookup['-'.charCodeAt(
0)] =
62
20472 revLookup['_'.charCodeAt(
0)] =
63
20474 function placeHoldersCount (b64) {
20475 var len = b64.length
20477 throw new Error('Invalid string. Length must be a multiple of
4')
20480 // the number of equal signs (place holders)
20481 // if there are two placeholders, than the two characters before it
20482 // represent one byte
20483 // if there is only one, then the three characters before it represent
2 bytes
20484 // this is just a cheap hack to not do indexOf twice
20485 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
20488 function byteLength (b64) {
20489 // base64 is
4/
3 + up to two characters of the original data
20490 return b64.length *
3 /
4 - placeHoldersCount(b64)
20493 function toByteArray (b64) {
20494 var i, j, l, tmp, placeHolders, arr
20495 var len = b64.length
20496 placeHolders = placeHoldersCount(b64)
20498 arr = new Arr(len *
3 /
4 - placeHolders)
20500 // if there are placeholders, only get up to the last complete
4 chars
20501 l = placeHolders
> 0 ? len -
4 : len
20505 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
20506 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
20507 arr[L++] = (tmp
>> 16) &
0xFF
20508 arr[L++] = (tmp
>> 8) &
0xFF
20509 arr[L++] = tmp &
0xFF
20512 if (placeHolders ===
2) {
20513 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
20514 arr[L++] = tmp &
0xFF
20515 } else if (placeHolders ===
1) {
20516 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
20517 arr[L++] = (tmp
>> 8) &
0xFF
20518 arr[L++] = tmp &
0xFF
20524 function tripletToBase64 (num) {
20525 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
20528 function encodeChunk (uint8, start, end) {
20531 for (var i = start; i < end; i +=
3) {
20532 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
20533 output.push(tripletToBase64(tmp))
20535 return output.join('')
20538 function fromByteArray (uint8) {
20540 var len = uint8.length
20541 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
20544 var maxChunkLength =
16383 // must be multiple of
3
20546 // go through the array every three bytes, we'll deal with trailing stuff later
20547 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
20548 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
20551 // pad the end with zeros, but make sure to not forget the extra bytes
20552 if (extraBytes ===
1) {
20553 tmp = uint8[len -
1]
20554 output += lookup[tmp
>> 2]
20555 output += lookup[(tmp <<
4) &
0x3F]
20557 } else if (extraBytes ===
2) {
20558 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
20559 output += lookup[tmp
>> 10]
20560 output += lookup[(tmp
>> 4) &
0x3F]
20561 output += lookup[(tmp <<
2) &
0x3F]
20567 return parts.join('')
20570 },{}],
3:[function(require,module,exports){
20572 },{}],
4:[function(require,module,exports){
20573 (function (global){
20576 var buffer = require('buffer');
20577 var Buffer = buffer.Buffer;
20578 var SlowBuffer = buffer.SlowBuffer;
20579 var MAX_LEN = buffer.kMaxLength ||
2147483647;
20580 exports.alloc = function alloc(size, fill, encoding) {
20581 if (typeof Buffer.alloc === 'function') {
20582 return Buffer.alloc(size, fill, encoding);
20584 if (typeof encoding === 'number') {
20585 throw new TypeError('encoding must not be number');
20587 if (typeof size !== 'number') {
20588 throw new TypeError('size must be a number');
20590 if (size
> MAX_LEN) {
20591 throw new RangeError('size is too large');
20593 var enc = encoding;
20595 if (_fill === undefined) {
20599 var buf = new Buffer(size);
20600 if (typeof _fill === 'string') {
20601 var fillBuf = new Buffer(_fill, enc);
20602 var flen = fillBuf.length;
20604 while (++i < size) {
20605 buf[i] = fillBuf[i % flen];
20612 exports.allocUnsafe = function allocUnsafe(size) {
20613 if (typeof Buffer.allocUnsafe === 'function') {
20614 return Buffer.allocUnsafe(size);
20616 if (typeof size !== 'number') {
20617 throw new TypeError('size must be a number');
20619 if (size
> MAX_LEN) {
20620 throw new RangeError('size is too large');
20622 return new Buffer(size);
20624 exports.from = function from(value, encodingOrOffset, length) {
20625 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
20626 return Buffer.from(value, encodingOrOffset, length);
20628 if (typeof value === 'number') {
20629 throw new TypeError('"value" argument must not be a number');
20631 if (typeof value === 'string') {
20632 return new Buffer(value, encodingOrOffset);
20634 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
20635 var offset = encodingOrOffset;
20636 if (arguments.length ===
1) {
20637 return new Buffer(value);
20639 if (typeof offset === 'undefined') {
20643 if (typeof len === 'undefined') {
20644 len = value.byteLength - offset;
20646 if (offset
>= value.byteLength) {
20647 throw new RangeError('\'offset\' is out of bounds');
20649 if (len
> value.byteLength - offset) {
20650 throw new RangeError('\'length\' is out of bounds');
20652 return new Buffer(value.slice(offset, offset + len));
20654 if (Buffer.isBuffer(value)) {
20655 var out = new Buffer(value.length);
20656 value.copy(out,
0,
0, value.length);
20660 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
20661 return new Buffer(value);
20663 if (value.type === 'Buffer' && Array.isArray(value.data)) {
20664 return new Buffer(value.data);
20668 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
20670 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
20671 if (typeof Buffer.allocUnsafeSlow === 'function') {
20672 return Buffer.allocUnsafeSlow(size);
20674 if (typeof size !== 'number') {
20675 throw new TypeError('size must be a number');
20677 if (size
>= MAX_LEN) {
20678 throw new RangeError('size is too large');
20680 return new SlowBuffer(size);
20683 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
20684 },{"buffer":
5}],
5:[function(require,module,exports){
20686 * The buffer module from node.js, for the browser.
20688 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
20691 /* eslint-disable no-proto */
20695 var base64 = require('base64-js')
20696 var ieee754 = require('ieee754')
20698 exports.Buffer = Buffer
20699 exports.SlowBuffer = SlowBuffer
20700 exports.INSPECT_MAX_BYTES =
50
20702 var K_MAX_LENGTH =
0x7fffffff
20703 exports.kMaxLength = K_MAX_LENGTH
20706 * If `Buffer.TYPED_ARRAY_SUPPORT`:
20707 * === true Use Uint8Array implementation (fastest)
20708 * === false Print warning and recommend using `buffer` v4.x which has an Object
20709 * implementation (most compatible, even IE6)
20711 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
20712 * Opera
11.6+, iOS
4.2+.
20714 * We report that the browser does not support typed arrays if the are not subclassable
20715 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
20716 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
20717 * for __proto__ and has a buggy typed array implementation.
20719 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
20721 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
20722 typeof console.error === 'function') {
20724 'This browser lacks typed array (Uint8Array) support which is required by ' +
20725 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
20729 function typedArraySupport () {
20730 // Can typed array instances can be augmented?
20732 var arr = new Uint8Array(
1)
20733 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
20734 return arr.foo() ===
42
20740 function createBuffer (length) {
20741 if (length
> K_MAX_LENGTH) {
20742 throw new RangeError('Invalid typed array length')
20744 // Return an augmented `Uint8Array` instance
20745 var buf = new Uint8Array(length)
20746 buf.__proto__ = Buffer.prototype
20751 * The Buffer constructor returns instances of `Uint8Array` that have their
20752 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
20753 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
20754 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
20755 * returns a single octet.
20757 * The `Uint8Array` prototype remains unmodified.
20760 function Buffer (arg, encodingOrOffset, length) {
20762 if (typeof arg === 'number') {
20763 if (typeof encodingOrOffset === 'string') {
20765 'If encoding is specified then the first argument must be a string'
20768 return allocUnsafe(arg)
20770 return from(arg, encodingOrOffset, length)
20773 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
20774 if (typeof Symbol !== 'undefined' && Symbol.species &&
20775 Buffer[Symbol.species] === Buffer) {
20776 Object.defineProperty(Buffer, Symbol.species, {
20778 configurable: true,
20784 Buffer.poolSize =
8192 // not used by this implementation
20786 function from (value, encodingOrOffset, length) {
20787 if (typeof value === 'number') {
20788 throw new TypeError('"value" argument must not be a number')
20791 if (value instanceof ArrayBuffer) {
20792 return fromArrayBuffer(value, encodingOrOffset, length)
20795 if (typeof value === 'string') {
20796 return fromString(value, encodingOrOffset)
20799 return fromObject(value)
20803 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
20804 * if value is a number.
20805 * Buffer.from(str[, encoding])
20806 * Buffer.from(array)
20807 * Buffer.from(buffer)
20808 * Buffer.from(arrayBuffer[, byteOffset[, length]])
20810 Buffer.from = function (value, encodingOrOffset, length) {
20811 return from(value, encodingOrOffset, length)
20814 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
20815 // https://github.com/feross/buffer/pull/
148
20816 Buffer.prototype.__proto__ = Uint8Array.prototype
20817 Buffer.__proto__ = Uint8Array
20819 function assertSize (size) {
20820 if (typeof size !== 'number') {
20821 throw new TypeError('"size" argument must be a number')
20822 } else if (size <
0) {
20823 throw new RangeError('"size" argument must not be negative')
20827 function alloc (size, fill, encoding) {
20830 return createBuffer(size)
20832 if (fill !== undefined) {
20833 // Only pay attention to encoding if it's a string. This
20834 // prevents accidentally sending in a number that would
20835 // be interpretted as a start offset.
20836 return typeof encoding === 'string'
20837 ? createBuffer(size).fill(fill, encoding)
20838 : createBuffer(size).fill(fill)
20840 return createBuffer(size)
20844 * Creates a new filled Buffer instance.
20845 * alloc(size[, fill[, encoding]])
20847 Buffer.alloc = function (size, fill, encoding) {
20848 return alloc(size, fill, encoding)
20851 function allocUnsafe (size) {
20853 return createBuffer(size <
0 ?
0 : checked(size) |
0)
20857 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
20859 Buffer.allocUnsafe = function (size) {
20860 return allocUnsafe(size)
20863 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
20865 Buffer.allocUnsafeSlow = function (size) {
20866 return allocUnsafe(size)
20869 function fromString (string, encoding) {
20870 if (typeof encoding !== 'string' || encoding === '') {
20874 if (!Buffer.isEncoding(encoding)) {
20875 throw new TypeError('"encoding" must be a valid string encoding')
20878 var length = byteLength(string, encoding) |
0
20879 var buf = createBuffer(length)
20881 var actual = buf.write(string, encoding)
20883 if (actual !== length) {
20884 // Writing a hex string, for example, that contains invalid characters will
20885 // cause everything after the first invalid character to be ignored. (e.g.
20886 // 'abxxcd' will be treated as 'ab')
20887 buf = buf.slice(
0, actual)
20893 function fromArrayLike (array) {
20894 var length = array.length <
0 ?
0 : checked(array.length) |
0
20895 var buf = createBuffer(length)
20896 for (var i =
0; i < length; i +=
1) {
20897 buf[i] = array[i] &
255
20902 function fromArrayBuffer (array, byteOffset, length) {
20903 if (byteOffset <
0 || array.byteLength < byteOffset) {
20904 throw new RangeError('\'offset\' is out of bounds')
20907 if (array.byteLength < byteOffset + (length ||
0)) {
20908 throw new RangeError('\'length\' is out of bounds')
20912 if (byteOffset === undefined && length === undefined) {
20913 buf = new Uint8Array(array)
20914 } else if (length === undefined) {
20915 buf = new Uint8Array(array, byteOffset)
20917 buf = new Uint8Array(array, byteOffset, length)
20920 // Return an augmented `Uint8Array` instance
20921 buf.__proto__ = Buffer.prototype
20925 function fromObject (obj) {
20926 if (Buffer.isBuffer(obj)) {
20927 var len = checked(obj.length) |
0
20928 var buf = createBuffer(len)
20930 if (buf.length ===
0) {
20934 obj.copy(buf,
0,
0, len)
20939 if (ArrayBuffer.isView(obj) || 'length' in obj) {
20940 if (typeof obj.length !== 'number' || isnan(obj.length)) {
20941 return createBuffer(
0)
20943 return fromArrayLike(obj)
20946 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
20947 return fromArrayLike(obj.data)
20951 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
20954 function checked (length) {
20955 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
20956 // length is NaN (which is otherwise coerced to zero.)
20957 if (length
>= K_MAX_LENGTH) {
20958 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
20959 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
20964 function SlowBuffer (length) {
20965 if (+length != length) { // eslint-disable-line eqeqeq
20968 return Buffer.alloc(+length)
20971 Buffer.isBuffer = function isBuffer (b) {
20972 return b != null && b._isBuffer === true
20975 Buffer.compare = function compare (a, b) {
20976 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
20977 throw new TypeError('Arguments must be Buffers')
20980 if (a === b) return
0
20985 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
20986 if (a[i] !== b[i]) {
20993 if (x < y) return -
1
20994 if (y < x) return
1
20998 Buffer.isEncoding = function isEncoding (encoding) {
20999 switch (String(encoding).toLowerCase()) {
21017 Buffer.concat = function concat (list, length) {
21018 if (!Array.isArray(list)) {
21019 throw new TypeError('"list" argument must be an Array of Buffers')
21022 if (list.length ===
0) {
21023 return Buffer.alloc(
0)
21027 if (length === undefined) {
21029 for (i =
0; i < list.length; ++i) {
21030 length += list[i].length
21034 var buffer = Buffer.allocUnsafe(length)
21036 for (i =
0; i < list.length; ++i) {
21038 if (!Buffer.isBuffer(buf)) {
21039 throw new TypeError('"list" argument must be an Array of Buffers')
21041 buf.copy(buffer, pos)
21047 function byteLength (string, encoding) {
21048 if (Buffer.isBuffer(string)) {
21049 return string.length
21051 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
21052 return string.byteLength
21054 if (typeof string !== 'string') {
21055 string = '' + string
21058 var len = string.length
21059 if (len ===
0) return
0
21061 // Use a for loop to avoid recursion
21062 var loweredCase = false
21064 switch (encoding) {
21072 return utf8ToBytes(string).length
21081 return base64ToBytes(string).length
21083 if (loweredCase) return utf8ToBytes(string).length // assume utf8
21084 encoding = ('' + encoding).toLowerCase()
21089 Buffer.byteLength = byteLength
21091 function slowToString (encoding, start, end) {
21092 var loweredCase = false
21094 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
21095 // property of a typed array.
21097 // This behaves neither like String nor Uint8Array in that we set start/end
21098 // to their upper/lower bounds if the value passed is out of range.
21099 // undefined is handled specially as per ECMA-
262 6th Edition,
21100 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
21101 if (start === undefined || start <
0) {
21104 // Return early if start
> this.length. Done here to prevent potential uint32
21105 // coercion fail below.
21106 if (start
> this.length) {
21110 if (end === undefined || end
> this.length) {
21118 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
21122 if (end <= start) {
21126 if (!encoding) encoding = 'utf8'
21129 switch (encoding) {
21131 return hexSlice(this, start, end)
21135 return utf8Slice(this, start, end)
21138 return asciiSlice(this, start, end)
21142 return latin1Slice(this, start, end)
21145 return base64Slice(this, start, end)
21151 return utf16leSlice(this, start, end)
21154 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
21155 encoding = (encoding + '').toLowerCase()
21161 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
21162 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
21163 // reliably in a browserify context because there could be multiple different
21164 // copies of the 'buffer' package in use. This method works even for Buffer
21165 // instances that were created from another copy of the `buffer` package.
21166 // See: https://github.com/feross/buffer/issues/
154
21167 Buffer.prototype._isBuffer = true
21169 function swap (b, n, m) {
21175 Buffer.prototype.swap16 = function swap16 () {
21176 var len = this.length
21177 if (len %
2 !==
0) {
21178 throw new RangeError('Buffer size must be a multiple of
16-bits')
21180 for (var i =
0; i < len; i +=
2) {
21181 swap(this, i, i +
1)
21186 Buffer.prototype.swap32 = function swap32 () {
21187 var len = this.length
21188 if (len %
4 !==
0) {
21189 throw new RangeError('Buffer size must be a multiple of
32-bits')
21191 for (var i =
0; i < len; i +=
4) {
21192 swap(this, i, i +
3)
21193 swap(this, i +
1, i +
2)
21198 Buffer.prototype.swap64 = function swap64 () {
21199 var len = this.length
21200 if (len %
8 !==
0) {
21201 throw new RangeError('Buffer size must be a multiple of
64-bits')
21203 for (var i =
0; i < len; i +=
8) {
21204 swap(this, i, i +
7)
21205 swap(this, i +
1, i +
6)
21206 swap(this, i +
2, i +
5)
21207 swap(this, i +
3, i +
4)
21212 Buffer.prototype.toString = function toString () {
21213 var length = this.length
21214 if (length ===
0) return ''
21215 if (arguments.length ===
0) return utf8Slice(this,
0, length)
21216 return slowToString.apply(this, arguments)
21219 Buffer.prototype.equals = function equals (b) {
21220 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
21221 if (this === b) return true
21222 return Buffer.compare(this, b) ===
0
21225 Buffer.prototype.inspect = function inspect () {
21227 var max = exports.INSPECT_MAX_BYTES
21228 if (this.length
> 0) {
21229 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
21230 if (this.length
> max) str += ' ... '
21232 return '
<Buffer ' + str + '
>'
21235 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
21236 if (!Buffer.isBuffer(target)) {
21237 throw new TypeError('Argument must be a Buffer')
21240 if (start === undefined) {
21243 if (end === undefined) {
21244 end = target ? target.length :
0
21246 if (thisStart === undefined) {
21249 if (thisEnd === undefined) {
21250 thisEnd = this.length
21253 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
21254 throw new RangeError('out of range index')
21257 if (thisStart
>= thisEnd && start
>= end) {
21260 if (thisStart
>= thisEnd) {
21263 if (start
>= end) {
21272 if (this === target) return
0
21274 var x = thisEnd - thisStart
21275 var y = end - start
21276 var len = Math.min(x, y)
21278 var thisCopy = this.slice(thisStart, thisEnd)
21279 var targetCopy = target.slice(start, end)
21281 for (var i =
0; i < len; ++i) {
21282 if (thisCopy[i] !== targetCopy[i]) {
21289 if (x < y) return -
1
21290 if (y < x) return
1
21294 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
21295 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
21298 // - buffer - a Buffer to search
21299 // - val - a string, Buffer, or number
21300 // - byteOffset - an index into `buffer`; will be clamped to an int32
21301 // - encoding - an optional encoding, relevant is val is a string
21302 // - dir - true for indexOf, false for lastIndexOf
21303 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
21304 // Empty buffer means no match
21305 if (buffer.length ===
0) return -
1
21307 // Normalize byteOffset
21308 if (typeof byteOffset === 'string') {
21309 encoding = byteOffset
21311 } else if (byteOffset
> 0x7fffffff) {
21312 byteOffset =
0x7fffffff
21313 } else if (byteOffset < -
0x80000000) {
21314 byteOffset = -
0x80000000
21316 byteOffset = +byteOffset // Coerce to Number.
21317 if (isNaN(byteOffset)) {
21318 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
21319 byteOffset = dir ?
0 : (buffer.length -
1)
21322 // Normalize byteOffset: negative offsets start from the end of the buffer
21323 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
21324 if (byteOffset
>= buffer.length) {
21326 else byteOffset = buffer.length -
1
21327 } else if (byteOffset <
0) {
21328 if (dir) byteOffset =
0
21333 if (typeof val === 'string') {
21334 val = Buffer.from(val, encoding)
21337 // Finally, search either indexOf (if dir is true) or lastIndexOf
21338 if (Buffer.isBuffer(val)) {
21339 // Special case: looking for empty string/buffer always fails
21340 if (val.length ===
0) {
21343 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
21344 } else if (typeof val === 'number') {
21345 val = val &
0xFF // Search for a byte value [
0-
255]
21346 if (typeof Uint8Array.prototype.indexOf === 'function') {
21348 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
21350 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
21353 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
21356 throw new TypeError('val must be string, number or Buffer')
21359 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
21361 var arrLength = arr.length
21362 var valLength = val.length
21364 if (encoding !== undefined) {
21365 encoding = String(encoding).toLowerCase()
21366 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
21367 encoding === 'utf16le' || encoding === 'utf-
16le') {
21368 if (arr.length <
2 || val.length <
2) {
21378 function read (buf, i) {
21379 if (indexSize ===
1) {
21382 return buf.readUInt16BE(i * indexSize)
21388 var foundIndex = -
1
21389 for (i = byteOffset; i < arrLength; i++) {
21390 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
21391 if (foundIndex === -
1) foundIndex = i
21392 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
21394 if (foundIndex !== -
1) i -= i - foundIndex
21399 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
21400 for (i = byteOffset; i
>=
0; i--) {
21402 for (var j =
0; j < valLength; j++) {
21403 if (read(arr, i + j) !== read(val, j)) {
21408 if (found) return i
21415 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
21416 return this.indexOf(val, byteOffset, encoding) !== -
1
21419 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
21420 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
21423 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
21424 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
21427 function hexWrite (buf, string, offset, length) {
21428 offset = Number(offset) ||
0
21429 var remaining = buf.length - offset
21433 length = Number(length)
21434 if (length
> remaining) {
21439 // must be an even number of digits
21440 var strLen = string.length
21441 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
21443 if (length
> strLen /
2) {
21444 length = strLen /
2
21446 for (var i =
0; i < length; ++i) {
21447 var parsed = parseInt(string.substr(i *
2,
2),
16)
21448 if (isNaN(parsed)) return i
21449 buf[offset + i] = parsed
21454 function utf8Write (buf, string, offset, length) {
21455 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
21458 function asciiWrite (buf, string, offset, length) {
21459 return blitBuffer(asciiToBytes(string), buf, offset, length)
21462 function latin1Write (buf, string, offset, length) {
21463 return asciiWrite(buf, string, offset, length)
21466 function base64Write (buf, string, offset, length) {
21467 return blitBuffer(base64ToBytes(string), buf, offset, length)
21470 function ucs2Write (buf, string, offset, length) {
21471 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
21474 Buffer.prototype.write = function write (string, offset, length, encoding) {
21475 // Buffer#write(string)
21476 if (offset === undefined) {
21478 length = this.length
21480 // Buffer#write(string, encoding)
21481 } else if (length === undefined && typeof offset === 'string') {
21483 length = this.length
21485 // Buffer#write(string, offset[, length][, encoding])
21486 } else if (isFinite(offset)) {
21487 offset = offset
>>> 0
21488 if (isFinite(length)) {
21489 length = length
>>> 0
21490 if (encoding === undefined) encoding = 'utf8'
21497 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
21501 var remaining = this.length - offset
21502 if (length === undefined || length
> remaining) length = remaining
21504 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
21505 throw new RangeError('Attempt to write outside buffer bounds')
21508 if (!encoding) encoding = 'utf8'
21510 var loweredCase = false
21512 switch (encoding) {
21514 return hexWrite(this, string, offset, length)
21518 return utf8Write(this, string, offset, length)
21521 return asciiWrite(this, string, offset, length)
21525 return latin1Write(this, string, offset, length)
21528 // Warning: maxLength not taken into account in base64Write
21529 return base64Write(this, string, offset, length)
21535 return ucs2Write(this, string, offset, length)
21538 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
21539 encoding = ('' + encoding).toLowerCase()
21545 Buffer.prototype.toJSON = function toJSON () {
21548 data: Array.prototype.slice.call(this._arr || this,
0)
21552 function base64Slice (buf, start, end) {
21553 if (start ===
0 && end === buf.length) {
21554 return base64.fromByteArray(buf)
21556 return base64.fromByteArray(buf.slice(start, end))
21560 function utf8Slice (buf, start, end) {
21561 end = Math.min(buf.length, end)
21566 var firstByte = buf[i]
21567 var codePoint = null
21568 var bytesPerSequence = (firstByte
> 0xEF) ?
4
21569 : (firstByte
> 0xDF) ?
3
21570 : (firstByte
> 0xBF) ?
2
21573 if (i + bytesPerSequence <= end) {
21574 var secondByte, thirdByte, fourthByte, tempCodePoint
21576 switch (bytesPerSequence) {
21578 if (firstByte <
0x80) {
21579 codePoint = firstByte
21583 secondByte = buf[i +
1]
21584 if ((secondByte &
0xC0) ===
0x80) {
21585 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
21586 if (tempCodePoint
> 0x7F) {
21587 codePoint = tempCodePoint
21592 secondByte = buf[i +
1]
21593 thirdByte = buf[i +
2]
21594 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
21595 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
21596 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
21597 codePoint = tempCodePoint
21602 secondByte = buf[i +
1]
21603 thirdByte = buf[i +
2]
21604 fourthByte = buf[i +
3]
21605 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
21606 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
21607 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
21608 codePoint = tempCodePoint
21614 if (codePoint === null) {
21615 // we did not generate a valid codePoint so insert a
21616 // replacement char (U+FFFD) and advance only
1 byte
21618 bytesPerSequence =
1
21619 } else if (codePoint
> 0xFFFF) {
21620 // encode to utf16 (surrogate pair dance)
21621 codePoint -=
0x10000
21622 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
21623 codePoint =
0xDC00 | codePoint &
0x3FF
21626 res.push(codePoint)
21627 i += bytesPerSequence
21630 return decodeCodePointsArray(res)
21633 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
21634 // the lowest limit is Chrome, with
0x10000 args.
21635 // We go
1 magnitude less, for safety
21636 var MAX_ARGUMENTS_LENGTH =
0x1000
21638 function decodeCodePointsArray (codePoints) {
21639 var len = codePoints.length
21640 if (len <= MAX_ARGUMENTS_LENGTH) {
21641 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
21644 // Decode in chunks to avoid
"call stack size exceeded".
21648 res += String.fromCharCode.apply(
21650 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
21656 function asciiSlice (buf, start, end) {
21658 end = Math.min(buf.length, end)
21660 for (var i = start; i < end; ++i) {
21661 ret += String.fromCharCode(buf[i] &
0x7F)
21666 function latin1Slice (buf, start, end) {
21668 end = Math.min(buf.length, end)
21670 for (var i = start; i < end; ++i) {
21671 ret += String.fromCharCode(buf[i])
21676 function hexSlice (buf, start, end) {
21677 var len = buf.length
21679 if (!start || start <
0) start =
0
21680 if (!end || end <
0 || end
> len) end = len
21683 for (var i = start; i < end; ++i) {
21684 out += toHex(buf[i])
21689 function utf16leSlice (buf, start, end) {
21690 var bytes = buf.slice(start, end)
21692 for (var i =
0; i < bytes.length; i +=
2) {
21693 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
21698 Buffer.prototype.slice = function slice (start, end) {
21699 var len = this.length
21701 end = end === undefined ? len : ~~end
21705 if (start <
0) start =
0
21706 } else if (start
> len) {
21712 if (end <
0) end =
0
21713 } else if (end
> len) {
21717 if (end < start) end = start
21719 var newBuf = this.subarray(start, end)
21720 // Return an augmented `Uint8Array` instance
21721 newBuf.__proto__ = Buffer.prototype
21726 * Need to make sure that buffer isn't trying to write out of bounds.
21728 function checkOffset (offset, ext, length) {
21729 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
21730 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
21733 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
21734 offset = offset
>>> 0
21735 byteLength = byteLength
>>> 0
21736 if (!noAssert) checkOffset(offset, byteLength, this.length)
21738 var val = this[offset]
21741 while (++i < byteLength && (mul *=
0x100)) {
21742 val += this[offset + i] * mul
21748 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
21749 offset = offset
>>> 0
21750 byteLength = byteLength
>>> 0
21752 checkOffset(offset, byteLength, this.length)
21755 var val = this[offset + --byteLength]
21757 while (byteLength
> 0 && (mul *=
0x100)) {
21758 val += this[offset + --byteLength] * mul
21764 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
21765 offset = offset
>>> 0
21766 if (!noAssert) checkOffset(offset,
1, this.length)
21767 return this[offset]
21770 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
21771 offset = offset
>>> 0
21772 if (!noAssert) checkOffset(offset,
2, this.length)
21773 return this[offset] | (this[offset +
1] <<
8)
21776 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
21777 offset = offset
>>> 0
21778 if (!noAssert) checkOffset(offset,
2, this.length)
21779 return (this[offset] <<
8) | this[offset +
1]
21782 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
21783 offset = offset
>>> 0
21784 if (!noAssert) checkOffset(offset,
4, this.length)
21786 return ((this[offset]) |
21787 (this[offset +
1] <<
8) |
21788 (this[offset +
2] <<
16)) +
21789 (this[offset +
3] *
0x1000000)
21792 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
21793 offset = offset
>>> 0
21794 if (!noAssert) checkOffset(offset,
4, this.length)
21796 return (this[offset] *
0x1000000) +
21797 ((this[offset +
1] <<
16) |
21798 (this[offset +
2] <<
8) |
21802 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
21803 offset = offset
>>> 0
21804 byteLength = byteLength
>>> 0
21805 if (!noAssert) checkOffset(offset, byteLength, this.length)
21807 var val = this[offset]
21810 while (++i < byteLength && (mul *=
0x100)) {
21811 val += this[offset + i] * mul
21815 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
21820 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
21821 offset = offset
>>> 0
21822 byteLength = byteLength
>>> 0
21823 if (!noAssert) checkOffset(offset, byteLength, this.length)
21827 var val = this[offset + --i]
21828 while (i
> 0 && (mul *=
0x100)) {
21829 val += this[offset + --i] * mul
21833 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
21838 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
21839 offset = offset
>>> 0
21840 if (!noAssert) checkOffset(offset,
1, this.length)
21841 if (!(this[offset] &
0x80)) return (this[offset])
21842 return ((
0xff - this[offset] +
1) * -
1)
21845 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
21846 offset = offset
>>> 0
21847 if (!noAssert) checkOffset(offset,
2, this.length)
21848 var val = this[offset] | (this[offset +
1] <<
8)
21849 return (val &
0x8000) ? val |
0xFFFF0000 : val
21852 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
21853 offset = offset
>>> 0
21854 if (!noAssert) checkOffset(offset,
2, this.length)
21855 var val = this[offset +
1] | (this[offset] <<
8)
21856 return (val &
0x8000) ? val |
0xFFFF0000 : val
21859 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
21860 offset = offset
>>> 0
21861 if (!noAssert) checkOffset(offset,
4, this.length)
21863 return (this[offset]) |
21864 (this[offset +
1] <<
8) |
21865 (this[offset +
2] <<
16) |
21866 (this[offset +
3] <<
24)
21869 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
21870 offset = offset
>>> 0
21871 if (!noAssert) checkOffset(offset,
4, this.length)
21873 return (this[offset] <<
24) |
21874 (this[offset +
1] <<
16) |
21875 (this[offset +
2] <<
8) |
21879 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
21880 offset = offset
>>> 0
21881 if (!noAssert) checkOffset(offset,
4, this.length)
21882 return ieee754.read(this, offset, true,
23,
4)
21885 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
21886 offset = offset
>>> 0
21887 if (!noAssert) checkOffset(offset,
4, this.length)
21888 return ieee754.read(this, offset, false,
23,
4)
21891 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
21892 offset = offset
>>> 0
21893 if (!noAssert) checkOffset(offset,
8, this.length)
21894 return ieee754.read(this, offset, true,
52,
8)
21897 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
21898 offset = offset
>>> 0
21899 if (!noAssert) checkOffset(offset,
8, this.length)
21900 return ieee754.read(this, offset, false,
52,
8)
21903 function checkInt (buf, value, offset, ext, max, min) {
21904 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
21905 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
21906 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
21909 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
21911 offset = offset
>>> 0
21912 byteLength = byteLength
>>> 0
21914 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
21915 checkInt(this, value, offset, byteLength, maxBytes,
0)
21920 this[offset] = value &
0xFF
21921 while (++i < byteLength && (mul *=
0x100)) {
21922 this[offset + i] = (value / mul) &
0xFF
21925 return offset + byteLength
21928 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
21930 offset = offset
>>> 0
21931 byteLength = byteLength
>>> 0
21933 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
21934 checkInt(this, value, offset, byteLength, maxBytes,
0)
21937 var i = byteLength -
1
21939 this[offset + i] = value &
0xFF
21940 while (--i
>=
0 && (mul *=
0x100)) {
21941 this[offset + i] = (value / mul) &
0xFF
21944 return offset + byteLength
21947 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
21949 offset = offset
>>> 0
21950 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
21951 this[offset] = (value &
0xff)
21955 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
21957 offset = offset
>>> 0
21958 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
21959 this[offset] = (value &
0xff)
21960 this[offset +
1] = (value
>>> 8)
21964 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
21966 offset = offset
>>> 0
21967 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
21968 this[offset] = (value
>>> 8)
21969 this[offset +
1] = (value &
0xff)
21973 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
21975 offset = offset
>>> 0
21976 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
21977 this[offset +
3] = (value
>>> 24)
21978 this[offset +
2] = (value
>>> 16)
21979 this[offset +
1] = (value
>>> 8)
21980 this[offset] = (value &
0xff)
21984 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
21986 offset = offset
>>> 0
21987 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
21988 this[offset] = (value
>>> 24)
21989 this[offset +
1] = (value
>>> 16)
21990 this[offset +
2] = (value
>>> 8)
21991 this[offset +
3] = (value &
0xff)
21995 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
21997 offset = offset
>>> 0
21999 var limit = Math.pow(
2, (
8 * byteLength) -
1)
22001 checkInt(this, value, offset, byteLength, limit -
1, -limit)
22007 this[offset] = value &
0xFF
22008 while (++i < byteLength && (mul *=
0x100)) {
22009 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
22012 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
22015 return offset + byteLength
22018 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
22020 offset = offset
>>> 0
22022 var limit = Math.pow(
2, (
8 * byteLength) -
1)
22024 checkInt(this, value, offset, byteLength, limit -
1, -limit)
22027 var i = byteLength -
1
22030 this[offset + i] = value &
0xFF
22031 while (--i
>=
0 && (mul *=
0x100)) {
22032 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
22035 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
22038 return offset + byteLength
22041 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
22043 offset = offset
>>> 0
22044 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
22045 if (value <
0) value =
0xff + value +
1
22046 this[offset] = (value &
0xff)
22050 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
22052 offset = offset
>>> 0
22053 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
22054 this[offset] = (value &
0xff)
22055 this[offset +
1] = (value
>>> 8)
22059 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
22061 offset = offset
>>> 0
22062 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
22063 this[offset] = (value
>>> 8)
22064 this[offset +
1] = (value &
0xff)
22068 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
22070 offset = offset
>>> 0
22071 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
22072 this[offset] = (value &
0xff)
22073 this[offset +
1] = (value
>>> 8)
22074 this[offset +
2] = (value
>>> 16)
22075 this[offset +
3] = (value
>>> 24)
22079 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
22081 offset = offset
>>> 0
22082 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
22083 if (value <
0) value =
0xffffffff + value +
1
22084 this[offset] = (value
>>> 24)
22085 this[offset +
1] = (value
>>> 16)
22086 this[offset +
2] = (value
>>> 8)
22087 this[offset +
3] = (value &
0xff)
22091 function checkIEEE754 (buf, value, offset, ext, max, min) {
22092 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
22093 if (offset <
0) throw new RangeError('Index out of range')
22096 function writeFloat (buf, value, offset, littleEndian, noAssert) {
22098 offset = offset
>>> 0
22100 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
22102 ieee754.write(buf, value, offset, littleEndian,
23,
4)
22106 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
22107 return writeFloat(this, value, offset, true, noAssert)
22110 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
22111 return writeFloat(this, value, offset, false, noAssert)
22114 function writeDouble (buf, value, offset, littleEndian, noAssert) {
22116 offset = offset
>>> 0
22118 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
22120 ieee754.write(buf, value, offset, littleEndian,
52,
8)
22124 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
22125 return writeDouble(this, value, offset, true, noAssert)
22128 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
22129 return writeDouble(this, value, offset, false, noAssert)
22132 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
22133 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
22134 if (!start) start =
0
22135 if (!end && end !==
0) end = this.length
22136 if (targetStart
>= target.length) targetStart = target.length
22137 if (!targetStart) targetStart =
0
22138 if (end
> 0 && end < start) end = start
22140 // Copy
0 bytes; we're done
22141 if (end === start) return
0
22142 if (target.length ===
0 || this.length ===
0) return
0
22144 // Fatal error conditions
22145 if (targetStart <
0) {
22146 throw new RangeError('targetStart out of bounds')
22148 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
22149 if (end <
0) throw new RangeError('sourceEnd out of bounds')
22152 if (end
> this.length) end = this.length
22153 if (target.length - targetStart < end - start) {
22154 end = target.length - targetStart + start
22157 var len = end - start
22160 if (this === target && start < targetStart && targetStart < end) {
22161 // descending copy from end
22162 for (i = len -
1; i
>=
0; --i) {
22163 target[i + targetStart] = this[i + start]
22165 } else if (len <
1000) {
22166 // ascending copy from start
22167 for (i =
0; i < len; ++i) {
22168 target[i + targetStart] = this[i + start]
22171 Uint8Array.prototype.set.call(
22173 this.subarray(start, start + len),
22182 // buffer.fill(number[, offset[, end]])
22183 // buffer.fill(buffer[, offset[, end]])
22184 // buffer.fill(string[, offset[, end]][, encoding])
22185 Buffer.prototype.fill = function fill (val, start, end, encoding) {
22186 // Handle string cases:
22187 if (typeof val === 'string') {
22188 if (typeof start === 'string') {
22192 } else if (typeof end === 'string') {
22196 if (val.length ===
1) {
22197 var code = val.charCodeAt(
0)
22202 if (encoding !== undefined && typeof encoding !== 'string') {
22203 throw new TypeError('encoding must be a string')
22205 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
22206 throw new TypeError('Unknown encoding: ' + encoding)
22208 } else if (typeof val === 'number') {
22212 // Invalid ranges are not set to a default, so can range check early.
22213 if (start <
0 || this.length < start || this.length < end) {
22214 throw new RangeError('Out of range index')
22217 if (end <= start) {
22221 start = start
>>> 0
22222 end = end === undefined ? this.length : end
>>> 0
22227 if (typeof val === 'number') {
22228 for (i = start; i < end; ++i) {
22232 var bytes = Buffer.isBuffer(val)
22234 : new Buffer(val, encoding)
22235 var len = bytes.length
22236 for (i =
0; i < end - start; ++i) {
22237 this[i + start] = bytes[i % len]
22244 // HELPER FUNCTIONS
22245 // ================
22247 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
22249 function base64clean (str) {
22250 // Node strips out invalid characters like \n and \t from the string, base64-js does not
22251 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
22252 // Node converts strings with length <
2 to ''
22253 if (str.length <
2) return ''
22254 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
22255 while (str.length %
4 !==
0) {
22261 function stringtrim (str) {
22262 if (str.trim) return str.trim()
22263 return str.replace(/^\s+|\s+$/g, '')
22266 function toHex (n) {
22267 if (n <
16) return '
0' + n.toString(
16)
22268 return n.toString(
16)
22271 function utf8ToBytes (string, units) {
22272 units = units || Infinity
22274 var length = string.length
22275 var leadSurrogate = null
22278 for (var i =
0; i < length; ++i) {
22279 codePoint = string.charCodeAt(i)
22281 // is surrogate component
22282 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
22283 // last char was a lead
22284 if (!leadSurrogate) {
22286 if (codePoint
> 0xDBFF) {
22287 // unexpected trail
22288 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22290 } else if (i +
1 === length) {
22292 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22297 leadSurrogate = codePoint
22302 //
2 leads in a row
22303 if (codePoint <
0xDC00) {
22304 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22305 leadSurrogate = codePoint
22309 // valid surrogate pair
22310 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
22311 } else if (leadSurrogate) {
22312 // valid bmp char, but last char was a lead
22313 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22316 leadSurrogate = null
22319 if (codePoint <
0x80) {
22320 if ((units -=
1) <
0) break
22321 bytes.push(codePoint)
22322 } else if (codePoint <
0x800) {
22323 if ((units -=
2) <
0) break
22325 codePoint
>> 0x6 |
0xC0,
22326 codePoint &
0x3F |
0x80
22328 } else if (codePoint <
0x10000) {
22329 if ((units -=
3) <
0) break
22331 codePoint
>> 0xC |
0xE0,
22332 codePoint
>> 0x6 &
0x3F |
0x80,
22333 codePoint &
0x3F |
0x80
22335 } else if (codePoint <
0x110000) {
22336 if ((units -=
4) <
0) break
22338 codePoint
>> 0x12 |
0xF0,
22339 codePoint
>> 0xC &
0x3F |
0x80,
22340 codePoint
>> 0x6 &
0x3F |
0x80,
22341 codePoint &
0x3F |
0x80
22344 throw new Error('Invalid code point')
22351 function asciiToBytes (str) {
22353 for (var i =
0; i < str.length; ++i) {
22354 // Node's code seems to be doing this and not &
0x7F..
22355 byteArray.push(str.charCodeAt(i) &
0xFF)
22360 function utf16leToBytes (str, units) {
22363 for (var i =
0; i < str.length; ++i) {
22364 if ((units -=
2) <
0) break
22366 c = str.charCodeAt(i)
22376 function base64ToBytes (str) {
22377 return base64.toByteArray(base64clean(str))
22380 function blitBuffer (src, dst, offset, length) {
22381 for (var i =
0; i < length; ++i) {
22382 if ((i + offset
>= dst.length) || (i
>= src.length)) break
22383 dst[i + offset] = src[i]
22388 function isnan (val) {
22389 return val !== val // eslint-disable-line no-self-compare
22392 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
22393 (function (Buffer){
22394 // Copyright Joyent, Inc. and other Node contributors.
22396 // Permission is hereby granted, free of charge, to any person obtaining a
22397 // copy of this software and associated documentation files (the
22398 // "Software"), to deal in the Software without restriction, including
22399 // without limitation the rights to use, copy, modify, merge, publish,
22400 // distribute, sublicense, and/or sell copies of the Software, and to permit
22401 // persons to whom the Software is furnished to do so, subject to the
22402 // following conditions:
22404 // The above copyright notice and this permission notice shall be included
22405 // in all copies or substantial portions of the Software.
22407 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22408 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22409 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22410 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22411 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22412 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22413 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22415 // NOTE: These type checking functions intentionally don't use `instanceof`
22416 // because it is fragile and can be easily faked with `Object.create()`.
22418 function isArray(arg) {
22419 if (Array.isArray) {
22420 return Array.isArray(arg);
22422 return objectToString(arg) === '[object Array]';
22424 exports.isArray = isArray;
22426 function isBoolean(arg) {
22427 return typeof arg === 'boolean';
22429 exports.isBoolean = isBoolean;
22431 function isNull(arg) {
22432 return arg === null;
22434 exports.isNull = isNull;
22436 function isNullOrUndefined(arg) {
22437 return arg == null;
22439 exports.isNullOrUndefined = isNullOrUndefined;
22441 function isNumber(arg) {
22442 return typeof arg === 'number';
22444 exports.isNumber = isNumber;
22446 function isString(arg) {
22447 return typeof arg === 'string';
22449 exports.isString = isString;
22451 function isSymbol(arg) {
22452 return typeof arg === 'symbol';
22454 exports.isSymbol = isSymbol;
22456 function isUndefined(arg) {
22457 return arg === void
0;
22459 exports.isUndefined = isUndefined;
22461 function isRegExp(re) {
22462 return objectToString(re) === '[object RegExp]';
22464 exports.isRegExp = isRegExp;
22466 function isObject(arg) {
22467 return typeof arg === 'object' && arg !== null;
22469 exports.isObject = isObject;
22471 function isDate(d) {
22472 return objectToString(d) === '[object Date]';
22474 exports.isDate = isDate;
22476 function isError(e) {
22477 return (objectToString(e) === '[object Error]' || e instanceof Error);
22479 exports.isError = isError;
22481 function isFunction(arg) {
22482 return typeof arg === 'function';
22484 exports.isFunction = isFunction;
22486 function isPrimitive(arg) {
22487 return arg === null ||
22488 typeof arg === 'boolean' ||
22489 typeof arg === 'number' ||
22490 typeof arg === 'string' ||
22491 typeof arg === 'symbol' || // ES6 symbol
22492 typeof arg === 'undefined';
22494 exports.isPrimitive = isPrimitive;
22496 exports.isBuffer = Buffer.isBuffer;
22498 function objectToString(o) {
22499 return Object.prototype.toString.call(o);
22502 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
22503 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
22504 // Copyright Joyent, Inc. and other Node contributors.
22506 // Permission is hereby granted, free of charge, to any person obtaining a
22507 // copy of this software and associated documentation files (the
22508 // "Software"), to deal in the Software without restriction, including
22509 // without limitation the rights to use, copy, modify, merge, publish,
22510 // distribute, sublicense, and/or sell copies of the Software, and to permit
22511 // persons to whom the Software is furnished to do so, subject to the
22512 // following conditions:
22514 // The above copyright notice and this permission notice shall be included
22515 // in all copies or substantial portions of the Software.
22517 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22518 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22519 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22520 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22521 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22522 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22523 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22525 function EventEmitter() {
22526 this._events = this._events || {};
22527 this._maxListeners = this._maxListeners || undefined;
22529 module.exports = EventEmitter;
22531 // Backwards-compat with node
0.10.x
22532 EventEmitter.EventEmitter = EventEmitter;
22534 EventEmitter.prototype._events = undefined;
22535 EventEmitter.prototype._maxListeners = undefined;
22537 // By default EventEmitters will print a warning if more than
10 listeners are
22538 // added to it. This is a useful default which helps finding memory leaks.
22539 EventEmitter.defaultMaxListeners =
10;
22541 // Obviously not all Emitters should be limited to
10. This function allows
22542 // that to be increased. Set to zero for unlimited.
22543 EventEmitter.prototype.setMaxListeners = function(n) {
22544 if (!isNumber(n) || n <
0 || isNaN(n))
22545 throw TypeError('n must be a positive number');
22546 this._maxListeners = n;
22550 EventEmitter.prototype.emit = function(type) {
22551 var er, handler, len, args, i, listeners;
22556 // If there is no 'error' event listener then throw.
22557 if (type === 'error') {
22558 if (!this._events.error ||
22559 (isObject(this._events.error) && !this._events.error.length)) {
22561 if (er instanceof Error) {
22562 throw er; // Unhandled 'error' event
22564 // At least give some kind of context to the user
22565 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
22572 handler = this._events[type];
22574 if (isUndefined(handler))
22577 if (isFunction(handler)) {
22578 switch (arguments.length) {
22581 handler.call(this);
22584 handler.call(this, arguments[
1]);
22587 handler.call(this, arguments[
1], arguments[
2]);
22591 args = Array.prototype.slice.call(arguments,
1);
22592 handler.apply(this, args);
22594 } else if (isObject(handler)) {
22595 args = Array.prototype.slice.call(arguments,
1);
22596 listeners = handler.slice();
22597 len = listeners.length;
22598 for (i =
0; i < len; i++)
22599 listeners[i].apply(this, args);
22605 EventEmitter.prototype.addListener = function(type, listener) {
22608 if (!isFunction(listener))
22609 throw TypeError('listener must be a function');
22614 // To avoid recursion in the case that type === "newListener"! Before
22615 // adding it to the listeners, first emit "newListener".
22616 if (this._events.newListener)
22617 this.emit('newListener', type,
22618 isFunction(listener.listener) ?
22619 listener.listener : listener);
22621 if (!this._events[type])
22622 // Optimize the case of one listener. Don't need the extra array object.
22623 this._events[type] = listener;
22624 else if (isObject(this._events[type]))
22625 // If we've already got an array, just append.
22626 this._events[type].push(listener);
22628 // Adding the second element, need to change to array.
22629 this._events[type] = [this._events[type], listener];
22631 // Check for listener leak
22632 if (isObject(this._events[type]) && !this._events[type].warned) {
22633 if (!isUndefined(this._maxListeners)) {
22634 m = this._maxListeners;
22636 m = EventEmitter.defaultMaxListeners;
22639 if (m && m
> 0 && this._events[type].length
> m) {
22640 this._events[type].warned = true;
22641 console.error('(node) warning: possible EventEmitter memory ' +
22642 'leak detected. %d listeners added. ' +
22643 'Use emitter.setMaxListeners() to increase limit.',
22644 this._events[type].length);
22645 if (typeof console.trace === 'function') {
22646 // not supported in IE
10
22655 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
22657 EventEmitter.prototype.once = function(type, listener) {
22658 if (!isFunction(listener))
22659 throw TypeError('listener must be a function');
22664 this.removeListener(type, g);
22668 listener.apply(this, arguments);
22672 g.listener = listener;
22678 // emits a 'removeListener' event iff the listener was removed
22679 EventEmitter.prototype.removeListener = function(type, listener) {
22680 var list, position, length, i;
22682 if (!isFunction(listener))
22683 throw TypeError('listener must be a function');
22685 if (!this._events || !this._events[type])
22688 list = this._events[type];
22689 length = list.length;
22692 if (list === listener ||
22693 (isFunction(list.listener) && list.listener === listener)) {
22694 delete this._events[type];
22695 if (this._events.removeListener)
22696 this.emit('removeListener', type, listener);
22698 } else if (isObject(list)) {
22699 for (i = length; i--
> 0;) {
22700 if (list[i] === listener ||
22701 (list[i].listener && list[i].listener === listener)) {
22710 if (list.length ===
1) {
22712 delete this._events[type];
22714 list.splice(position,
1);
22717 if (this._events.removeListener)
22718 this.emit('removeListener', type, listener);
22724 EventEmitter.prototype.removeAllListeners = function(type) {
22725 var key, listeners;
22730 // not listening for removeListener, no need to emit
22731 if (!this._events.removeListener) {
22732 if (arguments.length ===
0)
22734 else if (this._events[type])
22735 delete this._events[type];
22739 // emit removeListener for all listeners on all events
22740 if (arguments.length ===
0) {
22741 for (key in this._events) {
22742 if (key === 'removeListener') continue;
22743 this.removeAllListeners(key);
22745 this.removeAllListeners('removeListener');
22750 listeners = this._events[type];
22752 if (isFunction(listeners)) {
22753 this.removeListener(type, listeners);
22754 } else if (listeners) {
22756 while (listeners.length)
22757 this.removeListener(type, listeners[listeners.length -
1]);
22759 delete this._events[type];
22764 EventEmitter.prototype.listeners = function(type) {
22766 if (!this._events || !this._events[type])
22768 else if (isFunction(this._events[type]))
22769 ret = [this._events[type]];
22771 ret = this._events[type].slice();
22775 EventEmitter.prototype.listenerCount = function(type) {
22776 if (this._events) {
22777 var evlistener = this._events[type];
22779 if (isFunction(evlistener))
22781 else if (evlistener)
22782 return evlistener.length;
22787 EventEmitter.listenerCount = function(emitter, type) {
22788 return emitter.listenerCount(type);
22791 function isFunction(arg) {
22792 return typeof arg === 'function';
22795 function isNumber(arg) {
22796 return typeof arg === 'number';
22799 function isObject(arg) {
22800 return typeof arg === 'object' && arg !== null;
22803 function isUndefined(arg) {
22804 return arg === void
0;
22807 },{}],
8:[function(require,module,exports){
22808 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
22810 var eLen = nBytes *
8 - mLen -
1
22811 var eMax = (
1 << eLen) -
1
22812 var eBias = eMax
>> 1
22814 var i = isLE ? (nBytes -
1) :
0
22815 var d = isLE ? -
1 :
1
22816 var s = buffer[offset + i]
22820 e = s & ((
1 << (-nBits)) -
1)
22823 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
22825 m = e & ((
1 << (-nBits)) -
1)
22828 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
22832 } else if (e === eMax) {
22833 return m ? NaN : ((s ? -
1 :
1) * Infinity)
22835 m = m + Math.pow(
2, mLen)
22838 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
22841 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
22843 var eLen = nBytes *
8 - mLen -
1
22844 var eMax = (
1 << eLen) -
1
22845 var eBias = eMax
>> 1
22846 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
22847 var i = isLE ?
0 : (nBytes -
1)
22848 var d = isLE ?
1 : -
1
22849 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
22851 value = Math.abs(value)
22853 if (isNaN(value) || value === Infinity) {
22854 m = isNaN(value) ?
1 :
0
22857 e = Math.floor(Math.log(value) / Math.LN2)
22858 if (value * (c = Math.pow(
2, -e)) <
1) {
22862 if (e + eBias
>=
1) {
22865 value += rt * Math.pow(
2,
1 - eBias)
22867 if (value * c
>=
2) {
22872 if (e + eBias
>= eMax) {
22875 } else if (e + eBias
>=
1) {
22876 m = (value * c -
1) * Math.pow(
2, mLen)
22879 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
22884 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
22886 e = (e << mLen) | m
22888 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
22890 buffer[offset + i - d] |= s *
128
22893 },{}],
9:[function(require,module,exports){
22894 if (typeof Object.create === 'function') {
22895 // implementation from standard node.js 'util' module
22896 module.exports = function inherits(ctor, superCtor) {
22897 ctor.super_ = superCtor
22898 ctor.prototype = Object.create(superCtor.prototype, {
22908 // old school shim for old browsers
22909 module.exports = function inherits(ctor, superCtor) {
22910 ctor.super_ = superCtor
22911 var TempCtor = function () {}
22912 TempCtor.prototype = superCtor.prototype
22913 ctor.prototype = new TempCtor()
22914 ctor.prototype.constructor = ctor
22918 },{}],
10:[function(require,module,exports){
22920 * Determine if an object is a Buffer
22922 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22926 // The _isBuffer check is for Safari
5-
7 support, because it's missing
22927 // Object.prototype.constructor. Remove this eventually
22928 module.exports = function (obj) {
22929 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
22932 function isBuffer (obj) {
22933 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
22936 // For Node v0.10 support. Remove this eventually.
22937 function isSlowBuffer (obj) {
22938 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
22941 },{}],
11:[function(require,module,exports){
22942 var toString = {}.toString;
22944 module.exports = Array.isArray || function (arr) {
22945 return toString.call(arr) == '[object Array]';
22948 },{}],
12:[function(require,module,exports){
22949 (function (process){
22952 if (!process.version ||
22953 process.version.indexOf('v0.') ===
0 ||
22954 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
22955 module.exports = nextTick;
22957 module.exports = process.nextTick;
22960 function nextTick(fn, arg1, arg2, arg3) {
22961 if (typeof fn !== 'function') {
22962 throw new TypeError('"callback" argument must be a function');
22964 var len = arguments.length;
22969 return process.nextTick(fn);
22971 return process.nextTick(function afterTickOne() {
22972 fn.call(null, arg1);
22975 return process.nextTick(function afterTickTwo() {
22976 fn.call(null, arg1, arg2);
22979 return process.nextTick(function afterTickThree() {
22980 fn.call(null, arg1, arg2, arg3);
22983 args = new Array(len -
1);
22985 while (i < args.length) {
22986 args[i++] = arguments[i];
22988 return process.nextTick(function afterTick() {
22989 fn.apply(null, args);
22994 }).call(this,require('_process'))
22995 },{"_process":
13}],
13:[function(require,module,exports){
22996 // shim for using process in browser
22997 var process = module.exports = {};
22999 // cached from whatever global is present so that test runners that stub it
23000 // don't break things. But we need to wrap it in a try catch in case it is
23001 // wrapped in strict mode code which doesn't define any globals. It's inside a
23002 // function because try/catches deoptimize in certain engines.
23004 var cachedSetTimeout;
23005 var cachedClearTimeout;
23007 function defaultSetTimout() {
23008 throw new Error('setTimeout has not been defined');
23010 function defaultClearTimeout () {
23011 throw new Error('clearTimeout has not been defined');
23015 if (typeof setTimeout === 'function') {
23016 cachedSetTimeout = setTimeout;
23018 cachedSetTimeout = defaultSetTimout;
23021 cachedSetTimeout = defaultSetTimout;
23024 if (typeof clearTimeout === 'function') {
23025 cachedClearTimeout = clearTimeout;
23027 cachedClearTimeout = defaultClearTimeout;
23030 cachedClearTimeout = defaultClearTimeout;
23033 function runTimeout(fun) {
23034 if (cachedSetTimeout === setTimeout) {
23035 //normal enviroments in sane situations
23036 return setTimeout(fun,
0);
23038 // if setTimeout wasn't available but was latter defined
23039 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
23040 cachedSetTimeout = setTimeout;
23041 return setTimeout(fun,
0);
23044 // when when somebody has screwed with setTimeout but no I.E. maddness
23045 return cachedSetTimeout(fun,
0);
23048 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
23049 return cachedSetTimeout.call(null, fun,
0);
23051 // 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
23052 return cachedSetTimeout.call(this, fun,
0);
23058 function runClearTimeout(marker) {
23059 if (cachedClearTimeout === clearTimeout) {
23060 //normal enviroments in sane situations
23061 return clearTimeout(marker);
23063 // if clearTimeout wasn't available but was latter defined
23064 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
23065 cachedClearTimeout = clearTimeout;
23066 return clearTimeout(marker);
23069 // when when somebody has screwed with setTimeout but no I.E. maddness
23070 return cachedClearTimeout(marker);
23073 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
23074 return cachedClearTimeout.call(null, marker);
23076 // 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.
23077 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
23078 return cachedClearTimeout.call(this, marker);
23086 var draining = false;
23088 var queueIndex = -
1;
23090 function cleanUpNextTick() {
23091 if (!draining || !currentQueue) {
23095 if (currentQueue.length) {
23096 queue = currentQueue.concat(queue);
23100 if (queue.length) {
23105 function drainQueue() {
23109 var timeout = runTimeout(cleanUpNextTick);
23112 var len = queue.length;
23114 currentQueue = queue;
23116 while (++queueIndex < len) {
23117 if (currentQueue) {
23118 currentQueue[queueIndex].run();
23122 len = queue.length;
23124 currentQueue = null;
23126 runClearTimeout(timeout);
23129 process.nextTick = function (fun) {
23130 var args = new Array(arguments.length -
1);
23131 if (arguments.length
> 1) {
23132 for (var i =
1; i < arguments.length; i++) {
23133 args[i -
1] = arguments[i];
23136 queue.push(new Item(fun, args));
23137 if (queue.length ===
1 && !draining) {
23138 runTimeout(drainQueue);
23142 // v8 likes predictible objects
23143 function Item(fun, array) {
23145 this.array = array;
23147 Item.prototype.run = function () {
23148 this.fun.apply(null, this.array);
23150 process.title = 'browser';
23151 process.browser = true;
23154 process.version = ''; // empty string to avoid regexp issues
23155 process.versions = {};
23160 process.addListener = noop;
23161 process.once = noop;
23162 process.off = noop;
23163 process.removeListener = noop;
23164 process.removeAllListeners = noop;
23165 process.emit = noop;
23167 process.binding = function (name) {
23168 throw new Error('process.binding is not supported');
23171 process.cwd = function () { return '/' };
23172 process.chdir = function (dir) {
23173 throw new Error('process.chdir is not supported');
23175 process.umask = function() { return
0; };
23177 },{}],
14:[function(require,module,exports){
23178 module.exports = require(
"./lib/_stream_duplex.js")
23180 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
23181 // a duplex stream is just a stream that is both readable and writable.
23182 // Since JS doesn't have multiple prototypal inheritance, this class
23183 // prototypally inherits from Readable, and then parasitically from
23190 var objectKeys = Object.keys || function (obj) {
23192 for (var key in obj) {
23198 module.exports = Duplex;
23201 var processNextTick = require('process-nextick-args');
23205 var util = require('core-util-is');
23206 util.inherits = require('inherits');
23209 var Readable = require('./_stream_readable');
23210 var Writable = require('./_stream_writable');
23212 util.inherits(Duplex, Readable);
23214 var keys = objectKeys(Writable.prototype);
23215 for (var v =
0; v < keys.length; v++) {
23216 var method = keys[v];
23217 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
23220 function Duplex(options) {
23221 if (!(this instanceof Duplex)) return new Duplex(options);
23223 Readable.call(this, options);
23224 Writable.call(this, options);
23226 if (options && options.readable === false) this.readable = false;
23228 if (options && options.writable === false) this.writable = false;
23230 this.allowHalfOpen = true;
23231 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
23233 this.once('end', onend);
23236 // the no-half-open enforcer
23238 // if we allow half-open state, or if the writable side ended,
23240 if (this.allowHalfOpen || this._writableState.ended) return;
23242 // no more data can be written.
23243 // But allow more writes to happen in this tick.
23244 processNextTick(onEndNT, this);
23247 function onEndNT(self) {
23251 function forEach(xs, f) {
23252 for (var i =
0, l = xs.length; i < l; i++) {
23256 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
23257 // a passthrough stream.
23258 // basically just the most minimal sort of Transform stream.
23259 // Every written chunk gets output as-is.
23263 module.exports = PassThrough;
23265 var Transform = require('./_stream_transform');
23268 var util = require('core-util-is');
23269 util.inherits = require('inherits');
23272 util.inherits(PassThrough, Transform);
23274 function PassThrough(options) {
23275 if (!(this instanceof PassThrough)) return new PassThrough(options);
23277 Transform.call(this, options);
23280 PassThrough.prototype._transform = function (chunk, encoding, cb) {
23283 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
23284 (function (process){
23287 module.exports = Readable;
23290 var processNextTick = require('process-nextick-args');
23294 var isArray = require('isarray');
23301 Readable.ReadableState = ReadableState;
23304 var EE = require('events').EventEmitter;
23306 var EElistenerCount = function (emitter, type) {
23307 return emitter.listeners(type).length;
23315 Stream = require('st' + 'ream');
23316 } catch (_) {} finally {
23317 if (!Stream) Stream = require('events').EventEmitter;
23322 var Buffer = require('buffer').Buffer;
23324 var bufferShim = require('buffer-shims');
23328 var util = require('core-util-is');
23329 util.inherits = require('inherits');
23333 var debugUtil = require('util');
23334 var debug = void
0;
23335 if (debugUtil && debugUtil.debuglog) {
23336 debug = debugUtil.debuglog('stream');
23338 debug = function () {};
23342 var BufferList = require('./internal/streams/BufferList');
23345 util.inherits(Readable, Stream);
23347 function prependListener(emitter, event, fn) {
23348 // Sadly this is not cacheable as some libraries bundle their own
23349 // event emitter implementation with them.
23350 if (typeof emitter.prependListener === 'function') {
23351 return emitter.prependListener(event, fn);
23353 // This is a hack to make sure that our error handler is attached before any
23354 // userland ones. NEVER DO THIS. This is here only because this code needs
23355 // to continue to work with older versions of Node.js that do not include
23356 // the prependListener() method. The goal is to eventually remove this hack.
23357 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]];
23361 function ReadableState(options, stream) {
23362 Duplex = Duplex || require('./_stream_duplex');
23364 options = options || {};
23366 // object stream flag. Used to make read(n) ignore n and to
23367 // make all the buffer merging and length checks go away
23368 this.objectMode = !!options.objectMode;
23370 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
23372 // the point at which it stops calling _read() to fill the buffer
23373 // Note:
0 is a valid value, means "don't call _read preemptively ever"
23374 var hwm = options.highWaterMark;
23375 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
23376 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
23379 this.highWaterMark = ~ ~this.highWaterMark;
23381 // A linked list is used to store data chunks instead of an array because the
23382 // linked list can remove elements from the beginning faster than
23384 this.buffer = new BufferList();
23387 this.pipesCount =
0;
23388 this.flowing = null;
23389 this.ended = false;
23390 this.endEmitted = false;
23391 this.reading = false;
23393 // a flag to be able to tell if the onwrite cb is called immediately,
23394 // or on a later tick. We set this to true at first, because any
23395 // actions that shouldn't happen until "later" should generally also
23396 // not happen before the first write call.
23399 // whenever we return null, then we set a flag to say
23400 // that we're awaiting a 'readable' event emission.
23401 this.needReadable = false;
23402 this.emittedReadable = false;
23403 this.readableListening = false;
23404 this.resumeScheduled = false;
23406 // Crypto is kind of old and crusty. Historically, its default string
23407 // encoding is 'binary' so we have to make this configurable.
23408 // Everything else in the universe uses 'utf8', though.
23409 this.defaultEncoding = options.defaultEncoding || 'utf8';
23411 // when piping, we only care about 'readable' events that happen
23412 // after read()ing all the bytes and not getting any pushback.
23413 this.ranOut = false;
23415 // the number of writers that are awaiting a drain event in .pipe()s
23416 this.awaitDrain =
0;
23418 // if true, a maybeReadMore has been scheduled
23419 this.readingMore = false;
23421 this.decoder = null;
23422 this.encoding = null;
23423 if (options.encoding) {
23424 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
23425 this.decoder = new StringDecoder(options.encoding);
23426 this.encoding = options.encoding;
23430 function Readable(options) {
23431 Duplex = Duplex || require('./_stream_duplex');
23433 if (!(this instanceof Readable)) return new Readable(options);
23435 this._readableState = new ReadableState(options, this);
23438 this.readable = true;
23440 if (options && typeof options.read === 'function') this._read = options.read;
23445 // Manually shove something into the read() buffer.
23446 // This returns true if the highWaterMark has not been hit yet,
23447 // similar to how Writable.write() returns true if you should
23448 // write() some more.
23449 Readable.prototype.push = function (chunk, encoding) {
23450 var state = this._readableState;
23452 if (!state.objectMode && typeof chunk === 'string') {
23453 encoding = encoding || state.defaultEncoding;
23454 if (encoding !== state.encoding) {
23455 chunk = bufferShim.from(chunk, encoding);
23460 return readableAddChunk(this, state, chunk, encoding, false);
23463 // Unshift should *always* be something directly out of read()
23464 Readable.prototype.unshift = function (chunk) {
23465 var state = this._readableState;
23466 return readableAddChunk(this, state, chunk, '', true);
23469 Readable.prototype.isPaused = function () {
23470 return this._readableState.flowing === false;
23473 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
23474 var er = chunkInvalid(state, chunk);
23476 stream.emit('error', er);
23477 } else if (chunk === null) {
23478 state.reading = false;
23479 onEofChunk(stream, state);
23480 } else if (state.objectMode || chunk && chunk.length
> 0) {
23481 if (state.ended && !addToFront) {
23482 var e = new Error('stream.push() after EOF');
23483 stream.emit('error', e);
23484 } else if (state.endEmitted && addToFront) {
23485 var _e = new Error('stream.unshift() after end event');
23486 stream.emit('error', _e);
23489 if (state.decoder && !addToFront && !encoding) {
23490 chunk = state.decoder.write(chunk);
23491 skipAdd = !state.objectMode && chunk.length ===
0;
23494 if (!addToFront) state.reading = false;
23496 // Don't add to the buffer if we've decoded to an empty string chunk and
23497 // we're not in object mode
23499 // if we want the data now, just emit it.
23500 if (state.flowing && state.length ===
0 && !state.sync) {
23501 stream.emit('data', chunk);
23504 // update the buffer info.
23505 state.length += state.objectMode ?
1 : chunk.length;
23506 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
23508 if (state.needReadable) emitReadable(stream);
23512 maybeReadMore(stream, state);
23514 } else if (!addToFront) {
23515 state.reading = false;
23518 return needMoreData(state);
23521 // if it's past the high water mark, we can push in some more.
23522 // Also, if we have no data yet, we can stand some
23523 // more bytes. This is to work around cases where hwm=
0,
23524 // such as the repl. Also, if the push() triggered a
23525 // readable event, and the user called read(largeNumber) such that
23526 // needReadable was set, then we ought to push more, so that another
23527 // 'readable' event will be triggered.
23528 function needMoreData(state) {
23529 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
23532 // backwards compatibility.
23533 Readable.prototype.setEncoding = function (enc) {
23534 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
23535 this._readableState.decoder = new StringDecoder(enc);
23536 this._readableState.encoding = enc;
23540 // Don't raise the hwm
> 8MB
23541 var MAX_HWM =
0x800000;
23542 function computeNewHighWaterMark(n) {
23543 if (n
>= MAX_HWM) {
23546 // Get the next highest power of
2 to prevent increasing hwm excessively in
23559 // This function is designed to be inlinable, so please take care when making
23560 // changes to the function body.
23561 function howMuchToRead(n, state) {
23562 if (n <=
0 || state.length ===
0 && state.ended) return
0;
23563 if (state.objectMode) return
1;
23565 // Only flow one buffer at a time
23566 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
23568 // If we're asking for more than the current hwm, then raise the hwm.
23569 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
23570 if (n <= state.length) return n;
23571 // Don't have enough
23572 if (!state.ended) {
23573 state.needReadable = true;
23576 return state.length;
23579 // you can override either this method, or the async _read(n) below.
23580 Readable.prototype.read = function (n) {
23582 n = parseInt(n,
10);
23583 var state = this._readableState;
23586 if (n !==
0) state.emittedReadable = false;
23588 // if we're doing read(
0) to trigger a readable event, but we
23589 // already have a bunch of data in the buffer, then just trigger
23590 // the 'readable' event and move on.
23591 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
23592 debug('read: emitReadable', state.length, state.ended);
23593 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
23597 n = howMuchToRead(n, state);
23599 // if we've ended, and we're now clear, then finish it up.
23600 if (n ===
0 && state.ended) {
23601 if (state.length ===
0) endReadable(this);
23605 // All the actual chunk generation logic needs to be
23606 // *below* the call to _read. The reason is that in certain
23607 // synthetic stream cases, such as passthrough streams, _read
23608 // may be a completely synchronous operation which may change
23609 // the state of the read buffer, providing enough data when
23610 // before there was *not* enough.
23612 // So, the steps are:
23613 //
1. Figure out what the state of things will be after we do
23614 // a read from the buffer.
23616 //
2. If that resulting state will trigger a _read, then call _read.
23617 // Note that this may be asynchronous, or synchronous. Yes, it is
23618 // deeply ugly to write APIs this way, but that still doesn't mean
23619 // that the Readable class should behave improperly, as streams are
23620 // designed to be sync/async agnostic.
23621 // Take note if the _read call is sync or async (ie, if the read call
23622 // has returned yet), so that we know whether or not it's safe to emit
23625 //
3. Actually pull the requested chunks out of the buffer and return.
23627 // if we need a readable event, then we need to do some reading.
23628 var doRead = state.needReadable;
23629 debug('need readable', doRead);
23631 // if we currently have less than the highWaterMark, then also read some
23632 if (state.length ===
0 || state.length - n < state.highWaterMark) {
23634 debug('length less than watermark', doRead);
23637 // however, if we've ended, then there's no point, and if we're already
23638 // reading, then it's unnecessary.
23639 if (state.ended || state.reading) {
23641 debug('reading or ended', doRead);
23642 } else if (doRead) {
23644 state.reading = true;
23646 // if the length is currently zero, then we *need* a readable event.
23647 if (state.length ===
0) state.needReadable = true;
23648 // call internal read method
23649 this._read(state.highWaterMark);
23650 state.sync = false;
23651 // If _read pushed data synchronously, then `reading` will be false,
23652 // and we need to re-evaluate how much data we can return to the user.
23653 if (!state.reading) n = howMuchToRead(nOrig, state);
23657 if (n
> 0) ret = fromList(n, state);else ret = null;
23659 if (ret === null) {
23660 state.needReadable = true;
23666 if (state.length ===
0) {
23667 // If we have nothing in the buffer, then we want to know
23668 // as soon as we *do* get something into the buffer.
23669 if (!state.ended) state.needReadable = true;
23671 // If we tried to read() past the EOF, then emit end on the next tick.
23672 if (nOrig !== n && state.ended) endReadable(this);
23675 if (ret !== null) this.emit('data', ret);
23680 function chunkInvalid(state, chunk) {
23682 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
23683 er = new TypeError('Invalid non-string/buffer chunk');
23688 function onEofChunk(stream, state) {
23689 if (state.ended) return;
23690 if (state.decoder) {
23691 var chunk = state.decoder.end();
23692 if (chunk && chunk.length) {
23693 state.buffer.push(chunk);
23694 state.length += state.objectMode ?
1 : chunk.length;
23697 state.ended = true;
23699 // emit 'readable' now to make sure it gets picked up.
23700 emitReadable(stream);
23703 // Don't emit readable right away in sync mode, because this can trigger
23704 // another read() call =
> stack overflow. This way, it might trigger
23705 // a nextTick recursion warning, but that's not so bad.
23706 function emitReadable(stream) {
23707 var state = stream._readableState;
23708 state.needReadable = false;
23709 if (!state.emittedReadable) {
23710 debug('emitReadable', state.flowing);
23711 state.emittedReadable = true;
23712 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
23716 function emitReadable_(stream) {
23717 debug('emit readable');
23718 stream.emit('readable');
23722 // at this point, the user has presumably seen the 'readable' event,
23723 // and called read() to consume some data. that may have triggered
23724 // in turn another _read(n) call, in which case reading = true if
23725 // it's in progress.
23726 // However, if we're not ended, or reading, and the length < hwm,
23727 // then go ahead and try to read some more preemptively.
23728 function maybeReadMore(stream, state) {
23729 if (!state.readingMore) {
23730 state.readingMore = true;
23731 processNextTick(maybeReadMore_, stream, state);
23735 function maybeReadMore_(stream, state) {
23736 var len = state.length;
23737 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
23738 debug('maybeReadMore read
0');
23740 if (len === state.length)
23741 // didn't get any data, stop spinning.
23742 break;else len = state.length;
23744 state.readingMore = false;
23747 // abstract method. to be overridden in specific implementation classes.
23748 // call cb(er, data) where data is <= n in length.
23749 // for virtual (non-string, non-buffer) streams, "length" is somewhat
23750 // arbitrary, and perhaps not very meaningful.
23751 Readable.prototype._read = function (n) {
23752 this.emit('error', new Error('_read() is not implemented'));
23755 Readable.prototype.pipe = function (dest, pipeOpts) {
23757 var state = this._readableState;
23759 switch (state.pipesCount) {
23761 state.pipes = dest;
23764 state.pipes = [state.pipes, dest];
23767 state.pipes.push(dest);
23770 state.pipesCount +=
1;
23771 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
23773 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
23775 var endFn = doEnd ? onend : cleanup;
23776 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
23778 dest.on('unpipe', onunpipe);
23779 function onunpipe(readable) {
23781 if (readable === src) {
23791 // when the dest drains, it reduces the awaitDrain counter
23792 // on the source. This would be more elegant with a .once()
23793 // handler in flow(), but adding and removing repeatedly is
23795 var ondrain = pipeOnDrain(src);
23796 dest.on('drain', ondrain);
23798 var cleanedUp = false;
23799 function cleanup() {
23801 // cleanup event handlers once the pipe is broken
23802 dest.removeListener('close', onclose);
23803 dest.removeListener('finish', onfinish);
23804 dest.removeListener('drain', ondrain);
23805 dest.removeListener('error', onerror);
23806 dest.removeListener('unpipe', onunpipe);
23807 src.removeListener('end', onend);
23808 src.removeListener('end', cleanup);
23809 src.removeListener('data', ondata);
23813 // if the reader is waiting for a drain event from this
23814 // specific writer, then it would cause it to never start
23816 // So, if this is awaiting a drain, then we just call it now.
23817 // If we don't know, then assume that we are waiting for one.
23818 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
23821 // If the user pushes more data while we're writing to dest then we'll end up
23822 // in ondata again. However, we only want to increase awaitDrain once because
23823 // dest will only emit one 'drain' event for the multiple writes.
23824 // =
> Introduce a guard on increasing awaitDrain.
23825 var increasedAwaitDrain = false;
23826 src.on('data', ondata);
23827 function ondata(chunk) {
23829 increasedAwaitDrain = false;
23830 var ret = dest.write(chunk);
23831 if (false === ret && !increasedAwaitDrain) {
23832 // If the user unpiped during `dest.write()`, it is possible
23833 // to get stuck in a permanently paused state if that write
23834 // also returned false.
23835 // =
> Check whether `dest` is still a piping destination.
23836 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
23837 debug('false write response, pause', src._readableState.awaitDrain);
23838 src._readableState.awaitDrain++;
23839 increasedAwaitDrain = true;
23845 // if the dest has an error, then stop piping into it.
23846 // however, don't suppress the throwing behavior for this.
23847 function onerror(er) {
23848 debug('onerror', er);
23850 dest.removeListener('error', onerror);
23851 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
23854 // Make sure our error handler is attached before userland ones.
23855 prependListener(dest, 'error', onerror);
23857 // Both close and finish should trigger unpipe, but only once.
23858 function onclose() {
23859 dest.removeListener('finish', onfinish);
23862 dest.once('close', onclose);
23863 function onfinish() {
23865 dest.removeListener('close', onclose);
23868 dest.once('finish', onfinish);
23870 function unpipe() {
23875 // tell the dest that it's being piped to
23876 dest.emit('pipe', src);
23878 // start the flow if it hasn't been started already.
23879 if (!state.flowing) {
23880 debug('pipe resume');
23887 function pipeOnDrain(src) {
23888 return function () {
23889 var state = src._readableState;
23890 debug('pipeOnDrain', state.awaitDrain);
23891 if (state.awaitDrain) state.awaitDrain--;
23892 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
23893 state.flowing = true;
23899 Readable.prototype.unpipe = function (dest) {
23900 var state = this._readableState;
23902 // if we're not piping anywhere, then do nothing.
23903 if (state.pipesCount ===
0) return this;
23905 // just one destination. most common case.
23906 if (state.pipesCount ===
1) {
23907 // passed in one, but it's not the right one.
23908 if (dest && dest !== state.pipes) return this;
23910 if (!dest) dest = state.pipes;
23913 state.pipes = null;
23914 state.pipesCount =
0;
23915 state.flowing = false;
23916 if (dest) dest.emit('unpipe', this);
23920 // slow case. multiple pipe destinations.
23924 var dests = state.pipes;
23925 var len = state.pipesCount;
23926 state.pipes = null;
23927 state.pipesCount =
0;
23928 state.flowing = false;
23930 for (var i =
0; i < len; i++) {
23931 dests[i].emit('unpipe', this);
23935 // try to find the right one.
23936 var index = indexOf(state.pipes, dest);
23937 if (index === -
1) return this;
23939 state.pipes.splice(index,
1);
23940 state.pipesCount -=
1;
23941 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
23943 dest.emit('unpipe', this);
23948 // set up data events if they are asked for
23949 // Ensure readable listeners eventually get something
23950 Readable.prototype.on = function (ev, fn) {
23951 var res = Stream.prototype.on.call(this, ev, fn);
23953 if (ev === 'data') {
23954 // Start flowing on next tick if stream isn't explicitly paused
23955 if (this._readableState.flowing !== false) this.resume();
23956 } else if (ev === 'readable') {
23957 var state = this._readableState;
23958 if (!state.endEmitted && !state.readableListening) {
23959 state.readableListening = state.needReadable = true;
23960 state.emittedReadable = false;
23961 if (!state.reading) {
23962 processNextTick(nReadingNextTick, this);
23963 } else if (state.length) {
23964 emitReadable(this, state);
23971 Readable.prototype.addListener = Readable.prototype.on;
23973 function nReadingNextTick(self) {
23974 debug('readable nexttick read
0');
23978 // pause() and resume() are remnants of the legacy readable stream API
23979 // If the user uses them, then switch into old mode.
23980 Readable.prototype.resume = function () {
23981 var state = this._readableState;
23982 if (!state.flowing) {
23984 state.flowing = true;
23985 resume(this, state);
23990 function resume(stream, state) {
23991 if (!state.resumeScheduled) {
23992 state.resumeScheduled = true;
23993 processNextTick(resume_, stream, state);
23997 function resume_(stream, state) {
23998 if (!state.reading) {
23999 debug('resume read
0');
24003 state.resumeScheduled = false;
24004 state.awaitDrain =
0;
24005 stream.emit('resume');
24007 if (state.flowing && !state.reading) stream.read(
0);
24010 Readable.prototype.pause = function () {
24011 debug('call pause flowing=%j', this._readableState.flowing);
24012 if (false !== this._readableState.flowing) {
24014 this._readableState.flowing = false;
24015 this.emit('pause');
24020 function flow(stream) {
24021 var state = stream._readableState;
24022 debug('flow', state.flowing);
24023 while (state.flowing && stream.read() !== null) {}
24026 // wrap an old-style stream as the async data source.
24027 // This is *not* part of the readable stream interface.
24028 // It is an ugly unfortunate mess of history.
24029 Readable.prototype.wrap = function (stream) {
24030 var state = this._readableState;
24031 var paused = false;
24034 stream.on('end', function () {
24035 debug('wrapped end');
24036 if (state.decoder && !state.ended) {
24037 var chunk = state.decoder.end();
24038 if (chunk && chunk.length) self.push(chunk);
24044 stream.on('data', function (chunk) {
24045 debug('wrapped data');
24046 if (state.decoder) chunk = state.decoder.write(chunk);
24048 // don't skip over falsy values in objectMode
24049 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
24051 var ret = self.push(chunk);
24058 // proxy all the other methods.
24059 // important when wrapping filters and duplexes.
24060 for (var i in stream) {
24061 if (this[i] === undefined && typeof stream[i] === 'function') {
24062 this[i] = function (method) {
24063 return function () {
24064 return stream[method].apply(stream, arguments);
24070 // proxy certain important events.
24071 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
24072 forEach(events, function (ev) {
24073 stream.on(ev, self.emit.bind(self, ev));
24076 // when we try to consume some more bytes, simply unpause the
24077 // underlying stream.
24078 self._read = function (n) {
24079 debug('wrapped _read', n);
24089 // exposed for testing purposes only.
24090 Readable._fromList = fromList;
24092 // Pluck off n bytes from an array of buffers.
24093 // Length is the combined lengths of all the buffers in the list.
24094 // This function is designed to be inlinable, so please take care when making
24095 // changes to the function body.
24096 function fromList(n, state) {
24097 // nothing buffered
24098 if (state.length ===
0) return null;
24101 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
24102 // read it all, truncate the list
24103 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);
24104 state.buffer.clear();
24106 // read part of list
24107 ret = fromListPartial(n, state.buffer, state.decoder);
24113 // Extracts only enough buffered data to satisfy the amount requested.
24114 // This function is designed to be inlinable, so please take care when making
24115 // changes to the function body.
24116 function fromListPartial(n, list, hasStrings) {
24118 if (n < list.head.data.length) {
24119 // slice is the same for buffers and strings
24120 ret = list.head.data.slice(
0, n);
24121 list.head.data = list.head.data.slice(n);
24122 } else if (n === list.head.data.length) {
24123 // first chunk is a perfect match
24124 ret = list.shift();
24126 // result spans more than one buffer
24127 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
24132 // Copies a specified amount of characters from the list of buffered data
24134 // This function is designed to be inlinable, so please take care when making
24135 // changes to the function body.
24136 function copyFromBufferString(n, list) {
24141 while (p = p.next) {
24143 var nb = n
> str.length ? str.length : n;
24144 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
24147 if (nb === str.length) {
24149 if (p.next) list.head = p.next;else list.head = list.tail = null;
24152 p.data = str.slice(nb);
24162 // Copies a specified amount of bytes from the list of buffered data chunks.
24163 // This function is designed to be inlinable, so please take care when making
24164 // changes to the function body.
24165 function copyFromBuffer(n, list) {
24166 var ret = bufferShim.allocUnsafe(n);
24170 n -= p.data.length;
24171 while (p = p.next) {
24173 var nb = n
> buf.length ? buf.length : n;
24174 buf.copy(ret, ret.length - n,
0, nb);
24177 if (nb === buf.length) {
24179 if (p.next) list.head = p.next;else list.head = list.tail = null;
24182 p.data = buf.slice(nb);
24192 function endReadable(stream) {
24193 var state = stream._readableState;
24195 // If we get here before consuming all the bytes, then that is a
24196 // bug in node. Should never happen.
24197 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
24199 if (!state.endEmitted) {
24200 state.ended = true;
24201 processNextTick(endReadableNT, state, stream);
24205 function endReadableNT(state, stream) {
24206 // Check that we didn't get one last unshift.
24207 if (!state.endEmitted && state.length ===
0) {
24208 state.endEmitted = true;
24209 stream.readable = false;
24210 stream.emit('end');
24214 function forEach(xs, f) {
24215 for (var i =
0, l = xs.length; i < l; i++) {
24220 function indexOf(xs, x) {
24221 for (var i =
0, l = xs.length; i < l; i++) {
24222 if (xs[i] === x) return i;
24226 }).call(this,require('_process'))
24227 },{
"./_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){
24228 // a transform stream is a readable/writable stream where you do
24229 // something with the data. Sometimes it's called a
"filter",
24230 // but that's not a great name for it, since that implies a thing where
24231 // some bits pass through, and others are simply ignored. (That would
24232 // be a valid example of a transform, of course.)
24234 // While the output is causally related to the input, it's not a
24235 // necessarily symmetric or synchronous transformation. For example,
24236 // a zlib stream might take multiple plain-text writes(), and then
24237 // emit a single compressed chunk some time in the future.
24239 // Here's how this works:
24241 // The Transform stream has all the aspects of the readable and writable
24242 // stream classes. When you write(chunk), that calls _write(chunk,cb)
24243 // internally, and returns false if there's a lot of pending writes
24244 // buffered up. When you call read(), that calls _read(n) until
24245 // there's enough pending readable data buffered up.
24247 // In a transform stream, the written data is placed in a buffer. When
24248 // _read(n) is called, it transforms the queued up data, calling the
24249 // buffered _write cb's as it consumes chunks. If consuming a single
24250 // written chunk would result in multiple output chunks, then the first
24251 // outputted bit calls the readcb, and subsequent chunks just go into
24252 // the read buffer, and will cause it to emit 'readable' if necessary.
24254 // This way, back-pressure is actually determined by the reading side,
24255 // since _read has to be called to start processing a new chunk. However,
24256 // a pathological inflate type of transform can cause excessive buffering
24257 // here. For example, imagine a stream where every byte of input is
24258 // interpreted as an integer from
0-
255, and then results in that many
24259 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
24260 //
1kb of data being output. In this case, you could write a very small
24261 // amount of input, and end up with a very large amount of output. In
24262 // such a pathological inflating mechanism, there'd be no way to tell
24263 // the system to stop doing the transform. A single
4MB write could
24264 // cause the system to run out of memory.
24266 // However, even in such a pathological case, only a single written chunk
24267 // would be consumed, and then the rest would wait (un-transformed) until
24268 // the results of the previous transformed chunk were consumed.
24272 module.exports = Transform;
24274 var Duplex = require('./_stream_duplex');
24277 var util = require('core-util-is');
24278 util.inherits = require('inherits');
24281 util.inherits(Transform, Duplex);
24283 function TransformState(stream) {
24284 this.afterTransform = function (er, data) {
24285 return afterTransform(stream, er, data);
24288 this.needTransform = false;
24289 this.transforming = false;
24290 this.writecb = null;
24291 this.writechunk = null;
24292 this.writeencoding = null;
24295 function afterTransform(stream, er, data) {
24296 var ts = stream._transformState;
24297 ts.transforming = false;
24299 var cb = ts.writecb;
24301 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
24303 ts.writechunk = null;
24306 if (data !== null && data !== undefined) stream.push(data);
24310 var rs = stream._readableState;
24311 rs.reading = false;
24312 if (rs.needReadable || rs.length < rs.highWaterMark) {
24313 stream._read(rs.highWaterMark);
24317 function Transform(options) {
24318 if (!(this instanceof Transform)) return new Transform(options);
24320 Duplex.call(this, options);
24322 this._transformState = new TransformState(this);
24326 // start out asking for a readable event once data is transformed.
24327 this._readableState.needReadable = true;
24329 // we have implemented the _read method, and done the other things
24330 // that Readable wants before the first _read call, so unset the
24331 // sync guard flag.
24332 this._readableState.sync = false;
24335 if (typeof options.transform === 'function') this._transform = options.transform;
24337 if (typeof options.flush === 'function') this._flush = options.flush;
24340 // When the writable side finishes, then flush out anything remaining.
24341 this.once('prefinish', function () {
24342 if (typeof this._flush === 'function') this._flush(function (er, data) {
24343 done(stream, er, data);
24344 });else done(stream);
24348 Transform.prototype.push = function (chunk, encoding) {
24349 this._transformState.needTransform = false;
24350 return Duplex.prototype.push.call(this, chunk, encoding);
24353 // This is the part where you do stuff!
24354 // override this function in implementation classes.
24355 // 'chunk' is an input chunk.
24357 // Call `push(newChunk)` to pass along transformed output
24358 // to the readable side. You may call 'push' zero or more times.
24360 // Call `cb(err)` when you are done with this chunk. If you pass
24361 // an error, then that'll put the hurt on the whole operation. If you
24362 // never call cb(), then you'll never get another chunk.
24363 Transform.prototype._transform = function (chunk, encoding, cb) {
24364 throw new Error('_transform() is not implemented');
24367 Transform.prototype._write = function (chunk, encoding, cb) {
24368 var ts = this._transformState;
24370 ts.writechunk = chunk;
24371 ts.writeencoding = encoding;
24372 if (!ts.transforming) {
24373 var rs = this._readableState;
24374 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
24378 // Doesn't matter what the args are here.
24379 // _transform does all the work.
24380 // That we got here means that the readable side wants more data.
24381 Transform.prototype._read = function (n) {
24382 var ts = this._transformState;
24384 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
24385 ts.transforming = true;
24386 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
24388 // mark that we need a transform, so that any data that comes in
24389 // will get processed, now that we've asked for it.
24390 ts.needTransform = true;
24394 function done(stream, er, data) {
24395 if (er) return stream.emit('error', er);
24397 if (data !== null && data !== undefined) stream.push(data);
24399 // if there's nothing in the write buffer, then that means
24400 // that nothing more will ever be provided
24401 var ws = stream._writableState;
24402 var ts = stream._transformState;
24404 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
24406 if (ts.transforming) throw new Error('Calling transform done when still transforming');
24408 return stream.push(null);
24410 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
24411 (function (process){
24412 // A bit simpler than readable streams.
24413 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
24414 // the drain event emission and buffering.
24418 module.exports = Writable;
24421 var processNextTick = require('process-nextick-args');
24425 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
24432 Writable.WritableState = WritableState;
24435 var util = require('core-util-is');
24436 util.inherits = require('inherits');
24440 var internalUtil = {
24441 deprecate: require('util-deprecate')
24449 Stream = require('st' + 'ream');
24450 } catch (_) {} finally {
24451 if (!Stream) Stream = require('events').EventEmitter;
24456 var Buffer = require('buffer').Buffer;
24458 var bufferShim = require('buffer-shims');
24461 util.inherits(Writable, Stream);
24465 function WriteReq(chunk, encoding, cb) {
24466 this.chunk = chunk;
24467 this.encoding = encoding;
24468 this.callback = cb;
24472 function WritableState(options, stream) {
24473 Duplex = Duplex || require('./_stream_duplex');
24475 options = options || {};
24477 // object stream flag to indicate whether or not this stream
24478 // contains buffers or objects.
24479 this.objectMode = !!options.objectMode;
24481 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
24483 // the point at which write() starts returning false
24484 // Note:
0 is a valid value, means that we always return false if
24485 // the entire buffer is not flushed immediately on write()
24486 var hwm = options.highWaterMark;
24487 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
24488 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
24491 this.highWaterMark = ~ ~this.highWaterMark;
24493 // drain event flag.
24494 this.needDrain = false;
24495 // at the start of calling end()
24496 this.ending = false;
24497 // when end() has been called, and returned
24498 this.ended = false;
24499 // when 'finish' is emitted
24500 this.finished = false;
24502 // should we decode strings into buffers before passing to _write?
24503 // this is here so that some node-core streams can optimize string
24504 // handling at a lower level.
24505 var noDecode = options.decodeStrings === false;
24506 this.decodeStrings = !noDecode;
24508 // Crypto is kind of old and crusty. Historically, its default string
24509 // encoding is 'binary' so we have to make this configurable.
24510 // Everything else in the universe uses 'utf8', though.
24511 this.defaultEncoding = options.defaultEncoding || 'utf8';
24513 // not an actual buffer we keep track of, but a measurement
24514 // of how much we're waiting to get pushed to some underlying
24518 // a flag to see when we're in the middle of a write.
24519 this.writing = false;
24521 // when true all writes will be buffered until .uncork() call
24524 // a flag to be able to tell if the onwrite cb is called immediately,
24525 // or on a later tick. We set this to true at first, because any
24526 // actions that shouldn't happen until "later" should generally also
24527 // not happen before the first write call.
24530 // a flag to know if we're processing previously buffered items, which
24531 // may call the _write() callback in the same tick, so that we don't
24532 // end up in an overlapped onwrite situation.
24533 this.bufferProcessing = false;
24535 // the callback that's passed to _write(chunk,cb)
24536 this.onwrite = function (er) {
24537 onwrite(stream, er);
24540 // the callback that the user supplies to write(chunk,encoding,cb)
24541 this.writecb = null;
24543 // the amount that is being written when _write is called.
24546 this.bufferedRequest = null;
24547 this.lastBufferedRequest = null;
24549 // number of pending user-supplied write callbacks
24550 // this must be
0 before 'finish' can be emitted
24551 this.pendingcb =
0;
24553 // emit prefinish if the only thing we're waiting for is _write cbs
24554 // This is relevant for synchronous Transform streams
24555 this.prefinished = false;
24557 // True if the error was already emitted and should not be thrown again
24558 this.errorEmitted = false;
24560 // count buffered requests
24561 this.bufferedRequestCount =
0;
24563 // allocate the first CorkedRequest, there is always
24564 // one allocated and free to use, and we maintain at most two
24565 this.corkedRequestsFree = new CorkedRequest(this);
24568 WritableState.prototype.getBuffer = function getBuffer() {
24569 var current = this.bufferedRequest;
24573 current = current.next;
24580 Object.defineProperty(WritableState.prototype, 'buffer', {
24581 get: internalUtil.deprecate(function () {
24582 return this.getBuffer();
24583 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
24588 // Test _writableState for inheritance to account for Duplex streams,
24589 // whose prototype chain only points to Readable.
24590 var realHasInstance;
24591 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
24592 realHasInstance = Function.prototype[Symbol.hasInstance];
24593 Object.defineProperty(Writable, Symbol.hasInstance, {
24594 value: function (object) {
24595 if (realHasInstance.call(this, object)) return true;
24597 return object && object._writableState instanceof WritableState;
24601 realHasInstance = function (object) {
24602 return object instanceof this;
24606 function Writable(options) {
24607 Duplex = Duplex || require('./_stream_duplex');
24609 // Writable ctor is applied to Duplexes, too.
24610 // `realHasInstance` is necessary because using plain `instanceof`
24611 // would return false, as no `_writableState` property is attached.
24613 // Trying to use the custom `instanceof` for Writable here will also break the
24614 // Node.js LazyTransform implementation, which has a non-trivial getter for
24615 // `_writableState` that would lead to infinite recursion.
24616 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
24617 return new Writable(options);
24620 this._writableState = new WritableState(options, this);
24623 this.writable = true;
24626 if (typeof options.write === 'function') this._write = options.write;
24628 if (typeof options.writev === 'function') this._writev = options.writev;
24634 // Otherwise people can pipe Writable streams, which is just wrong.
24635 Writable.prototype.pipe = function () {
24636 this.emit('error', new Error('Cannot pipe, not readable'));
24639 function writeAfterEnd(stream, cb) {
24640 var er = new Error('write after end');
24641 // TODO: defer error events consistently everywhere, not just the cb
24642 stream.emit('error', er);
24643 processNextTick(cb, er);
24646 // If we get something that is not a buffer, string, null, or undefined,
24647 // and we're not in objectMode, then that's an error.
24648 // Otherwise stream chunks are all considered to be of length=
1, and the
24649 // watermarks determine how many objects to keep in the buffer, rather than
24650 // how many bytes or characters.
24651 function validChunk(stream, state, chunk, cb) {
24654 // Always throw error if a null is written
24655 // if we are not in object mode then throw
24656 // if it is not a buffer, string, or undefined.
24657 if (chunk === null) {
24658 er = new TypeError('May not write null values to stream');
24659 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
24660 er = new TypeError('Invalid non-string/buffer chunk');
24663 stream.emit('error', er);
24664 processNextTick(cb, er);
24670 Writable.prototype.write = function (chunk, encoding, cb) {
24671 var state = this._writableState;
24674 if (typeof encoding === 'function') {
24679 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
24681 if (typeof cb !== 'function') cb = nop;
24683 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
24685 ret = writeOrBuffer(this, state, chunk, encoding, cb);
24691 Writable.prototype.cork = function () {
24692 var state = this._writableState;
24697 Writable.prototype.uncork = function () {
24698 var state = this._writableState;
24700 if (state.corked) {
24703 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
24707 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
24708 // node::ParseEncoding() requires lower case.
24709 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
24710 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);
24711 this._writableState.defaultEncoding = encoding;
24715 function decodeChunk(state, chunk, encoding) {
24716 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
24717 chunk = bufferShim.from(chunk, encoding);
24722 // if we're already writing something, then just put this
24723 // in the queue, and wait our turn. Otherwise, call _write
24724 // If we return false, then we need a drain event, so set that flag.
24725 function writeOrBuffer(stream, state, chunk, encoding, cb) {
24726 chunk = decodeChunk(state, chunk, encoding);
24728 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
24729 var len = state.objectMode ?
1 : chunk.length;
24731 state.length += len;
24733 var ret = state.length < state.highWaterMark;
24734 // we must ensure that previous needDrain will not be reset to false.
24735 if (!ret) state.needDrain = true;
24737 if (state.writing || state.corked) {
24738 var last = state.lastBufferedRequest;
24739 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
24741 last.next = state.lastBufferedRequest;
24743 state.bufferedRequest = state.lastBufferedRequest;
24745 state.bufferedRequestCount +=
1;
24747 doWrite(stream, state, false, len, chunk, encoding, cb);
24753 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
24754 state.writelen = len;
24755 state.writecb = cb;
24756 state.writing = true;
24758 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
24759 state.sync = false;
24762 function onwriteError(stream, state, sync, er, cb) {
24764 if (sync) processNextTick(cb, er);else cb(er);
24766 stream._writableState.errorEmitted = true;
24767 stream.emit('error', er);
24770 function onwriteStateUpdate(state) {
24771 state.writing = false;
24772 state.writecb = null;
24773 state.length -= state.writelen;
24774 state.writelen =
0;
24777 function onwrite(stream, er) {
24778 var state = stream._writableState;
24779 var sync = state.sync;
24780 var cb = state.writecb;
24782 onwriteStateUpdate(state);
24784 if (er) onwriteError(stream, state, sync, er, cb);else {
24785 // Check if we're actually ready to finish, but don't emit yet
24786 var finished = needFinish(state);
24788 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
24789 clearBuffer(stream, state);
24794 asyncWrite(afterWrite, stream, state, finished, cb);
24797 afterWrite(stream, state, finished, cb);
24802 function afterWrite(stream, state, finished, cb) {
24803 if (!finished) onwriteDrain(stream, state);
24806 finishMaybe(stream, state);
24809 // Must force callback to be called on nextTick, so that we don't
24810 // emit 'drain' before the write() consumer gets the 'false' return
24811 // value, and has a chance to attach a 'drain' listener.
24812 function onwriteDrain(stream, state) {
24813 if (state.length ===
0 && state.needDrain) {
24814 state.needDrain = false;
24815 stream.emit('drain');
24819 // if there's something in the buffer waiting, then process it
24820 function clearBuffer(stream, state) {
24821 state.bufferProcessing = true;
24822 var entry = state.bufferedRequest;
24824 if (stream._writev && entry && entry.next) {
24825 // Fast case, write everything using _writev()
24826 var l = state.bufferedRequestCount;
24827 var buffer = new Array(l);
24828 var holder = state.corkedRequestsFree;
24829 holder.entry = entry;
24833 buffer[count] = entry;
24834 entry = entry.next;
24838 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
24840 // doWrite is almost always async, defer these to save a bit of time
24841 // as the hot path ends with doWrite
24843 state.lastBufferedRequest = null;
24845 state.corkedRequestsFree = holder.next;
24846 holder.next = null;
24848 state.corkedRequestsFree = new CorkedRequest(state);
24851 // Slow case, write chunks one-by-one
24853 var chunk = entry.chunk;
24854 var encoding = entry.encoding;
24855 var cb = entry.callback;
24856 var len = state.objectMode ?
1 : chunk.length;
24858 doWrite(stream, state, false, len, chunk, encoding, cb);
24859 entry = entry.next;
24860 // if we didn't call the onwrite immediately, then
24861 // it means that we need to wait until it does.
24862 // also, that means that the chunk and cb are currently
24863 // being processed, so move the buffer counter past them.
24864 if (state.writing) {
24869 if (entry === null) state.lastBufferedRequest = null;
24872 state.bufferedRequestCount =
0;
24873 state.bufferedRequest = entry;
24874 state.bufferProcessing = false;
24877 Writable.prototype._write = function (chunk, encoding, cb) {
24878 cb(new Error('_write() is not implemented'));
24881 Writable.prototype._writev = null;
24883 Writable.prototype.end = function (chunk, encoding, cb) {
24884 var state = this._writableState;
24886 if (typeof chunk === 'function') {
24890 } else if (typeof encoding === 'function') {
24895 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
24897 // .end() fully uncorks
24898 if (state.corked) {
24903 // ignore unnecessary end() calls.
24904 if (!state.ending && !state.finished) endWritable(this, state, cb);
24907 function needFinish(state) {
24908 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
24911 function prefinish(stream, state) {
24912 if (!state.prefinished) {
24913 state.prefinished = true;
24914 stream.emit('prefinish');
24918 function finishMaybe(stream, state) {
24919 var need = needFinish(state);
24921 if (state.pendingcb ===
0) {
24922 prefinish(stream, state);
24923 state.finished = true;
24924 stream.emit('finish');
24926 prefinish(stream, state);
24932 function endWritable(stream, state, cb) {
24933 state.ending = true;
24934 finishMaybe(stream, state);
24936 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
24938 state.ended = true;
24939 stream.writable = false;
24942 // It seems a linked list but it is not
24943 // there will be only
2 of these for each stream
24944 function CorkedRequest(state) {
24950 this.finish = function (err) {
24951 var entry = _this.entry;
24952 _this.entry = null;
24954 var cb = entry.callback;
24957 entry = entry.next;
24959 if (state.corkedRequestsFree) {
24960 state.corkedRequestsFree.next = _this;
24962 state.corkedRequestsFree = _this;
24966 }).call(this,require('_process'))
24967 },{"./_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){
24970 var Buffer = require('buffer').Buffer;
24972 var bufferShim = require('buffer-shims');
24975 module.exports = BufferList;
24977 function BufferList() {
24983 BufferList.prototype.push = function (v) {
24984 var entry = { data: v, next: null };
24985 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
24990 BufferList.prototype.unshift = function (v) {
24991 var entry = { data: v, next: this.head };
24992 if (this.length ===
0) this.tail = entry;
24997 BufferList.prototype.shift = function () {
24998 if (this.length ===
0) return;
24999 var ret = this.head.data;
25000 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
25005 BufferList.prototype.clear = function () {
25006 this.head = this.tail = null;
25010 BufferList.prototype.join = function (s) {
25011 if (this.length ===
0) return '';
25013 var ret = '' + p.data;
25014 while (p = p.next) {
25019 BufferList.prototype.concat = function (n) {
25020 if (this.length ===
0) return bufferShim.alloc(
0);
25021 if (this.length ===
1) return this.head.data;
25022 var ret = bufferShim.allocUnsafe(n
>>> 0);
25026 p.data.copy(ret, i);
25027 i += p.data.length;
25032 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
25033 module.exports = require(
"./lib/_stream_passthrough.js")
25035 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
25036 (function (process){
25037 var Stream = (function (){
25039 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
25042 exports = module.exports = require('./lib/_stream_readable.js');
25043 exports.Stream = Stream || exports;
25044 exports.Readable = exports;
25045 exports.Writable = require('./lib/_stream_writable.js');
25046 exports.Duplex = require('./lib/_stream_duplex.js');
25047 exports.Transform = require('./lib/_stream_transform.js');
25048 exports.PassThrough = require('./lib/_stream_passthrough.js');
25050 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
25051 module.exports = Stream;
25054 }).call(this,require('_process'))
25055 },{
"./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){
25056 module.exports = require(
"./lib/_stream_transform.js")
25058 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
25059 module.exports = require(
"./lib/_stream_writable.js")
25061 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
25062 // Copyright Joyent, Inc. and other Node contributors.
25064 // Permission is hereby granted, free of charge, to any person obtaining a
25065 // copy of this software and associated documentation files (the
25066 //
"Software"), to deal in the Software without restriction, including
25067 // without limitation the rights to use, copy, modify, merge, publish,
25068 // distribute, sublicense, and/or sell copies of the Software, and to permit
25069 // persons to whom the Software is furnished to do so, subject to the
25070 // following conditions:
25072 // The above copyright notice and this permission notice shall be included
25073 // in all copies or substantial portions of the Software.
25075 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25076 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25077 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25078 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25079 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25080 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25081 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25083 module.exports = Stream;
25085 var EE = require('events').EventEmitter;
25086 var inherits = require('inherits');
25088 inherits(Stream, EE);
25089 Stream.Readable = require('readable-stream/readable.js');
25090 Stream.Writable = require('readable-stream/writable.js');
25091 Stream.Duplex = require('readable-stream/duplex.js');
25092 Stream.Transform = require('readable-stream/transform.js');
25093 Stream.PassThrough = require('readable-stream/passthrough.js');
25095 // Backwards-compat with node
0.4.x
25096 Stream.Stream = Stream;
25100 // old-style streams. Note that the pipe method (the only relevant
25101 // part of this class) is overridden in the Readable class.
25103 function Stream() {
25107 Stream.prototype.pipe = function(dest, options) {
25110 function ondata(chunk) {
25111 if (dest.writable) {
25112 if (false === dest.write(chunk) && source.pause) {
25118 source.on('data', ondata);
25120 function ondrain() {
25121 if (source.readable && source.resume) {
25126 dest.on('drain', ondrain);
25128 // If the 'end' option is not supplied, dest.end() will be called when
25129 // source gets the 'end' or 'close' events. Only dest.end() once.
25130 if (!dest._isStdio && (!options || options.end !== false)) {
25131 source.on('end', onend);
25132 source.on('close', onclose);
25135 var didOnEnd = false;
25137 if (didOnEnd) return;
25144 function onclose() {
25145 if (didOnEnd) return;
25148 if (typeof dest.destroy === 'function') dest.destroy();
25151 // don't leave dangling pipes when there are errors.
25152 function onerror(er) {
25154 if (EE.listenerCount(this, 'error') ===
0) {
25155 throw er; // Unhandled stream error in pipe.
25159 source.on('error', onerror);
25160 dest.on('error', onerror);
25162 // remove all the event listeners that were added.
25163 function cleanup() {
25164 source.removeListener('data', ondata);
25165 dest.removeListener('drain', ondrain);
25167 source.removeListener('end', onend);
25168 source.removeListener('close', onclose);
25170 source.removeListener('error', onerror);
25171 dest.removeListener('error', onerror);
25173 source.removeListener('end', cleanup);
25174 source.removeListener('close', cleanup);
25176 dest.removeListener('close', cleanup);
25179 source.on('end', cleanup);
25180 source.on('close', cleanup);
25182 dest.on('close', cleanup);
25184 dest.emit('pipe', source);
25186 // Allow for unix-like usage: A.pipe(B).pipe(C)
25190 },{
"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){
25191 // Copyright Joyent, Inc. and other Node contributors.
25193 // Permission is hereby granted, free of charge, to any person obtaining a
25194 // copy of this software and associated documentation files (the
25195 //
"Software"), to deal in the Software without restriction, including
25196 // without limitation the rights to use, copy, modify, merge, publish,
25197 // distribute, sublicense, and/or sell copies of the Software, and to permit
25198 // persons to whom the Software is furnished to do so, subject to the
25199 // following conditions:
25201 // The above copyright notice and this permission notice shall be included
25202 // in all copies or substantial portions of the Software.
25204 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25205 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25206 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25207 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25208 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25209 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25210 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25212 var Buffer = require('buffer').Buffer;
25214 var isBufferEncoding = Buffer.isEncoding
25215 || function(encoding) {
25216 switch (encoding && encoding.toLowerCase()) {
25217 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;
25218 default: return false;
25223 function assertEncoding(encoding) {
25224 if (encoding && !isBufferEncoding(encoding)) {
25225 throw new Error('Unknown encoding: ' + encoding);
25229 // StringDecoder provides an interface for efficiently splitting a series of
25230 // buffers into a series of JS strings without breaking apart multi-byte
25231 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
25233 // @TODO Handling all encodings inside a single object makes it very difficult
25234 // to reason about this code, so it should be split up in the future.
25235 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
25236 // points as used by CESU-
8.
25237 var StringDecoder = exports.StringDecoder = function(encoding) {
25238 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
25239 assertEncoding(encoding);
25240 switch (this.encoding) {
25242 // CESU-
8 represents each of Surrogate Pair by
3-bytes
25243 this.surrogateSize =
3;
25247 // UTF-
16 represents each of Surrogate Pair by
2-bytes
25248 this.surrogateSize =
2;
25249 this.detectIncompleteChar = utf16DetectIncompleteChar;
25252 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
25253 this.surrogateSize =
3;
25254 this.detectIncompleteChar = base64DetectIncompleteChar;
25257 this.write = passThroughWrite;
25261 // Enough space to store all bytes of a single character. UTF-
8 needs
4
25262 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
25263 this.charBuffer = new Buffer(
6);
25264 // Number of bytes received for the current incomplete multi-byte character.
25265 this.charReceived =
0;
25266 // Number of bytes expected for the current incomplete multi-byte character.
25267 this.charLength =
0;
25271 // write decodes the given buffer and returns it as JS string that is
25272 // guaranteed to not contain any partial multi-byte characters. Any partial
25273 // character found at the end of the buffer is buffered up, and will be
25274 // returned when calling write again with the remaining bytes.
25276 // Note: Converting a Buffer containing an orphan surrogate to a String
25277 // currently works, but converting a String to a Buffer (via `new Buffer`, or
25278 // Buffer#write) will replace incomplete surrogates with the unicode
25279 // replacement character. See https://codereview.chromium.org/
121173009/ .
25280 StringDecoder.prototype.write = function(buffer) {
25282 // if our last write ended with an incomplete multibyte character
25283 while (this.charLength) {
25284 // determine how many remaining bytes this buffer has to offer for this char
25285 var available = (buffer.length
>= this.charLength - this.charReceived) ?
25286 this.charLength - this.charReceived :
25289 // add the new bytes to the char buffer
25290 buffer.copy(this.charBuffer, this.charReceived,
0, available);
25291 this.charReceived += available;
25293 if (this.charReceived < this.charLength) {
25294 // still not enough chars in this buffer? wait for more ...
25298 // remove bytes belonging to the current character from the buffer
25299 buffer = buffer.slice(available, buffer.length);
25301 // get the character that was split
25302 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
25304 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
25305 var charCode = charStr.charCodeAt(charStr.length -
1);
25306 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
25307 this.charLength += this.surrogateSize;
25311 this.charReceived = this.charLength =
0;
25313 // if there are no more bytes in this buffer, just emit our char
25314 if (buffer.length ===
0) {
25320 // determine and set charLength / charReceived
25321 this.detectIncompleteChar(buffer);
25323 var end = buffer.length;
25324 if (this.charLength) {
25325 // buffer the incomplete character bytes we got
25326 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
25327 end -= this.charReceived;
25330 charStr += buffer.toString(this.encoding,
0, end);
25332 var end = charStr.length -
1;
25333 var charCode = charStr.charCodeAt(end);
25334 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
25335 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
25336 var size = this.surrogateSize;
25337 this.charLength += size;
25338 this.charReceived += size;
25339 this.charBuffer.copy(this.charBuffer, size,
0, size);
25340 buffer.copy(this.charBuffer,
0,
0, size);
25341 return charStr.substring(
0, end);
25344 // or just emit the charStr
25348 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
25349 // the end of the given buffer. If so, it sets this.charLength to the byte
25350 // length that character, and sets this.charReceived to the number of bytes
25351 // that are available for this character.
25352 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
25353 // determine how many bytes we have to check at the end of this buffer
25354 var i = (buffer.length
>=
3) ?
3 : buffer.length;
25356 // Figure out if one of the last i bytes of our buffer announces an
25357 // incomplete char.
25358 for (; i
> 0; i--) {
25359 var c = buffer[buffer.length - i];
25361 // See http://en.wikipedia.org/wiki/UTF-
8#Description
25364 if (i ==
1 && c
>> 5 ==
0x06) {
25365 this.charLength =
2;
25370 if (i <=
2 && c
>> 4 ==
0x0E) {
25371 this.charLength =
3;
25376 if (i <=
3 && c
>> 3 ==
0x1E) {
25377 this.charLength =
4;
25381 this.charReceived = i;
25384 StringDecoder.prototype.end = function(buffer) {
25386 if (buffer && buffer.length)
25387 res = this.write(buffer);
25389 if (this.charReceived) {
25390 var cr = this.charReceived;
25391 var buf = this.charBuffer;
25392 var enc = this.encoding;
25393 res += buf.slice(
0, cr).toString(enc);
25399 function passThroughWrite(buffer) {
25400 return buffer.toString(this.encoding);
25403 function utf16DetectIncompleteChar(buffer) {
25404 this.charReceived = buffer.length %
2;
25405 this.charLength = this.charReceived ?
2 :
0;
25408 function base64DetectIncompleteChar(buffer) {
25409 this.charReceived = buffer.length %
3;
25410 this.charLength = this.charReceived ?
3 :
0;
25413 },{
"buffer":
5}],
27:[function(require,module,exports){
25414 (function (global){
25420 module.exports = deprecate;
25423 * Mark that a method should not be used.
25424 * Returns a modified function which warns once by default.
25426 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
25428 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
25429 * will throw an Error when invoked.
25431 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
25432 * will invoke `console.trace()` instead of `console.error()`.
25434 * @param {Function} fn - the function to deprecate
25435 * @param {String} msg - the string to print to the console when `fn` is invoked
25436 * @returns {Function} a new
"deprecated" version of `fn`
25440 function deprecate (fn, msg) {
25441 if (config('noDeprecation')) {
25445 var warned = false;
25446 function deprecated() {
25448 if (config('throwDeprecation')) {
25449 throw new Error(msg);
25450 } else if (config('traceDeprecation')) {
25451 console.trace(msg);
25457 return fn.apply(this, arguments);
25464 * Checks `localStorage` for boolean values for the given `name`.
25466 * @param {String} name
25467 * @returns {Boolean}
25471 function config (name) {
25472 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
25474 if (!global.localStorage) return false;
25478 var val = global.localStorage[name];
25479 if (null == val) return false;
25480 return String(val).toLowerCase() === 'true';
25483 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
25484 },{}],
28:[function(require,module,exports){
25485 arguments[
4][
9][
0].apply(exports,arguments)
25486 },{
"dup":
9}],
29:[function(require,module,exports){
25487 module.exports = function isBuffer(arg) {
25488 return arg && typeof arg === 'object'
25489 && typeof arg.copy === 'function'
25490 && typeof arg.fill === 'function'
25491 && typeof arg.readUInt8 === 'function';
25493 },{}],
30:[function(require,module,exports){
25494 (function (process,global){
25495 // Copyright Joyent, Inc. and other Node contributors.
25497 // Permission is hereby granted, free of charge, to any person obtaining a
25498 // copy of this software and associated documentation files (the
25499 //
"Software"), to deal in the Software without restriction, including
25500 // without limitation the rights to use, copy, modify, merge, publish,
25501 // distribute, sublicense, and/or sell copies of the Software, and to permit
25502 // persons to whom the Software is furnished to do so, subject to the
25503 // following conditions:
25505 // The above copyright notice and this permission notice shall be included
25506 // in all copies or substantial portions of the Software.
25508 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25509 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25510 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25511 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25512 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25513 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25514 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25516 var formatRegExp = /%[sdj%]/g;
25517 exports.format = function(f) {
25518 if (!isString(f)) {
25520 for (var i =
0; i < arguments.length; i++) {
25521 objects.push(inspect(arguments[i]));
25523 return objects.join(' ');
25527 var args = arguments;
25528 var len = args.length;
25529 var str = String(f).replace(formatRegExp, function(x) {
25530 if (x === '%%') return '%';
25531 if (i
>= len) return x;
25533 case '%s': return String(args[i++]);
25534 case '%d': return Number(args[i++]);
25537 return JSON.stringify(args[i++]);
25539 return '[Circular]';
25545 for (var x = args[i]; i < len; x = args[++i]) {
25546 if (isNull(x) || !isObject(x)) {
25549 str += ' ' + inspect(x);
25556 // Mark that a method should not be used.
25557 // Returns a modified function which warns once by default.
25558 // If --no-deprecation is set, then it is a no-op.
25559 exports.deprecate = function(fn, msg) {
25560 // Allow for deprecating things in the process of starting up.
25561 if (isUndefined(global.process)) {
25562 return function() {
25563 return exports.deprecate(fn, msg).apply(this, arguments);
25567 if (process.noDeprecation === true) {
25571 var warned = false;
25572 function deprecated() {
25574 if (process.throwDeprecation) {
25575 throw new Error(msg);
25576 } else if (process.traceDeprecation) {
25577 console.trace(msg);
25579 console.error(msg);
25583 return fn.apply(this, arguments);
25592 exports.debuglog = function(set) {
25593 if (isUndefined(debugEnviron))
25594 debugEnviron = process.env.NODE_DEBUG || '';
25595 set = set.toUpperCase();
25596 if (!debugs[set]) {
25597 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
25598 var pid = process.pid;
25599 debugs[set] = function() {
25600 var msg = exports.format.apply(exports, arguments);
25601 console.error('%s %d: %s', set, pid, msg);
25604 debugs[set] = function() {};
25607 return debugs[set];
25612 * Echos the value of a value. Trys to print the value out
25613 * in the best way possible given the different types.
25615 * @param {Object} obj The object to print out.
25616 * @param {Object} opts Optional options object that alters the output.
25618 /* legacy: obj, showHidden, depth, colors*/
25619 function inspect(obj, opts) {
25623 stylize: stylizeNoColor
25626 if (arguments.length
>=
3) ctx.depth = arguments[
2];
25627 if (arguments.length
>=
4) ctx.colors = arguments[
3];
25628 if (isBoolean(opts)) {
25630 ctx.showHidden = opts;
25632 // got an "options" object
25633 exports._extend(ctx, opts);
25635 // set default options
25636 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
25637 if (isUndefined(ctx.depth)) ctx.depth =
2;
25638 if (isUndefined(ctx.colors)) ctx.colors = false;
25639 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
25640 if (ctx.colors) ctx.stylize = stylizeWithColor;
25641 return formatValue(ctx, obj, ctx.depth);
25643 exports.inspect = inspect;
25646 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
25649 'italic' : [
3,
23],
25650 'underline' : [
4,
24],
25651 'inverse' : [
7,
27],
25652 'white' : [
37,
39],
25654 'black' : [
30,
39],
25657 'green' : [
32,
39],
25658 'magenta' : [
35,
39],
25660 'yellow' : [
33,
39]
25663 // Don't use 'blue' not visible on cmd.exe
25666 'number': 'yellow',
25667 'boolean': 'yellow',
25668 'undefined': 'grey',
25672 // "name": intentionally not styling
25677 function stylizeWithColor(str, styleType) {
25678 var style = inspect.styles[styleType];
25681 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
25682 '\u001b[' + inspect.colors[style][
1] + 'm';
25689 function stylizeNoColor(str, styleType) {
25694 function arrayToHash(array) {
25697 array.forEach(function(val, idx) {
25705 function formatValue(ctx, value, recurseTimes) {
25706 // Provide a hook for user-specified inspect functions.
25707 // Check that value is an object with an inspect function on it
25708 if (ctx.customInspect &&
25710 isFunction(value.inspect) &&
25711 // Filter out the util module, it's inspect function is special
25712 value.inspect !== exports.inspect &&
25713 // Also filter out any prototype objects using the circular check.
25714 !(value.constructor && value.constructor.prototype === value)) {
25715 var ret = value.inspect(recurseTimes, ctx);
25716 if (!isString(ret)) {
25717 ret = formatValue(ctx, ret, recurseTimes);
25722 // Primitive types cannot have properties
25723 var primitive = formatPrimitive(ctx, value);
25728 // Look up the keys of the object.
25729 var keys = Object.keys(value);
25730 var visibleKeys = arrayToHash(keys);
25732 if (ctx.showHidden) {
25733 keys = Object.getOwnPropertyNames(value);
25736 // IE doesn't make error fields non-enumerable
25737 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
25739 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
25740 return formatError(value);
25743 // Some type of object without properties can be shortcutted.
25744 if (keys.length ===
0) {
25745 if (isFunction(value)) {
25746 var name = value.name ? ': ' + value.name : '';
25747 return ctx.stylize('[Function' + name + ']', 'special');
25749 if (isRegExp(value)) {
25750 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
25752 if (isDate(value)) {
25753 return ctx.stylize(Date.prototype.toString.call(value), 'date');
25755 if (isError(value)) {
25756 return formatError(value);
25760 var base = '', array = false, braces = ['{', '}'];
25762 // Make Array say that they are Array
25763 if (isArray(value)) {
25765 braces = ['[', ']'];
25768 // Make functions say that they are functions
25769 if (isFunction(value)) {
25770 var n = value.name ? ': ' + value.name : '';
25771 base = ' [Function' + n + ']';
25774 // Make RegExps say that they are RegExps
25775 if (isRegExp(value)) {
25776 base = ' ' + RegExp.prototype.toString.call(value);
25779 // Make dates with properties first say the date
25780 if (isDate(value)) {
25781 base = ' ' + Date.prototype.toUTCString.call(value);
25784 // Make error with message first say the error
25785 if (isError(value)) {
25786 base = ' ' + formatError(value);
25789 if (keys.length ===
0 && (!array || value.length ==
0)) {
25790 return braces[
0] + base + braces[
1];
25793 if (recurseTimes <
0) {
25794 if (isRegExp(value)) {
25795 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
25797 return ctx.stylize('[Object]', 'special');
25801 ctx.seen.push(value);
25805 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
25807 output = keys.map(function(key) {
25808 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
25814 return reduceToSingleString(output, base, braces);
25818 function formatPrimitive(ctx, value) {
25819 if (isUndefined(value))
25820 return ctx.stylize('undefined', 'undefined');
25821 if (isString(value)) {
25822 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
25823 .replace(/'/g, "\\'")
25824 .replace(/\\"/g, '"') + '\'';
25825 return ctx.stylize(simple, 'string');
25827 if (isNumber(value))
25828 return ctx.stylize('' + value, 'number');
25829 if (isBoolean(value))
25830 return ctx.stylize('' + value, 'boolean');
25831 // For some reason typeof null is "object", so special case here.
25833 return ctx.stylize('null', 'null');
25837 function formatError(value) {
25838 return '[' + Error.prototype.toString.call(value) + ']';
25842 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
25844 for (var i =
0, l = value.length; i < l; ++i) {
25845 if (hasOwnProperty(value, String(i))) {
25846 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
25852 keys.forEach(function(key) {
25853 if (!key.match(/^\d+$/)) {
25854 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
25862 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
25863 var name, str, desc;
25864 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
25867 str = ctx.stylize('[Getter/Setter]', 'special');
25869 str = ctx.stylize('[Getter]', 'special');
25873 str = ctx.stylize('[Setter]', 'special');
25876 if (!hasOwnProperty(visibleKeys, key)) {
25877 name = '[' + key + ']';
25880 if (ctx.seen.indexOf(desc.value) <
0) {
25881 if (isNull(recurseTimes)) {
25882 str = formatValue(ctx, desc.value, null);
25884 str = formatValue(ctx, desc.value, recurseTimes -
1);
25886 if (str.indexOf('\n')
> -
1) {
25888 str = str.split('\n').map(function(line) {
25890 }).join('\n').substr(
2);
25892 str = '\n' + str.split('\n').map(function(line) {
25898 str = ctx.stylize('[Circular]', 'special');
25901 if (isUndefined(name)) {
25902 if (array && key.match(/^\d+$/)) {
25905 name = JSON.stringify('' + key);
25906 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
25907 name = name.substr(
1, name.length -
2);
25908 name = ctx.stylize(name, 'name');
25910 name = name.replace(/'/g, "\\'")
25911 .replace(/\\"/g, '"')
25912 .replace(/(^"|"$)/g, "'");
25913 name = ctx.stylize(name, 'string');
25917 return name + ': ' + str;
25921 function reduceToSingleString(output, base, braces) {
25922 var numLinesEst =
0;
25923 var length = output.reduce(function(prev, cur) {
25925 if (cur.indexOf('\n')
>=
0) numLinesEst++;
25926 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
25931 (base === '' ? '' : base + '\n ') +
25933 output.join(',\n ') +
25938 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
25942 // NOTE: These type checking functions intentionally don't use `instanceof`
25943 // because it is fragile and can be easily faked with `Object.create()`.
25944 function isArray(ar) {
25945 return Array.isArray(ar);
25947 exports.isArray = isArray;
25949 function isBoolean(arg) {
25950 return typeof arg === 'boolean';
25952 exports.isBoolean = isBoolean;
25954 function isNull(arg) {
25955 return arg === null;
25957 exports.isNull = isNull;
25959 function isNullOrUndefined(arg) {
25960 return arg == null;
25962 exports.isNullOrUndefined = isNullOrUndefined;
25964 function isNumber(arg) {
25965 return typeof arg === 'number';
25967 exports.isNumber = isNumber;
25969 function isString(arg) {
25970 return typeof arg === 'string';
25972 exports.isString = isString;
25974 function isSymbol(arg) {
25975 return typeof arg === 'symbol';
25977 exports.isSymbol = isSymbol;
25979 function isUndefined(arg) {
25980 return arg === void
0;
25982 exports.isUndefined = isUndefined;
25984 function isRegExp(re) {
25985 return isObject(re) && objectToString(re) === '[object RegExp]';
25987 exports.isRegExp = isRegExp;
25989 function isObject(arg) {
25990 return typeof arg === 'object' && arg !== null;
25992 exports.isObject = isObject;
25994 function isDate(d) {
25995 return isObject(d) && objectToString(d) === '[object Date]';
25997 exports.isDate = isDate;
25999 function isError(e) {
26000 return isObject(e) &&
26001 (objectToString(e) === '[object Error]' || e instanceof Error);
26003 exports.isError = isError;
26005 function isFunction(arg) {
26006 return typeof arg === 'function';
26008 exports.isFunction = isFunction;
26010 function isPrimitive(arg) {
26011 return arg === null ||
26012 typeof arg === 'boolean' ||
26013 typeof arg === 'number' ||
26014 typeof arg === 'string' ||
26015 typeof arg === 'symbol' || // ES6 symbol
26016 typeof arg === 'undefined';
26018 exports.isPrimitive = isPrimitive;
26020 exports.isBuffer = require('./support/isBuffer');
26022 function objectToString(o) {
26023 return Object.prototype.toString.call(o);
26028 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
26032 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
26033 'Oct', 'Nov', 'Dec'];
26036 function timestamp() {
26037 var d = new Date();
26038 var time = [pad(d.getHours()),
26039 pad(d.getMinutes()),
26040 pad(d.getSeconds())].join(':');
26041 return [d.getDate(), months[d.getMonth()], time].join(' ');
26045 // log is just a thin wrapper to console.log that prepends a timestamp
26046 exports.log = function() {
26047 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
26052 * Inherit the prototype methods from one constructor into another.
26054 * The Function.prototype.inherits from lang.js rewritten as a standalone
26055 * function (not on Function.prototype). NOTE: If this file is to be loaded
26056 * during bootstrapping this function needs to be rewritten using some native
26057 * functions as prototype setup using normal JavaScript does not work as
26058 * expected during bootstrapping (see mirror.js in r114903).
26060 * @param {function} ctor Constructor function which needs to inherit the
26062 * @param {function} superCtor Constructor function to inherit prototype from.
26064 exports.inherits = require('inherits');
26066 exports._extend = function(origin, add) {
26067 // Don't do anything if add isn't an object
26068 if (!add || !isObject(add)) return origin;
26070 var keys = Object.keys(add);
26071 var i = keys.length;
26073 origin[keys[i]] = add[keys[i]];
26078 function hasOwnProperty(obj, prop) {
26079 return Object.prototype.hasOwnProperty.call(obj, prop);
26082 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
26083 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
26084 (function (Buffer){
26085 const createKeccakHash = require('keccak')
26086 const secp256k1 = require('secp256k1')
26087 const assert = require('assert')
26088 const rlp = require('rlp')
26089 const BN = require('bn.js')
26090 const createHash = require('create-hash')
26091 Object.assign(exports, require('ethjs-util'))
26094 * the max integer that this VM can handle (a ```BN```)
26095 * @var {BN} MAX_INTEGER
26097 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
26100 *
2^
256 (a ```BN```)
26101 * @var {BN} TWO_POW256
26103 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
26106 * SHA3-
256 hash of null (a ```String```)
26107 * @var {String} SHA3_NULL_S
26109 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
26112 * SHA3-
256 hash of null (a ```Buffer```)
26113 * @var {Buffer} SHA3_NULL
26115 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
26118 * SHA3-
256 of an RLP of an empty array (a ```String```)
26119 * @var {String} SHA3_RLP_ARRAY_S
26121 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
26124 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
26125 * @var {Buffer} SHA3_RLP_ARRAY
26127 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
26130 * SHA3-
256 hash of the RLP of null (a ```String```)
26131 * @var {String} SHA3_RLP_S
26133 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
26136 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
26137 * @var {Buffer} SHA3_RLP
26139 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
26142 * [`BN`](https://github.com/indutny/bn.js)
26148 * [`rlp`](https://github.com/ethereumjs/rlp)
26154 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
26157 exports.secp256k1 = secp256k1
26160 * Returns a buffer filled with
0s
26162 * @param {Number} bytes the number of bytes the buffer should be
26165 exports.zeros = function (bytes) {
26166 return Buffer.allocUnsafe(bytes).fill(
0)
26170 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
26171 * Or it truncates the beginning if it exceeds.
26172 * @method lsetLength
26173 * @param {Buffer|Array} msg the value to pad
26174 * @param {Number} length the number of bytes the output should be
26175 * @param {Boolean} [right=false] whether to start padding form the left or right
26176 * @return {Buffer|Array}
26178 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
26179 var buf = exports.zeros(length)
26180 msg = exports.toBuffer(msg)
26182 if (msg.length < length) {
26186 return msg.slice(
0, length)
26188 if (msg.length < length) {
26189 msg.copy(buf, length - msg.length)
26192 return msg.slice(-length)
26197 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
26198 * Or it truncates the beginning if it exceeds.
26199 * @param {Buffer|Array} msg the value to pad
26200 * @param {Number} length the number of bytes the output should be
26201 * @return {Buffer|Array}
26203 exports.setLengthRight = function (msg, length) {
26204 return exports.setLength(msg, length, true)
26208 * Trims leading zeros from a `Buffer` or an `Array`
26209 * @param {Buffer|Array|String} a
26210 * @return {Buffer|Array|String}
26212 exports.unpad = exports.stripZeros = function (a) {
26213 a = exports.stripHexPrefix(a)
26215 while (a.length
> 0 && first.toString() === '
0') {
26222 * 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.
26223 * @param {*} v the value
26225 exports.toBuffer = function (v) {
26226 if (!Buffer.isBuffer(v)) {
26227 if (Array.isArray(v)) {
26229 } else if (typeof v === 'string') {
26230 if (exports.isHexPrefixed(v)) {
26231 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
26235 } else if (typeof v === 'number') {
26236 v = exports.intToBuffer(v)
26237 } else if (v === null || v === undefined) {
26238 v = Buffer.allocUnsafe(
0)
26239 } else if (v.toArray) {
26240 // converts a BN to a Buffer
26241 v = Buffer.from(v.toArray())
26243 throw new Error('invalid type')
26250 * Converts a `Buffer` to a `Number`
26251 * @param {Buffer} buf
26253 * @throws If the input number exceeds
53 bits.
26255 exports.bufferToInt = function (buf) {
26256 return new BN(exports.toBuffer(buf)).toNumber()
26260 * Converts a `Buffer` into a hex `String`
26261 * @param {Buffer} buf
26264 exports.bufferToHex = function (buf) {
26265 buf = exports.toBuffer(buf)
26266 return '
0x' + buf.toString('hex')
26270 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
26271 * @param {Buffer} num
26274 exports.fromSigned = function (num) {
26275 return new BN(num).fromTwos(
256)
26279 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
26283 exports.toUnsigned = function (num) {
26284 return Buffer.from(num.toTwos(
256).toArray())
26288 * Creates SHA-
3 hash of the input
26289 * @param {Buffer|Array|String|Number} a the input data
26290 * @param {Number} [bits=
256] the SHA width
26293 exports.sha3 = function (a, bits) {
26294 a = exports.toBuffer(a)
26295 if (!bits) bits =
256
26297 return createKeccakHash('keccak' + bits).update(a).digest()
26301 * Creates SHA256 hash of the input
26302 * @param {Buffer|Array|String|Number} a the input data
26305 exports.sha256 = function (a) {
26306 a = exports.toBuffer(a)
26307 return createHash('sha256').update(a).digest()
26311 * Creates RIPEMD160 hash of the input
26312 * @param {Buffer|Array|String|Number} a the input data
26313 * @param {Boolean} padded whether it should be padded to
256 bits or not
26316 exports.ripemd160 = function (a, padded) {
26317 a = exports.toBuffer(a)
26318 var hash = createHash('rmd160').update(a).digest()
26319 if (padded === true) {
26320 return exports.setLength(hash,
32)
26327 * Creates SHA-
3 hash of the RLP encoded version of the input
26328 * @param {Buffer|Array|String|Number} a the input data
26331 exports.rlphash = function (a) {
26332 return exports.sha3(rlp.encode(a))
26336 * Checks if the private key satisfies the rules of the curve secp256k1.
26337 * @param {Buffer} privateKey
26338 * @return {Boolean}
26340 exports.isValidPrivate = function (privateKey) {
26341 return secp256k1.privateKeyVerify(privateKey)
26345 * Checks if the public key satisfies the rules of the curve secp256k1
26346 * and the requirements of Ethereum.
26347 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
26348 * @param {Boolean} [sanitize=false] Accept public keys in other formats
26349 * @return {Boolean}
26351 exports.isValidPublic = function (publicKey, sanitize) {
26352 if (publicKey.length ===
64) {
26353 // Convert to SEC1 for secp256k1
26354 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
26361 return secp256k1.publicKeyVerify(publicKey)
26365 * Returns the ethereum address of a given public key.
26366 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
26367 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
26368 * @param {Boolean} [sanitize=false] Accept public keys in other formats
26371 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
26372 pubKey = exports.toBuffer(pubKey)
26373 if (sanitize && (pubKey.length !==
64)) {
26374 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
26376 assert(pubKey.length ===
64)
26377 // Only take the lower
160bits of the hash
26378 return exports.sha3(pubKey).slice(-
20)
26382 * Returns the ethereum public key of a given private key
26383 * @param {Buffer} privateKey A private key must be
256 bits wide
26386 var privateToPublic = exports.privateToPublic = function (privateKey) {
26387 privateKey = exports.toBuffer(privateKey)
26388 // skip the type flag and use the X, Y points
26389 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
26393 * Converts a public key to the Ethereum format.
26394 * @param {Buffer} publicKey
26397 exports.importPublic = function (publicKey) {
26398 publicKey = exports.toBuffer(publicKey)
26399 if (publicKey.length !==
64) {
26400 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
26407 * @param {Buffer} msgHash
26408 * @param {Buffer} privateKey
26411 exports.ecsign = function (msgHash, privateKey) {
26412 var sig = secp256k1.sign(msgHash, privateKey)
26415 ret.r = sig.signature.slice(
0,
32)
26416 ret.s = sig.signature.slice(
32,
64)
26417 ret.v = sig.recovery +
27
26422 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
26423 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
26424 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
26425 * used to produce the signature.
26427 * @returns {Buffer} hash
26429 exports.hashPersonalMessage = function (message) {
26430 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
26431 return exports.sha3(Buffer.concat([prefix, message]))
26435 * ECDSA public key recovery from signature
26436 * @param {Buffer} msgHash
26437 * @param {Number} v
26438 * @param {Buffer} r
26439 * @param {Buffer} s
26440 * @return {Buffer} publicKey
26442 exports.ecrecover = function (msgHash, v, r, s) {
26443 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
26444 var recovery = v -
27
26445 if (recovery !==
0 && recovery !==
1) {
26446 throw new Error('Invalid signature v value')
26448 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
26449 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
26453 * Convert signature parameters into the format of `eth_sign` RPC method
26454 * @param {Number} v
26455 * @param {Buffer} r
26456 * @param {Buffer} s
26457 * @return {String} sig
26459 exports.toRpcSig = function (v, r, s) {
26460 // NOTE: with potential introduction of chainId this might need to be updated
26461 if (v !==
27 && v !==
28) {
26462 throw new Error('Invalid recovery id')
26465 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
26466 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
26467 return exports.bufferToHex(Buffer.concat([
26468 exports.setLengthLeft(r,
32),
26469 exports.setLengthLeft(s,
32),
26470 exports.toBuffer(v -
27)
26475 * Convert signature format of the `eth_sign` RPC method to signature parameters
26476 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
26477 * @param {String} sig
26480 exports.fromRpcSig = function (sig) {
26481 sig = exports.toBuffer(sig)
26483 // NOTE: with potential introduction of chainId this might need to be updated
26484 if (sig.length !==
65) {
26485 throw new Error('Invalid signature length')
26489 // support both versions of `eth_sign` responses
26496 r: sig.slice(
0,
32),
26497 s: sig.slice(
32,
64)
26502 * Returns the ethereum address of a given private key
26503 * @param {Buffer} privateKey A private key must be
256 bits wide
26506 exports.privateToAddress = function (privateKey) {
26507 return exports.publicToAddress(privateToPublic(privateKey))
26511 * Checks if the address is a valid. Accepts checksummed addresses too
26512 * @param {String} address
26513 * @return {Boolean}
26515 exports.isValidAddress = function (address) {
26516 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
26520 * Returns a checksummed address
26521 * @param {String} address
26524 exports.toChecksumAddress = function (address) {
26525 address = exports.stripHexPrefix(address).toLowerCase()
26526 var hash = exports.sha3(address).toString('hex')
26529 for (var i =
0; i < address.length; i++) {
26530 if (parseInt(hash[i],
16)
>=
8) {
26531 ret += address[i].toUpperCase()
26541 * Checks if the address is a valid checksummed address
26542 * @param {Buffer} address
26543 * @return {Boolean}
26545 exports.isValidChecksumAddress = function (address) {
26546 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
26550 * Generates an address of a newly created contract
26551 * @param {Buffer} from the address which is creating this new address
26552 * @param {Buffer} nonce the nonce of the from account
26555 exports.generateAddress = function (from, nonce) {
26556 from = exports.toBuffer(from)
26557 nonce = new BN(nonce)
26559 if (nonce.isZero()) {
26560 // in RLP we want to encode null in the case of zero nonce
26561 // read the RLP documentation for an answer if you dare
26564 nonce = Buffer.from(nonce.toArray())
26567 // Only take the lower
160bits of the hash
26568 return exports.rlphash([from, nonce]).slice(-
20)
26572 * Returns true if the supplied address belongs to a precompiled account
26573 * @param {Buffer|String} address
26574 * @return {Boolean}
26576 exports.isPrecompiled = function (address) {
26577 var a = exports.unpad(address)
26578 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
26582 * Adds
"0x" to a given `String` if it does not already start with
"0x"
26583 * @param {String} str
26586 exports.addHexPrefix = function (str) {
26587 if (typeof str !== 'string') {
26591 return exports.isHexPrefixed(str) ? str : '
0x' + str
26595 * Validate ECDSA signature
26596 * @method isValidSignature
26597 * @param {Buffer} v
26598 * @param {Buffer} r
26599 * @param {Buffer} s
26600 * @param {Boolean} [homestead=true]
26601 * @return {Boolean}
26604 exports.isValidSignature = function (v, r, s, homestead) {
26605 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
26606 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
26608 if (r.length !==
32 || s.length !==
32) {
26612 if (v !==
27 && v !==
28) {
26619 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
26623 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
26631 * Converts a `Buffer` or `Array` to JSON
26632 * @param {Buffer|Array} ba
26633 * @return {Array|String|null}
26635 exports.baToJSON = function (ba) {
26636 if (Buffer.isBuffer(ba)) {
26637 return '
0x' + ba.toString('hex')
26638 } else if (ba instanceof Array) {
26640 for (var i =
0; i < ba.length; i++) {
26641 array.push(exports.baToJSON(ba[i]))
26648 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
26649 * @param {Object} self the `Object` to define properties on
26650 * @param {Array} fields an array fields to define. Fields can contain:
26651 * * `name` - the name of the properties
26652 * * `length` - the number of bytes the field can have
26653 * * `allowLess` - if the field can be less than the length
26655 * @param {*} data data to be validated against the definitions
26657 exports.defineProperties = function (self, fields, data) {
26661 // attach the `toJSON`
26662 self.toJSON = function (label) {
26665 self._fields.forEach(function (field) {
26666 obj[field] = '
0x' + self[field].toString('hex')
26670 return exports.baToJSON(this.raw)
26673 self.serialize = function serialize () {
26674 return rlp.encode(self.raw)
26677 fields.forEach(function (field, i) {
26678 self._fields.push(field.name)
26679 function getter () {
26682 function setter (v) {
26683 v = exports.toBuffer(v)
26685 if (v.toString('hex') === '
00' && !field.allowZero) {
26686 v = Buffer.allocUnsafe(
0)
26689 if (field.allowLess && field.length) {
26690 v = exports.stripZeros(v)
26691 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
26692 } else if (!(field.allowZero && v.length ===
0) && field.length) {
26693 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
26699 Object.defineProperty(self, field.name, {
26701 configurable: true,
26706 if (field.default) {
26707 self[field.name] = field.default
26712 Object.defineProperty(self, field.alias, {
26714 configurable: true,
26721 // if the constuctor is passed data
26723 if (typeof data === 'string') {
26724 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
26727 if (Buffer.isBuffer(data)) {
26728 data = rlp.decode(data)
26731 if (Array.isArray(data)) {
26732 if (data.length
> self._fields.length) {
26733 throw (new Error('wrong number of fields in data'))
26736 // make sure all the items are buffers
26737 data.forEach(function (d, i) {
26738 self[self._fields[i]] = exports.toBuffer(d)
26740 } else if (typeof data === 'object') {
26741 const keys = Object.keys(data)
26742 fields.forEach(function (field) {
26743 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
26744 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
26747 throw new Error('invalid data')
26752 }).call(this,require("buffer").Buffer)
26753 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
26754 (function (Buffer){
26755 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
26756 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
26757 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
26759 function check (buffer) {
26760 if (buffer.length <
8) return false
26761 if (buffer.length
> 72) return false
26762 if (buffer[
0] !==
0x30) return false
26763 if (buffer[
1] !== buffer.length -
2) return false
26764 if (buffer[
2] !==
0x02) return false
26766 var lenR = buffer[
3]
26767 if (lenR ===
0) return false
26768 if (
5 + lenR
>= buffer.length) return false
26769 if (buffer[
4 + lenR] !==
0x02) return false
26771 var lenS = buffer[
5 + lenR]
26772 if (lenS ===
0) return false
26773 if ((
6 + lenR + lenS) !== buffer.length) return false
26775 if (buffer[
4] &
0x80) return false
26776 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
26778 if (buffer[lenR +
6] &
0x80) return false
26779 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
26783 function decode (buffer) {
26784 if (buffer.length <
8) throw new Error('DER sequence length is too short')
26785 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
26786 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
26787 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
26788 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
26790 var lenR = buffer[
3]
26791 if (lenR ===
0) throw new Error('R length is zero')
26792 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
26793 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
26795 var lenS = buffer[
5 + lenR]
26796 if (lenS ===
0) throw new Error('S length is zero')
26797 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
26799 if (buffer[
4] &
0x80) throw new Error('R value is negative')
26800 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
26802 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
26803 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
26805 // non-BIP66 - extract R, S values
26807 r: buffer.slice(
4,
4 + lenR),
26808 s: buffer.slice(
6 + lenR)
26813 * Expects r and s to be positive DER integers.
26815 * The DER format uses the most significant bit as a sign bit (&
0x80).
26816 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
26831 *
62300 =
> 0x00f35c
26832 * -
62300 =
> 0xff0ca4
26834 function encode (r, s) {
26835 var lenR = r.length
26836 var lenS = s.length
26837 if (lenR ===
0) throw new Error('R length is zero')
26838 if (lenS ===
0) throw new Error('S length is zero')
26839 if (lenR
> 33) throw new Error('R length is too long')
26840 if (lenS
> 33) throw new Error('S length is too long')
26841 if (r[
0] &
0x80) throw new Error('R value is negative')
26842 if (s[
0] &
0x80) throw new Error('S value is negative')
26843 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
26844 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
26846 var signature = new Buffer(
6 + lenR + lenS)
26848 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
26849 signature[
0] =
0x30
26850 signature[
1] = signature.length -
2
26851 signature[
2] =
0x02
26852 signature[
3] = r.length
26853 r.copy(signature,
4)
26854 signature[
4 + lenR] =
0x02
26855 signature[
5 + lenR] = s.length
26856 s.copy(signature,
6 + lenR)
26867 }).call(this,require(
"buffer").Buffer)
26868 },{
"buffer":
5}],
33:[function(require,module,exports){
26869 (function (module, exports) {
26873 function assert (val, msg) {
26874 if (!val) throw new Error(msg || 'Assertion failed');
26877 // Could use `inherits` module, but don't want to move from single file
26878 // architecture yet.
26879 function inherits (ctor, superCtor) {
26880 ctor.super_ = superCtor;
26881 var TempCtor = function () {};
26882 TempCtor.prototype = superCtor.prototype;
26883 ctor.prototype = new TempCtor();
26884 ctor.prototype.constructor = ctor;
26889 function BN (number, base, endian) {
26890 if (BN.isBN(number)) {
26898 // Reduction context
26901 if (number !== null) {
26902 if (base === 'le' || base === 'be') {
26907 this._init(number ||
0, base ||
10, endian || 'be');
26910 if (typeof module === 'object') {
26911 module.exports = BN;
26921 Buffer = require('buf' + 'fer').Buffer;
26925 BN.isBN = function isBN (num) {
26926 if (num instanceof BN) {
26930 return num !== null && typeof num === 'object' &&
26931 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
26934 BN.max = function max (left, right) {
26935 if (left.cmp(right)
> 0) return left;
26939 BN.min = function min (left, right) {
26940 if (left.cmp(right) <
0) return left;
26944 BN.prototype._init = function init (number, base, endian) {
26945 if (typeof number === 'number') {
26946 return this._initNumber(number, base, endian);
26949 if (typeof number === 'object') {
26950 return this._initArray(number, base, endian);
26953 if (base === 'hex') {
26956 assert(base === (base |
0) && base
>=
2 && base <=
36);
26958 number = number.toString().replace(/\s+/g, '');
26960 if (number[
0] === '-') {
26965 this._parseHex(number, start);
26967 this._parseBase(number, base, start);
26970 if (number[
0] === '-') {
26976 if (endian !== 'le') return;
26978 this._initArray(this.toArray(), base, endian);
26981 BN.prototype._initNumber = function _initNumber (number, base, endian) {
26986 if (number <
0x4000000) {
26987 this.words = [ number &
0x3ffffff ];
26989 } else if (number <
0x10000000000000) {
26991 number &
0x3ffffff,
26992 (number /
0x4000000) &
0x3ffffff
26996 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
26998 number &
0x3ffffff,
26999 (number /
0x4000000) &
0x3ffffff,
27005 if (endian !== 'le') return;
27007 // Reverse the bytes
27008 this._initArray(this.toArray(), base, endian);
27011 BN.prototype._initArray = function _initArray (number, base, endian) {
27012 // Perhaps a Uint8Array
27013 assert(typeof number.length === 'number');
27014 if (number.length <=
0) {
27015 this.words = [
0 ];
27020 this.length = Math.ceil(number.length /
3);
27021 this.words = new Array(this.length);
27022 for (var i =
0; i < this.length; i++) {
27028 if (endian === 'be') {
27029 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
27030 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
27031 this.words[j] |= (w << off) &
0x3ffffff;
27032 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
27039 } else if (endian === 'le') {
27040 for (i =
0, j =
0; i < number.length; i +=
3) {
27041 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
27042 this.words[j] |= (w << off) &
0x3ffffff;
27043 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
27051 return this.strip();
27054 function parseHex (str, start, end) {
27056 var len = Math.min(str.length, end);
27057 for (var i = start; i < len; i++) {
27058 var c = str.charCodeAt(i) -
48;
27063 if (c
>=
49 && c <=
54) {
27067 } else if (c
>=
17 && c <=
22) {
27078 BN.prototype._parseHex = function _parseHex (number, start) {
27079 // Create possibly bigger array to ensure that it fits the number
27080 this.length = Math.ceil((number.length - start) /
6);
27081 this.words = new Array(this.length);
27082 for (var i =
0; i < this.length; i++) {
27087 // Scan
24-bit chunks and add them to the number
27089 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
27090 w = parseHex(number, i, i +
6);
27091 this.words[j] |= (w << off) &
0x3ffffff;
27092 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
27093 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
27100 if (i +
6 !== start) {
27101 w = parseHex(number, start, i +
6);
27102 this.words[j] |= (w << off) &
0x3ffffff;
27103 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
27108 function parseBase (str, start, end, mul) {
27110 var len = Math.min(str.length, end);
27111 for (var i = start; i < len; i++) {
27112 var c = str.charCodeAt(i) -
48;
27121 } else if (c
>=
17) {
27132 BN.prototype._parseBase = function _parseBase (number, base, start) {
27133 // Initialize as zero
27134 this.words = [
0 ];
27137 // Find length of limb in base
27138 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
27142 limbPow = (limbPow / base) |
0;
27144 var total = number.length - start;
27145 var mod = total % limbLen;
27146 var end = Math.min(total, total - mod) + start;
27149 for (var i = start; i < end; i += limbLen) {
27150 word = parseBase(number, i, i + limbLen, base);
27152 this.imuln(limbPow);
27153 if (this.words[
0] + word <
0x4000000) {
27154 this.words[
0] += word;
27162 word = parseBase(number, i, number.length, base);
27164 for (i =
0; i < mod; i++) {
27169 if (this.words[
0] + word <
0x4000000) {
27170 this.words[
0] += word;
27177 BN.prototype.copy = function copy (dest) {
27178 dest.words = new Array(this.length);
27179 for (var i =
0; i < this.length; i++) {
27180 dest.words[i] = this.words[i];
27182 dest.length = this.length;
27183 dest.negative = this.negative;
27184 dest.red = this.red;
27187 BN.prototype.clone = function clone () {
27188 var r = new BN(null);
27193 BN.prototype._expand = function _expand (size) {
27194 while (this.length < size) {
27195 this.words[this.length++] =
0;
27200 // Remove leading `
0` from `this`
27201 BN.prototype.strip = function strip () {
27202 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
27205 return this._normSign();
27208 BN.prototype._normSign = function _normSign () {
27210 if (this.length ===
1 && this.words[
0] ===
0) {
27216 BN.prototype.inspect = function inspect () {
27217 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
27223 var groupSizes = [];
27224 var groupBases = [];
27228 while (++i < BN.wordSize) {
27237 while (++base <
36 +
1) {
27240 while (groupBase < (
1 << BN.wordSize) / base) {
27244 groupSizes[base] = groupSize;
27245 groupBases[base] = groupBase;
27267 '
0000000000000000',
27268 '
00000000000000000',
27269 '
000000000000000000',
27270 '
0000000000000000000',
27271 '
00000000000000000000',
27272 '
000000000000000000000',
27273 '
0000000000000000000000',
27274 '
00000000000000000000000',
27275 '
000000000000000000000000',
27276 '
0000000000000000000000000'
27281 25,
16,
12,
11,
10,
9,
8,
27282 8,
7,
7,
7,
7,
6,
6,
27283 6,
6,
6,
6,
6,
5,
5,
27284 5,
5,
5,
5,
5,
5,
5,
27285 5,
5,
5,
5,
5,
5,
5
27290 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
27291 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
27292 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
27293 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
27294 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
27297 BN.prototype.toString = function toString (base, padding) {
27299 padding = padding |
0 ||
1;
27302 if (base ===
16 || base === 'hex') {
27306 for (var i =
0; i < this.length; i++) {
27307 var w = this.words[i];
27308 var word = (((w << off) | carry) &
0xffffff).toString(
16);
27309 carry = (w
>>> (
24 - off)) &
0xffffff;
27310 if (carry !==
0 || i !== this.length -
1) {
27311 out = zeros[
6 - word.length] + word + out;
27322 out = carry.toString(
16) + out;
27324 while (out.length % padding !==
0) {
27327 if (this.negative !==
0) {
27333 if (base === (base |
0) && base
>=
2 && base <=
36) {
27334 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
27335 var groupSize = groupSizes[base];
27336 // var groupBase = Math.pow(base, groupSize);
27337 var groupBase = groupBases[base];
27339 var c = this.clone();
27341 while (!c.isZero()) {
27342 var r = c.modn(groupBase).toString(base);
27343 c = c.idivn(groupBase);
27346 out = zeros[groupSize - r.length] + r + out;
27351 if (this.isZero()) {
27354 while (out.length % padding !==
0) {
27357 if (this.negative !==
0) {
27363 assert(false, 'Base should be between
2 and
36');
27366 BN.prototype.toNumber = function toNumber () {
27367 var ret = this.words[
0];
27368 if (this.length ===
2) {
27369 ret += this.words[
1] *
0x4000000;
27370 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
27371 // NOTE: at this stage it is known that the top bit is set
27372 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
27373 } else if (this.length
> 2) {
27374 assert(false, 'Number can only safely store up to
53 bits');
27376 return (this.negative !==
0) ? -ret : ret;
27379 BN.prototype.toJSON = function toJSON () {
27380 return this.toString(
16);
27383 BN.prototype.toBuffer = function toBuffer (endian, length) {
27384 assert(typeof Buffer !== 'undefined');
27385 return this.toArrayLike(Buffer, endian, length);
27388 BN.prototype.toArray = function toArray (endian, length) {
27389 return this.toArrayLike(Array, endian, length);
27392 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
27393 var byteLength = this.byteLength();
27394 var reqLength = length || Math.max(
1, byteLength);
27395 assert(byteLength <= reqLength, 'byte array longer than desired length');
27396 assert(reqLength
> 0, 'Requested array length <=
0');
27399 var littleEndian = endian === 'le';
27400 var res = new ArrayType(reqLength);
27403 var q = this.clone();
27404 if (!littleEndian) {
27405 // Assume big-endian
27406 for (i =
0; i < reqLength - byteLength; i++) {
27410 for (i =
0; !q.isZero(); i++) {
27414 res[reqLength - i -
1] = b;
27417 for (i =
0; !q.isZero(); i++) {
27424 for (; i < reqLength; i++) {
27433 BN.prototype._countBits = function _countBits (w) {
27434 return
32 - Math.clz32(w);
27437 BN.prototype._countBits = function _countBits (w) {
27460 BN.prototype._zeroBits = function _zeroBits (w) {
27462 if (w ===
0) return
26;
27466 if ((t &
0x1fff) ===
0) {
27470 if ((t &
0x7f) ===
0) {
27474 if ((t &
0xf) ===
0) {
27478 if ((t &
0x3) ===
0) {
27482 if ((t &
0x1) ===
0) {
27488 // Return number of used bits in a BN
27489 BN.prototype.bitLength = function bitLength () {
27490 var w = this.words[this.length -
1];
27491 var hi = this._countBits(w);
27492 return (this.length -
1) *
26 + hi;
27495 function toBitArray (num) {
27496 var w = new Array(num.bitLength());
27498 for (var bit =
0; bit < w.length; bit++) {
27499 var off = (bit /
26) |
0;
27500 var wbit = bit %
26;
27502 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
27508 // Number of trailing zero bits
27509 BN.prototype.zeroBits = function zeroBits () {
27510 if (this.isZero()) return
0;
27513 for (var i =
0; i < this.length; i++) {
27514 var b = this._zeroBits(this.words[i]);
27516 if (b !==
26) break;
27521 BN.prototype.byteLength = function byteLength () {
27522 return Math.ceil(this.bitLength() /
8);
27525 BN.prototype.toTwos = function toTwos (width) {
27526 if (this.negative !==
0) {
27527 return this.abs().inotn(width).iaddn(
1);
27529 return this.clone();
27532 BN.prototype.fromTwos = function fromTwos (width) {
27533 if (this.testn(width -
1)) {
27534 return this.notn(width).iaddn(
1).ineg();
27536 return this.clone();
27539 BN.prototype.isNeg = function isNeg () {
27540 return this.negative !==
0;
27543 // Return negative clone of `this`
27544 BN.prototype.neg = function neg () {
27545 return this.clone().ineg();
27548 BN.prototype.ineg = function ineg () {
27549 if (!this.isZero()) {
27550 this.negative ^=
1;
27556 // Or `num` with `this` in-place
27557 BN.prototype.iuor = function iuor (num) {
27558 while (this.length < num.length) {
27559 this.words[this.length++] =
0;
27562 for (var i =
0; i < num.length; i++) {
27563 this.words[i] = this.words[i] | num.words[i];
27566 return this.strip();
27569 BN.prototype.ior = function ior (num) {
27570 assert((this.negative | num.negative) ===
0);
27571 return this.iuor(num);
27574 // Or `num` with `this`
27575 BN.prototype.or = function or (num) {
27576 if (this.length
> num.length) return this.clone().ior(num);
27577 return num.clone().ior(this);
27580 BN.prototype.uor = function uor (num) {
27581 if (this.length
> num.length) return this.clone().iuor(num);
27582 return num.clone().iuor(this);
27585 // And `num` with `this` in-place
27586 BN.prototype.iuand = function iuand (num) {
27587 // b = min-length(num, this)
27589 if (this.length
> num.length) {
27595 for (var i =
0; i < b.length; i++) {
27596 this.words[i] = this.words[i] & num.words[i];
27599 this.length = b.length;
27601 return this.strip();
27604 BN.prototype.iand = function iand (num) {
27605 assert((this.negative | num.negative) ===
0);
27606 return this.iuand(num);
27609 // And `num` with `this`
27610 BN.prototype.and = function and (num) {
27611 if (this.length
> num.length) return this.clone().iand(num);
27612 return num.clone().iand(this);
27615 BN.prototype.uand = function uand (num) {
27616 if (this.length
> num.length) return this.clone().iuand(num);
27617 return num.clone().iuand(this);
27620 // Xor `num` with `this` in-place
27621 BN.prototype.iuxor = function iuxor (num) {
27622 // a.length
> b.length
27625 if (this.length
> num.length) {
27633 for (var i =
0; i < b.length; i++) {
27634 this.words[i] = a.words[i] ^ b.words[i];
27638 for (; i < a.length; i++) {
27639 this.words[i] = a.words[i];
27643 this.length = a.length;
27645 return this.strip();
27648 BN.prototype.ixor = function ixor (num) {
27649 assert((this.negative | num.negative) ===
0);
27650 return this.iuxor(num);
27653 // Xor `num` with `this`
27654 BN.prototype.xor = function xor (num) {
27655 if (this.length
> num.length) return this.clone().ixor(num);
27656 return num.clone().ixor(this);
27659 BN.prototype.uxor = function uxor (num) {
27660 if (this.length
> num.length) return this.clone().iuxor(num);
27661 return num.clone().iuxor(this);
27664 // Not ``this`` with ``width`` bitwidth
27665 BN.prototype.inotn = function inotn (width) {
27666 assert(typeof width === 'number' && width
>=
0);
27668 var bytesNeeded = Math.ceil(width /
26) |
0;
27669 var bitsLeft = width %
26;
27671 // Extend the buffer with leading zeroes
27672 this._expand(bytesNeeded);
27674 if (bitsLeft
> 0) {
27678 // Handle complete words
27679 for (var i =
0; i < bytesNeeded; i++) {
27680 this.words[i] = ~this.words[i] &
0x3ffffff;
27683 // Handle the residue
27684 if (bitsLeft
> 0) {
27685 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
27688 // And remove leading zeroes
27689 return this.strip();
27692 BN.prototype.notn = function notn (width) {
27693 return this.clone().inotn(width);
27696 // Set `bit` of `this`
27697 BN.prototype.setn = function setn (bit, val) {
27698 assert(typeof bit === 'number' && bit
>=
0);
27700 var off = (bit /
26) |
0;
27701 var wbit = bit %
26;
27703 this._expand(off +
1);
27706 this.words[off] = this.words[off] | (
1 << wbit);
27708 this.words[off] = this.words[off] & ~(
1 << wbit);
27711 return this.strip();
27714 // Add `num` to `this` in-place
27715 BN.prototype.iadd = function iadd (num) {
27718 // negative + positive
27719 if (this.negative !==
0 && num.negative ===
0) {
27721 r = this.isub(num);
27722 this.negative ^=
1;
27723 return this._normSign();
27725 // positive + negative
27726 } else if (this.negative ===
0 && num.negative !==
0) {
27728 r = this.isub(num);
27730 return r._normSign();
27733 // a.length
> b.length
27735 if (this.length
> num.length) {
27744 for (var i =
0; i < b.length; i++) {
27745 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
27746 this.words[i] = r &
0x3ffffff;
27749 for (; carry !==
0 && i < a.length; i++) {
27750 r = (a.words[i] |
0) + carry;
27751 this.words[i] = r &
0x3ffffff;
27755 this.length = a.length;
27757 this.words[this.length] = carry;
27759 // Copy the rest of the words
27760 } else if (a !== this) {
27761 for (; i < a.length; i++) {
27762 this.words[i] = a.words[i];
27769 // Add `num` to `this`
27770 BN.prototype.add = function add (num) {
27772 if (num.negative !==
0 && this.negative ===
0) {
27774 res = this.sub(num);
27777 } else if (num.negative ===
0 && this.negative !==
0) {
27779 res = num.sub(this);
27784 if (this.length
> num.length) return this.clone().iadd(num);
27786 return num.clone().iadd(this);
27789 // Subtract `num` from `this` in-place
27790 BN.prototype.isub = function isub (num) {
27791 // this - (-num) = this + num
27792 if (num.negative !==
0) {
27794 var r = this.iadd(num);
27796 return r._normSign();
27798 // -this - num = -(this + num)
27799 } else if (this.negative !==
0) {
27803 return this._normSign();
27806 // At this point both numbers are positive
27807 var cmp = this.cmp(num);
27809 // Optimization - zeroify
27828 for (var i =
0; i < b.length; i++) {
27829 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
27831 this.words[i] = r &
0x3ffffff;
27833 for (; carry !==
0 && i < a.length; i++) {
27834 r = (a.words[i] |
0) + carry;
27836 this.words[i] = r &
0x3ffffff;
27839 // Copy rest of the words
27840 if (carry ===
0 && i < a.length && a !== this) {
27841 for (; i < a.length; i++) {
27842 this.words[i] = a.words[i];
27846 this.length = Math.max(this.length, i);
27852 return this.strip();
27855 // Subtract `num` from `this`
27856 BN.prototype.sub = function sub (num) {
27857 return this.clone().isub(num);
27860 function smallMulTo (self, num, out) {
27861 out.negative = num.negative ^ self.negative;
27862 var len = (self.length + num.length) |
0;
27864 len = (len -
1) |
0;
27866 // Peel one iteration (compiler can't do it, because of code complexity)
27867 var a = self.words[
0] |
0;
27868 var b = num.words[
0] |
0;
27871 var lo = r &
0x3ffffff;
27872 var carry = (r /
0x4000000) |
0;
27875 for (var k =
1; k < len; k++) {
27876 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
27877 // note that ncarry could be
>=
0x3ffffff
27878 var ncarry = carry
>>> 26;
27879 var rword = carry &
0x3ffffff;
27880 var maxJ = Math.min(k, num.length -
1);
27881 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
27882 var i = (k - j) |
0;
27883 a = self.words[i] |
0;
27884 b = num.words[j] |
0;
27886 ncarry += (r /
0x4000000) |
0;
27887 rword = r &
0x3ffffff;
27889 out.words[k] = rword |
0;
27890 carry = ncarry |
0;
27893 out.words[k] = carry |
0;
27898 return out.strip();
27901 // TODO(indutny): it may be reasonable to omit it for users who don't need
27902 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
27903 // multiplication (like elliptic secp256k1).
27904 var comb10MulTo = function comb10MulTo (self, num, out) {
27905 var a = self.words;
27913 var al0 = a0 &
0x1fff;
27914 var ah0 = a0
>>> 13;
27916 var al1 = a1 &
0x1fff;
27917 var ah1 = a1
>>> 13;
27919 var al2 = a2 &
0x1fff;
27920 var ah2 = a2
>>> 13;
27922 var al3 = a3 &
0x1fff;
27923 var ah3 = a3
>>> 13;
27925 var al4 = a4 &
0x1fff;
27926 var ah4 = a4
>>> 13;
27928 var al5 = a5 &
0x1fff;
27929 var ah5 = a5
>>> 13;
27931 var al6 = a6 &
0x1fff;
27932 var ah6 = a6
>>> 13;
27934 var al7 = a7 &
0x1fff;
27935 var ah7 = a7
>>> 13;
27937 var al8 = a8 &
0x1fff;
27938 var ah8 = a8
>>> 13;
27940 var al9 = a9 &
0x1fff;
27941 var ah9 = a9
>>> 13;
27943 var bl0 = b0 &
0x1fff;
27944 var bh0 = b0
>>> 13;
27946 var bl1 = b1 &
0x1fff;
27947 var bh1 = b1
>>> 13;
27949 var bl2 = b2 &
0x1fff;
27950 var bh2 = b2
>>> 13;
27952 var bl3 = b3 &
0x1fff;
27953 var bh3 = b3
>>> 13;
27955 var bl4 = b4 &
0x1fff;
27956 var bh4 = b4
>>> 13;
27958 var bl5 = b5 &
0x1fff;
27959 var bh5 = b5
>>> 13;
27961 var bl6 = b6 &
0x1fff;
27962 var bh6 = b6
>>> 13;
27964 var bl7 = b7 &
0x1fff;
27965 var bh7 = b7
>>> 13;
27967 var bl8 = b8 &
0x1fff;
27968 var bh8 = b8
>>> 13;
27970 var bl9 = b9 &
0x1fff;
27971 var bh9 = b9
>>> 13;
27973 out.negative = self.negative ^ num.negative;
27976 lo = Math.imul(al0, bl0);
27977 mid = Math.imul(al0, bh0);
27978 mid = (mid + Math.imul(ah0, bl0)) |
0;
27979 hi = Math.imul(ah0, bh0);
27980 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
27981 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
27984 lo = Math.imul(al1, bl0);
27985 mid = Math.imul(al1, bh0);
27986 mid = (mid + Math.imul(ah1, bl0)) |
0;
27987 hi = Math.imul(ah1, bh0);
27988 lo = (lo + Math.imul(al0, bl1)) |
0;
27989 mid = (mid + Math.imul(al0, bh1)) |
0;
27990 mid = (mid + Math.imul(ah0, bl1)) |
0;
27991 hi = (hi + Math.imul(ah0, bh1)) |
0;
27992 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
27993 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
27996 lo = Math.imul(al2, bl0);
27997 mid = Math.imul(al2, bh0);
27998 mid = (mid + Math.imul(ah2, bl0)) |
0;
27999 hi = Math.imul(ah2, bh0);
28000 lo = (lo + Math.imul(al1, bl1)) |
0;
28001 mid = (mid + Math.imul(al1, bh1)) |
0;
28002 mid = (mid + Math.imul(ah1, bl1)) |
0;
28003 hi = (hi + Math.imul(ah1, bh1)) |
0;
28004 lo = (lo + Math.imul(al0, bl2)) |
0;
28005 mid = (mid + Math.imul(al0, bh2)) |
0;
28006 mid = (mid + Math.imul(ah0, bl2)) |
0;
28007 hi = (hi + Math.imul(ah0, bh2)) |
0;
28008 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28009 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
28012 lo = Math.imul(al3, bl0);
28013 mid = Math.imul(al3, bh0);
28014 mid = (mid + Math.imul(ah3, bl0)) |
0;
28015 hi = Math.imul(ah3, bh0);
28016 lo = (lo + Math.imul(al2, bl1)) |
0;
28017 mid = (mid + Math.imul(al2, bh1)) |
0;
28018 mid = (mid + Math.imul(ah2, bl1)) |
0;
28019 hi = (hi + Math.imul(ah2, bh1)) |
0;
28020 lo = (lo + Math.imul(al1, bl2)) |
0;
28021 mid = (mid + Math.imul(al1, bh2)) |
0;
28022 mid = (mid + Math.imul(ah1, bl2)) |
0;
28023 hi = (hi + Math.imul(ah1, bh2)) |
0;
28024 lo = (lo + Math.imul(al0, bl3)) |
0;
28025 mid = (mid + Math.imul(al0, bh3)) |
0;
28026 mid = (mid + Math.imul(ah0, bl3)) |
0;
28027 hi = (hi + Math.imul(ah0, bh3)) |
0;
28028 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28029 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
28032 lo = Math.imul(al4, bl0);
28033 mid = Math.imul(al4, bh0);
28034 mid = (mid + Math.imul(ah4, bl0)) |
0;
28035 hi = Math.imul(ah4, bh0);
28036 lo = (lo + Math.imul(al3, bl1)) |
0;
28037 mid = (mid + Math.imul(al3, bh1)) |
0;
28038 mid = (mid + Math.imul(ah3, bl1)) |
0;
28039 hi = (hi + Math.imul(ah3, bh1)) |
0;
28040 lo = (lo + Math.imul(al2, bl2)) |
0;
28041 mid = (mid + Math.imul(al2, bh2)) |
0;
28042 mid = (mid + Math.imul(ah2, bl2)) |
0;
28043 hi = (hi + Math.imul(ah2, bh2)) |
0;
28044 lo = (lo + Math.imul(al1, bl3)) |
0;
28045 mid = (mid + Math.imul(al1, bh3)) |
0;
28046 mid = (mid + Math.imul(ah1, bl3)) |
0;
28047 hi = (hi + Math.imul(ah1, bh3)) |
0;
28048 lo = (lo + Math.imul(al0, bl4)) |
0;
28049 mid = (mid + Math.imul(al0, bh4)) |
0;
28050 mid = (mid + Math.imul(ah0, bl4)) |
0;
28051 hi = (hi + Math.imul(ah0, bh4)) |
0;
28052 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28053 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
28056 lo = Math.imul(al5, bl0);
28057 mid = Math.imul(al5, bh0);
28058 mid = (mid + Math.imul(ah5, bl0)) |
0;
28059 hi = Math.imul(ah5, bh0);
28060 lo = (lo + Math.imul(al4, bl1)) |
0;
28061 mid = (mid + Math.imul(al4, bh1)) |
0;
28062 mid = (mid + Math.imul(ah4, bl1)) |
0;
28063 hi = (hi + Math.imul(ah4, bh1)) |
0;
28064 lo = (lo + Math.imul(al3, bl2)) |
0;
28065 mid = (mid + Math.imul(al3, bh2)) |
0;
28066 mid = (mid + Math.imul(ah3, bl2)) |
0;
28067 hi = (hi + Math.imul(ah3, bh2)) |
0;
28068 lo = (lo + Math.imul(al2, bl3)) |
0;
28069 mid = (mid + Math.imul(al2, bh3)) |
0;
28070 mid = (mid + Math.imul(ah2, bl3)) |
0;
28071 hi = (hi + Math.imul(ah2, bh3)) |
0;
28072 lo = (lo + Math.imul(al1, bl4)) |
0;
28073 mid = (mid + Math.imul(al1, bh4)) |
0;
28074 mid = (mid + Math.imul(ah1, bl4)) |
0;
28075 hi = (hi + Math.imul(ah1, bh4)) |
0;
28076 lo = (lo + Math.imul(al0, bl5)) |
0;
28077 mid = (mid + Math.imul(al0, bh5)) |
0;
28078 mid = (mid + Math.imul(ah0, bl5)) |
0;
28079 hi = (hi + Math.imul(ah0, bh5)) |
0;
28080 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28081 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
28084 lo = Math.imul(al6, bl0);
28085 mid = Math.imul(al6, bh0);
28086 mid = (mid + Math.imul(ah6, bl0)) |
0;
28087 hi = Math.imul(ah6, bh0);
28088 lo = (lo + Math.imul(al5, bl1)) |
0;
28089 mid = (mid + Math.imul(al5, bh1)) |
0;
28090 mid = (mid + Math.imul(ah5, bl1)) |
0;
28091 hi = (hi + Math.imul(ah5, bh1)) |
0;
28092 lo = (lo + Math.imul(al4, bl2)) |
0;
28093 mid = (mid + Math.imul(al4, bh2)) |
0;
28094 mid = (mid + Math.imul(ah4, bl2)) |
0;
28095 hi = (hi + Math.imul(ah4, bh2)) |
0;
28096 lo = (lo + Math.imul(al3, bl3)) |
0;
28097 mid = (mid + Math.imul(al3, bh3)) |
0;
28098 mid = (mid + Math.imul(ah3, bl3)) |
0;
28099 hi = (hi + Math.imul(ah3, bh3)) |
0;
28100 lo = (lo + Math.imul(al2, bl4)) |
0;
28101 mid = (mid + Math.imul(al2, bh4)) |
0;
28102 mid = (mid + Math.imul(ah2, bl4)) |
0;
28103 hi = (hi + Math.imul(ah2, bh4)) |
0;
28104 lo = (lo + Math.imul(al1, bl5)) |
0;
28105 mid = (mid + Math.imul(al1, bh5)) |
0;
28106 mid = (mid + Math.imul(ah1, bl5)) |
0;
28107 hi = (hi + Math.imul(ah1, bh5)) |
0;
28108 lo = (lo + Math.imul(al0, bl6)) |
0;
28109 mid = (mid + Math.imul(al0, bh6)) |
0;
28110 mid = (mid + Math.imul(ah0, bl6)) |
0;
28111 hi = (hi + Math.imul(ah0, bh6)) |
0;
28112 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28113 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
28116 lo = Math.imul(al7, bl0);
28117 mid = Math.imul(al7, bh0);
28118 mid = (mid + Math.imul(ah7, bl0)) |
0;
28119 hi = Math.imul(ah7, bh0);
28120 lo = (lo + Math.imul(al6, bl1)) |
0;
28121 mid = (mid + Math.imul(al6, bh1)) |
0;
28122 mid = (mid + Math.imul(ah6, bl1)) |
0;
28123 hi = (hi + Math.imul(ah6, bh1)) |
0;
28124 lo = (lo + Math.imul(al5, bl2)) |
0;
28125 mid = (mid + Math.imul(al5, bh2)) |
0;
28126 mid = (mid + Math.imul(ah5, bl2)) |
0;
28127 hi = (hi + Math.imul(ah5, bh2)) |
0;
28128 lo = (lo + Math.imul(al4, bl3)) |
0;
28129 mid = (mid + Math.imul(al4, bh3)) |
0;
28130 mid = (mid + Math.imul(ah4, bl3)) |
0;
28131 hi = (hi + Math.imul(ah4, bh3)) |
0;
28132 lo = (lo + Math.imul(al3, bl4)) |
0;
28133 mid = (mid + Math.imul(al3, bh4)) |
0;
28134 mid = (mid + Math.imul(ah3, bl4)) |
0;
28135 hi = (hi + Math.imul(ah3, bh4)) |
0;
28136 lo = (lo + Math.imul(al2, bl5)) |
0;
28137 mid = (mid + Math.imul(al2, bh5)) |
0;
28138 mid = (mid + Math.imul(ah2, bl5)) |
0;
28139 hi = (hi + Math.imul(ah2, bh5)) |
0;
28140 lo = (lo + Math.imul(al1, bl6)) |
0;
28141 mid = (mid + Math.imul(al1, bh6)) |
0;
28142 mid = (mid + Math.imul(ah1, bl6)) |
0;
28143 hi = (hi + Math.imul(ah1, bh6)) |
0;
28144 lo = (lo + Math.imul(al0, bl7)) |
0;
28145 mid = (mid + Math.imul(al0, bh7)) |
0;
28146 mid = (mid + Math.imul(ah0, bl7)) |
0;
28147 hi = (hi + Math.imul(ah0, bh7)) |
0;
28148 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28149 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
28152 lo = Math.imul(al8, bl0);
28153 mid = Math.imul(al8, bh0);
28154 mid = (mid + Math.imul(ah8, bl0)) |
0;
28155 hi = Math.imul(ah8, bh0);
28156 lo = (lo + Math.imul(al7, bl1)) |
0;
28157 mid = (mid + Math.imul(al7, bh1)) |
0;
28158 mid = (mid + Math.imul(ah7, bl1)) |
0;
28159 hi = (hi + Math.imul(ah7, bh1)) |
0;
28160 lo = (lo + Math.imul(al6, bl2)) |
0;
28161 mid = (mid + Math.imul(al6, bh2)) |
0;
28162 mid = (mid + Math.imul(ah6, bl2)) |
0;
28163 hi = (hi + Math.imul(ah6, bh2)) |
0;
28164 lo = (lo + Math.imul(al5, bl3)) |
0;
28165 mid = (mid + Math.imul(al5, bh3)) |
0;
28166 mid = (mid + Math.imul(ah5, bl3)) |
0;
28167 hi = (hi + Math.imul(ah5, bh3)) |
0;
28168 lo = (lo + Math.imul(al4, bl4)) |
0;
28169 mid = (mid + Math.imul(al4, bh4)) |
0;
28170 mid = (mid + Math.imul(ah4, bl4)) |
0;
28171 hi = (hi + Math.imul(ah4, bh4)) |
0;
28172 lo = (lo + Math.imul(al3, bl5)) |
0;
28173 mid = (mid + Math.imul(al3, bh5)) |
0;
28174 mid = (mid + Math.imul(ah3, bl5)) |
0;
28175 hi = (hi + Math.imul(ah3, bh5)) |
0;
28176 lo = (lo + Math.imul(al2, bl6)) |
0;
28177 mid = (mid + Math.imul(al2, bh6)) |
0;
28178 mid = (mid + Math.imul(ah2, bl6)) |
0;
28179 hi = (hi + Math.imul(ah2, bh6)) |
0;
28180 lo = (lo + Math.imul(al1, bl7)) |
0;
28181 mid = (mid + Math.imul(al1, bh7)) |
0;
28182 mid = (mid + Math.imul(ah1, bl7)) |
0;
28183 hi = (hi + Math.imul(ah1, bh7)) |
0;
28184 lo = (lo + Math.imul(al0, bl8)) |
0;
28185 mid = (mid + Math.imul(al0, bh8)) |
0;
28186 mid = (mid + Math.imul(ah0, bl8)) |
0;
28187 hi = (hi + Math.imul(ah0, bh8)) |
0;
28188 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28189 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
28192 lo = Math.imul(al9, bl0);
28193 mid = Math.imul(al9, bh0);
28194 mid = (mid + Math.imul(ah9, bl0)) |
0;
28195 hi = Math.imul(ah9, bh0);
28196 lo = (lo + Math.imul(al8, bl1)) |
0;
28197 mid = (mid + Math.imul(al8, bh1)) |
0;
28198 mid = (mid + Math.imul(ah8, bl1)) |
0;
28199 hi = (hi + Math.imul(ah8, bh1)) |
0;
28200 lo = (lo + Math.imul(al7, bl2)) |
0;
28201 mid = (mid + Math.imul(al7, bh2)) |
0;
28202 mid = (mid + Math.imul(ah7, bl2)) |
0;
28203 hi = (hi + Math.imul(ah7, bh2)) |
0;
28204 lo = (lo + Math.imul(al6, bl3)) |
0;
28205 mid = (mid + Math.imul(al6, bh3)) |
0;
28206 mid = (mid + Math.imul(ah6, bl3)) |
0;
28207 hi = (hi + Math.imul(ah6, bh3)) |
0;
28208 lo = (lo + Math.imul(al5, bl4)) |
0;
28209 mid = (mid + Math.imul(al5, bh4)) |
0;
28210 mid = (mid + Math.imul(ah5, bl4)) |
0;
28211 hi = (hi + Math.imul(ah5, bh4)) |
0;
28212 lo = (lo + Math.imul(al4, bl5)) |
0;
28213 mid = (mid + Math.imul(al4, bh5)) |
0;
28214 mid = (mid + Math.imul(ah4, bl5)) |
0;
28215 hi = (hi + Math.imul(ah4, bh5)) |
0;
28216 lo = (lo + Math.imul(al3, bl6)) |
0;
28217 mid = (mid + Math.imul(al3, bh6)) |
0;
28218 mid = (mid + Math.imul(ah3, bl6)) |
0;
28219 hi = (hi + Math.imul(ah3, bh6)) |
0;
28220 lo = (lo + Math.imul(al2, bl7)) |
0;
28221 mid = (mid + Math.imul(al2, bh7)) |
0;
28222 mid = (mid + Math.imul(ah2, bl7)) |
0;
28223 hi = (hi + Math.imul(ah2, bh7)) |
0;
28224 lo = (lo + Math.imul(al1, bl8)) |
0;
28225 mid = (mid + Math.imul(al1, bh8)) |
0;
28226 mid = (mid + Math.imul(ah1, bl8)) |
0;
28227 hi = (hi + Math.imul(ah1, bh8)) |
0;
28228 lo = (lo + Math.imul(al0, bl9)) |
0;
28229 mid = (mid + Math.imul(al0, bh9)) |
0;
28230 mid = (mid + Math.imul(ah0, bl9)) |
0;
28231 hi = (hi + Math.imul(ah0, bh9)) |
0;
28232 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28233 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
28236 lo = Math.imul(al9, bl1);
28237 mid = Math.imul(al9, bh1);
28238 mid = (mid + Math.imul(ah9, bl1)) |
0;
28239 hi = Math.imul(ah9, bh1);
28240 lo = (lo + Math.imul(al8, bl2)) |
0;
28241 mid = (mid + Math.imul(al8, bh2)) |
0;
28242 mid = (mid + Math.imul(ah8, bl2)) |
0;
28243 hi = (hi + Math.imul(ah8, bh2)) |
0;
28244 lo = (lo + Math.imul(al7, bl3)) |
0;
28245 mid = (mid + Math.imul(al7, bh3)) |
0;
28246 mid = (mid + Math.imul(ah7, bl3)) |
0;
28247 hi = (hi + Math.imul(ah7, bh3)) |
0;
28248 lo = (lo + Math.imul(al6, bl4)) |
0;
28249 mid = (mid + Math.imul(al6, bh4)) |
0;
28250 mid = (mid + Math.imul(ah6, bl4)) |
0;
28251 hi = (hi + Math.imul(ah6, bh4)) |
0;
28252 lo = (lo + Math.imul(al5, bl5)) |
0;
28253 mid = (mid + Math.imul(al5, bh5)) |
0;
28254 mid = (mid + Math.imul(ah5, bl5)) |
0;
28255 hi = (hi + Math.imul(ah5, bh5)) |
0;
28256 lo = (lo + Math.imul(al4, bl6)) |
0;
28257 mid = (mid + Math.imul(al4, bh6)) |
0;
28258 mid = (mid + Math.imul(ah4, bl6)) |
0;
28259 hi = (hi + Math.imul(ah4, bh6)) |
0;
28260 lo = (lo + Math.imul(al3, bl7)) |
0;
28261 mid = (mid + Math.imul(al3, bh7)) |
0;
28262 mid = (mid + Math.imul(ah3, bl7)) |
0;
28263 hi = (hi + Math.imul(ah3, bh7)) |
0;
28264 lo = (lo + Math.imul(al2, bl8)) |
0;
28265 mid = (mid + Math.imul(al2, bh8)) |
0;
28266 mid = (mid + Math.imul(ah2, bl8)) |
0;
28267 hi = (hi + Math.imul(ah2, bh8)) |
0;
28268 lo = (lo + Math.imul(al1, bl9)) |
0;
28269 mid = (mid + Math.imul(al1, bh9)) |
0;
28270 mid = (mid + Math.imul(ah1, bl9)) |
0;
28271 hi = (hi + Math.imul(ah1, bh9)) |
0;
28272 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28273 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
28276 lo = Math.imul(al9, bl2);
28277 mid = Math.imul(al9, bh2);
28278 mid = (mid + Math.imul(ah9, bl2)) |
0;
28279 hi = Math.imul(ah9, bh2);
28280 lo = (lo + Math.imul(al8, bl3)) |
0;
28281 mid = (mid + Math.imul(al8, bh3)) |
0;
28282 mid = (mid + Math.imul(ah8, bl3)) |
0;
28283 hi = (hi + Math.imul(ah8, bh3)) |
0;
28284 lo = (lo + Math.imul(al7, bl4)) |
0;
28285 mid = (mid + Math.imul(al7, bh4)) |
0;
28286 mid = (mid + Math.imul(ah7, bl4)) |
0;
28287 hi = (hi + Math.imul(ah7, bh4)) |
0;
28288 lo = (lo + Math.imul(al6, bl5)) |
0;
28289 mid = (mid + Math.imul(al6, bh5)) |
0;
28290 mid = (mid + Math.imul(ah6, bl5)) |
0;
28291 hi = (hi + Math.imul(ah6, bh5)) |
0;
28292 lo = (lo + Math.imul(al5, bl6)) |
0;
28293 mid = (mid + Math.imul(al5, bh6)) |
0;
28294 mid = (mid + Math.imul(ah5, bl6)) |
0;
28295 hi = (hi + Math.imul(ah5, bh6)) |
0;
28296 lo = (lo + Math.imul(al4, bl7)) |
0;
28297 mid = (mid + Math.imul(al4, bh7)) |
0;
28298 mid = (mid + Math.imul(ah4, bl7)) |
0;
28299 hi = (hi + Math.imul(ah4, bh7)) |
0;
28300 lo = (lo + Math.imul(al3, bl8)) |
0;
28301 mid = (mid + Math.imul(al3, bh8)) |
0;
28302 mid = (mid + Math.imul(ah3, bl8)) |
0;
28303 hi = (hi + Math.imul(ah3, bh8)) |
0;
28304 lo = (lo + Math.imul(al2, bl9)) |
0;
28305 mid = (mid + Math.imul(al2, bh9)) |
0;
28306 mid = (mid + Math.imul(ah2, bl9)) |
0;
28307 hi = (hi + Math.imul(ah2, bh9)) |
0;
28308 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28309 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
28312 lo = Math.imul(al9, bl3);
28313 mid = Math.imul(al9, bh3);
28314 mid = (mid + Math.imul(ah9, bl3)) |
0;
28315 hi = Math.imul(ah9, bh3);
28316 lo = (lo + Math.imul(al8, bl4)) |
0;
28317 mid = (mid + Math.imul(al8, bh4)) |
0;
28318 mid = (mid + Math.imul(ah8, bl4)) |
0;
28319 hi = (hi + Math.imul(ah8, bh4)) |
0;
28320 lo = (lo + Math.imul(al7, bl5)) |
0;
28321 mid = (mid + Math.imul(al7, bh5)) |
0;
28322 mid = (mid + Math.imul(ah7, bl5)) |
0;
28323 hi = (hi + Math.imul(ah7, bh5)) |
0;
28324 lo = (lo + Math.imul(al6, bl6)) |
0;
28325 mid = (mid + Math.imul(al6, bh6)) |
0;
28326 mid = (mid + Math.imul(ah6, bl6)) |
0;
28327 hi = (hi + Math.imul(ah6, bh6)) |
0;
28328 lo = (lo + Math.imul(al5, bl7)) |
0;
28329 mid = (mid + Math.imul(al5, bh7)) |
0;
28330 mid = (mid + Math.imul(ah5, bl7)) |
0;
28331 hi = (hi + Math.imul(ah5, bh7)) |
0;
28332 lo = (lo + Math.imul(al4, bl8)) |
0;
28333 mid = (mid + Math.imul(al4, bh8)) |
0;
28334 mid = (mid + Math.imul(ah4, bl8)) |
0;
28335 hi = (hi + Math.imul(ah4, bh8)) |
0;
28336 lo = (lo + Math.imul(al3, bl9)) |
0;
28337 mid = (mid + Math.imul(al3, bh9)) |
0;
28338 mid = (mid + Math.imul(ah3, bl9)) |
0;
28339 hi = (hi + Math.imul(ah3, bh9)) |
0;
28340 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28341 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
28344 lo = Math.imul(al9, bl4);
28345 mid = Math.imul(al9, bh4);
28346 mid = (mid + Math.imul(ah9, bl4)) |
0;
28347 hi = Math.imul(ah9, bh4);
28348 lo = (lo + Math.imul(al8, bl5)) |
0;
28349 mid = (mid + Math.imul(al8, bh5)) |
0;
28350 mid = (mid + Math.imul(ah8, bl5)) |
0;
28351 hi = (hi + Math.imul(ah8, bh5)) |
0;
28352 lo = (lo + Math.imul(al7, bl6)) |
0;
28353 mid = (mid + Math.imul(al7, bh6)) |
0;
28354 mid = (mid + Math.imul(ah7, bl6)) |
0;
28355 hi = (hi + Math.imul(ah7, bh6)) |
0;
28356 lo = (lo + Math.imul(al6, bl7)) |
0;
28357 mid = (mid + Math.imul(al6, bh7)) |
0;
28358 mid = (mid + Math.imul(ah6, bl7)) |
0;
28359 hi = (hi + Math.imul(ah6, bh7)) |
0;
28360 lo = (lo + Math.imul(al5, bl8)) |
0;
28361 mid = (mid + Math.imul(al5, bh8)) |
0;
28362 mid = (mid + Math.imul(ah5, bl8)) |
0;
28363 hi = (hi + Math.imul(ah5, bh8)) |
0;
28364 lo = (lo + Math.imul(al4, bl9)) |
0;
28365 mid = (mid + Math.imul(al4, bh9)) |
0;
28366 mid = (mid + Math.imul(ah4, bl9)) |
0;
28367 hi = (hi + Math.imul(ah4, bh9)) |
0;
28368 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28369 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
28372 lo = Math.imul(al9, bl5);
28373 mid = Math.imul(al9, bh5);
28374 mid = (mid + Math.imul(ah9, bl5)) |
0;
28375 hi = Math.imul(ah9, bh5);
28376 lo = (lo + Math.imul(al8, bl6)) |
0;
28377 mid = (mid + Math.imul(al8, bh6)) |
0;
28378 mid = (mid + Math.imul(ah8, bl6)) |
0;
28379 hi = (hi + Math.imul(ah8, bh6)) |
0;
28380 lo = (lo + Math.imul(al7, bl7)) |
0;
28381 mid = (mid + Math.imul(al7, bh7)) |
0;
28382 mid = (mid + Math.imul(ah7, bl7)) |
0;
28383 hi = (hi + Math.imul(ah7, bh7)) |
0;
28384 lo = (lo + Math.imul(al6, bl8)) |
0;
28385 mid = (mid + Math.imul(al6, bh8)) |
0;
28386 mid = (mid + Math.imul(ah6, bl8)) |
0;
28387 hi = (hi + Math.imul(ah6, bh8)) |
0;
28388 lo = (lo + Math.imul(al5, bl9)) |
0;
28389 mid = (mid + Math.imul(al5, bh9)) |
0;
28390 mid = (mid + Math.imul(ah5, bl9)) |
0;
28391 hi = (hi + Math.imul(ah5, bh9)) |
0;
28392 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28393 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
28396 lo = Math.imul(al9, bl6);
28397 mid = Math.imul(al9, bh6);
28398 mid = (mid + Math.imul(ah9, bl6)) |
0;
28399 hi = Math.imul(ah9, bh6);
28400 lo = (lo + Math.imul(al8, bl7)) |
0;
28401 mid = (mid + Math.imul(al8, bh7)) |
0;
28402 mid = (mid + Math.imul(ah8, bl7)) |
0;
28403 hi = (hi + Math.imul(ah8, bh7)) |
0;
28404 lo = (lo + Math.imul(al7, bl8)) |
0;
28405 mid = (mid + Math.imul(al7, bh8)) |
0;
28406 mid = (mid + Math.imul(ah7, bl8)) |
0;
28407 hi = (hi + Math.imul(ah7, bh8)) |
0;
28408 lo = (lo + Math.imul(al6, bl9)) |
0;
28409 mid = (mid + Math.imul(al6, bh9)) |
0;
28410 mid = (mid + Math.imul(ah6, bl9)) |
0;
28411 hi = (hi + Math.imul(ah6, bh9)) |
0;
28412 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28413 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
28416 lo = Math.imul(al9, bl7);
28417 mid = Math.imul(al9, bh7);
28418 mid = (mid + Math.imul(ah9, bl7)) |
0;
28419 hi = Math.imul(ah9, bh7);
28420 lo = (lo + Math.imul(al8, bl8)) |
0;
28421 mid = (mid + Math.imul(al8, bh8)) |
0;
28422 mid = (mid + Math.imul(ah8, bl8)) |
0;
28423 hi = (hi + Math.imul(ah8, bh8)) |
0;
28424 lo = (lo + Math.imul(al7, bl9)) |
0;
28425 mid = (mid + Math.imul(al7, bh9)) |
0;
28426 mid = (mid + Math.imul(ah7, bl9)) |
0;
28427 hi = (hi + Math.imul(ah7, bh9)) |
0;
28428 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28429 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
28432 lo = Math.imul(al9, bl8);
28433 mid = Math.imul(al9, bh8);
28434 mid = (mid + Math.imul(ah9, bl8)) |
0;
28435 hi = Math.imul(ah9, bh8);
28436 lo = (lo + Math.imul(al8, bl9)) |
0;
28437 mid = (mid + Math.imul(al8, bh9)) |
0;
28438 mid = (mid + Math.imul(ah8, bl9)) |
0;
28439 hi = (hi + Math.imul(ah8, bh9)) |
0;
28440 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28441 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
28444 lo = Math.imul(al9, bl9);
28445 mid = Math.imul(al9, bh9);
28446 mid = (mid + Math.imul(ah9, bl9)) |
0;
28447 hi = Math.imul(ah9, bh9);
28448 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28449 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
28479 comb10MulTo = smallMulTo;
28482 function bigMulTo (self, num, out) {
28483 out.negative = num.negative ^ self.negative;
28484 out.length = self.length + num.length;
28488 for (var k =
0; k < out.length -
1; k++) {
28489 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
28490 // note that ncarry could be
>=
0x3ffffff
28491 var ncarry = hncarry;
28493 var rword = carry &
0x3ffffff;
28494 var maxJ = Math.min(k, num.length -
1);
28495 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
28497 var a = self.words[i] |
0;
28498 var b = num.words[j] |
0;
28501 var lo = r &
0x3ffffff;
28502 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
28503 lo = (lo + rword) |
0;
28504 rword = lo &
0x3ffffff;
28505 ncarry = (ncarry + (lo
>>> 26)) |
0;
28507 hncarry += ncarry
>>> 26;
28508 ncarry &=
0x3ffffff;
28510 out.words[k] = rword;
28515 out.words[k] = carry;
28520 return out.strip();
28523 function jumboMulTo (self, num, out) {
28524 var fftm = new FFTM();
28525 return fftm.mulp(self, num, out);
28528 BN.prototype.mulTo = function mulTo (num, out) {
28530 var len = this.length + num.length;
28531 if (this.length ===
10 && num.length ===
10) {
28532 res = comb10MulTo(this, num, out);
28533 } else if (len <
63) {
28534 res = smallMulTo(this, num, out);
28535 } else if (len <
1024) {
28536 res = bigMulTo(this, num, out);
28538 res = jumboMulTo(this, num, out);
28544 // Cooley-Tukey algorithm for FFT
28545 // slightly revisited to rely on looping instead of recursion
28547 function FFTM (x, y) {
28552 FFTM.prototype.makeRBT = function makeRBT (N) {
28553 var t = new Array(N);
28554 var l = BN.prototype._countBits(N) -
1;
28555 for (var i =
0; i < N; i++) {
28556 t[i] = this.revBin(i, l, N);
28562 // Returns binary-reversed representation of `x`
28563 FFTM.prototype.revBin = function revBin (x, l, N) {
28564 if (x ===
0 || x === N -
1) return x;
28567 for (var i =
0; i < l; i++) {
28568 rb |= (x &
1) << (l - i -
1);
28575 // Performs "tweedling" phase, therefore 'emulating'
28576 // behaviour of the recursive algorithm
28577 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
28578 for (var i =
0; i < N; i++) {
28579 rtws[i] = rws[rbt[i]];
28580 itws[i] = iws[rbt[i]];
28584 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
28585 this.permute(rbt, rws, iws, rtws, itws, N);
28587 for (var s =
1; s < N; s <<=
1) {
28590 var rtwdf = Math.cos(
2 * Math.PI / l);
28591 var itwdf = Math.sin(
2 * Math.PI / l);
28593 for (var p =
0; p < N; p += l) {
28594 var rtwdf_ = rtwdf;
28595 var itwdf_ = itwdf;
28597 for (var j =
0; j < s; j++) {
28598 var re = rtws[p + j];
28599 var ie = itws[p + j];
28601 var ro = rtws[p + j + s];
28602 var io = itws[p + j + s];
28604 var rx = rtwdf_ * ro - itwdf_ * io;
28606 io = rtwdf_ * io + itwdf_ * ro;
28609 rtws[p + j] = re + ro;
28610 itws[p + j] = ie + io;
28612 rtws[p + j + s] = re - ro;
28613 itws[p + j + s] = ie - io;
28615 /* jshint maxdepth : false */
28617 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
28619 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
28627 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
28628 var N = Math.max(m, n) |
1;
28631 for (N = N /
2 |
0; N; N = N
>>> 1) {
28635 return
1 << i +
1 + odd;
28638 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
28639 if (N <=
1) return;
28641 for (var i =
0; i < N /
2; i++) {
28644 rws[i] = rws[N - i -
1];
28645 rws[N - i -
1] = t;
28649 iws[i] = -iws[N - i -
1];
28650 iws[N - i -
1] = -t;
28654 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
28656 for (var i =
0; i < N /
2; i++) {
28657 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
28658 Math.round(ws[
2 * i] / N) +
28661 ws[i] = w &
0x3ffffff;
28663 if (w <
0x4000000) {
28666 carry = w /
0x4000000 |
0;
28673 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
28675 for (var i =
0; i < len; i++) {
28676 carry = carry + (ws[i] |
0);
28678 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
28679 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
28683 for (i =
2 * len; i < N; ++i) {
28687 assert(carry ===
0);
28688 assert((carry & ~
0x1fff) ===
0);
28691 FFTM.prototype.stub = function stub (N) {
28692 var ph = new Array(N);
28693 for (var i =
0; i < N; i++) {
28700 FFTM.prototype.mulp = function mulp (x, y, out) {
28701 var N =
2 * this.guessLen13b(x.length, y.length);
28703 var rbt = this.makeRBT(N);
28705 var _ = this.stub(N);
28707 var rws = new Array(N);
28708 var rwst = new Array(N);
28709 var iwst = new Array(N);
28711 var nrws = new Array(N);
28712 var nrwst = new Array(N);
28713 var niwst = new Array(N);
28715 var rmws = out.words;
28718 this.convert13b(x.words, x.length, rws, N);
28719 this.convert13b(y.words, y.length, nrws, N);
28721 this.transform(rws, _, rwst, iwst, N, rbt);
28722 this.transform(nrws, _, nrwst, niwst, N, rbt);
28724 for (var i =
0; i < N; i++) {
28725 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
28726 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
28730 this.conjugate(rwst, iwst, N);
28731 this.transform(rwst, iwst, rmws, _, N, rbt);
28732 this.conjugate(rmws, _, N);
28733 this.normalize13b(rmws, N);
28735 out.negative = x.negative ^ y.negative;
28736 out.length = x.length + y.length;
28737 return out.strip();
28740 // Multiply `this` by `num`
28741 BN.prototype.mul = function mul (num) {
28742 var out = new BN(null);
28743 out.words = new Array(this.length + num.length);
28744 return this.mulTo(num, out);
28747 // Multiply employing FFT
28748 BN.prototype.mulf = function mulf (num) {
28749 var out = new BN(null);
28750 out.words = new Array(this.length + num.length);
28751 return jumboMulTo(this, num, out);
28754 // In-place Multiplication
28755 BN.prototype.imul = function imul (num) {
28756 return this.clone().mulTo(num, this);
28759 BN.prototype.imuln = function imuln (num) {
28760 assert(typeof num === 'number');
28761 assert(num <
0x4000000);
28765 for (var i =
0; i < this.length; i++) {
28766 var w = (this.words[i] |
0) * num;
28767 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
28769 carry += (w /
0x4000000) |
0;
28770 // NOTE: lo is
27bit maximum
28771 carry += lo
>>> 26;
28772 this.words[i] = lo &
0x3ffffff;
28776 this.words[i] = carry;
28783 BN.prototype.muln = function muln (num) {
28784 return this.clone().imuln(num);
28788 BN.prototype.sqr = function sqr () {
28789 return this.mul(this);
28792 // `this` * `this` in-place
28793 BN.prototype.isqr = function isqr () {
28794 return this.imul(this.clone());
28797 // Math.pow(`this`, `num`)
28798 BN.prototype.pow = function pow (num) {
28799 var w = toBitArray(num);
28800 if (w.length ===
0) return new BN(
1);
28802 // Skip leading zeroes
28804 for (var i =
0; i < w.length; i++, res = res.sqr()) {
28805 if (w[i] !==
0) break;
28808 if (++i < w.length) {
28809 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
28810 if (w[i] ===
0) continue;
28819 // Shift-left in-place
28820 BN.prototype.iushln = function iushln (bits) {
28821 assert(typeof bits === 'number' && bits
>=
0);
28823 var s = (bits - r) /
26;
28824 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
28830 for (i =
0; i < this.length; i++) {
28831 var newCarry = this.words[i] & carryMask;
28832 var c = ((this.words[i] |
0) - newCarry) << r;
28833 this.words[i] = c | carry;
28834 carry = newCarry
>>> (
26 - r);
28838 this.words[i] = carry;
28844 for (i = this.length -
1; i
>=
0; i--) {
28845 this.words[i + s] = this.words[i];
28848 for (i =
0; i < s; i++) {
28855 return this.strip();
28858 BN.prototype.ishln = function ishln (bits) {
28859 // TODO(indutny): implement me
28860 assert(this.negative ===
0);
28861 return this.iushln(bits);
28864 // Shift-right in-place
28865 // NOTE: `hint` is a lowest bit before trailing zeroes
28866 // NOTE: if `extended` is present - it will be filled with destroyed bits
28867 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
28868 assert(typeof bits === 'number' && bits
>=
0);
28871 h = (hint - (hint %
26)) /
26;
28877 var s = Math.min((bits - r) /
26, this.length);
28878 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
28879 var maskedWords = extended;
28882 h = Math.max(
0, h);
28884 // Extended mode, copy masked part
28886 for (var i =
0; i < s; i++) {
28887 maskedWords.words[i] = this.words[i];
28889 maskedWords.length = s;
28893 // No-op, we should not move anything at all
28894 } else if (this.length
> s) {
28896 for (i =
0; i < this.length; i++) {
28897 this.words[i] = this.words[i + s];
28905 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
28906 var word = this.words[i] |
0;
28907 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
28908 carry = word & mask;
28911 // Push carried bits as a mask
28912 if (maskedWords && carry !==
0) {
28913 maskedWords.words[maskedWords.length++] = carry;
28916 if (this.length ===
0) {
28921 return this.strip();
28924 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
28925 // TODO(indutny): implement me
28926 assert(this.negative ===
0);
28927 return this.iushrn(bits, hint, extended);
28931 BN.prototype.shln = function shln (bits) {
28932 return this.clone().ishln(bits);
28935 BN.prototype.ushln = function ushln (bits) {
28936 return this.clone().iushln(bits);
28940 BN.prototype.shrn = function shrn (bits) {
28941 return this.clone().ishrn(bits);
28944 BN.prototype.ushrn = function ushrn (bits) {
28945 return this.clone().iushrn(bits);
28948 // Test if n bit is set
28949 BN.prototype.testn = function testn (bit) {
28950 assert(typeof bit === 'number' && bit
>=
0);
28952 var s = (bit - r) /
26;
28955 // Fast case: bit is much higher than all existing words
28956 if (this.length <= s) return false;
28958 // Check bit and return
28959 var w = this.words[s];
28964 // Return only lowers bits of number (in-place)
28965 BN.prototype.imaskn = function imaskn (bits) {
28966 assert(typeof bits === 'number' && bits
>=
0);
28968 var s = (bits - r) /
26;
28970 assert(this.negative ===
0, 'imaskn works only with positive numbers');
28972 if (this.length <= s) {
28979 this.length = Math.min(s, this.length);
28982 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
28983 this.words[this.length -
1] &= mask;
28986 return this.strip();
28989 // Return only lowers bits of number
28990 BN.prototype.maskn = function maskn (bits) {
28991 return this.clone().imaskn(bits);
28994 // Add plain number `num` to `this`
28995 BN.prototype.iaddn = function iaddn (num) {
28996 assert(typeof num === 'number');
28997 assert(num <
0x4000000);
28998 if (num <
0) return this.isubn(-num);
29000 // Possible sign change
29001 if (this.negative !==
0) {
29002 if (this.length ===
1 && (this.words[
0] |
0) < num) {
29003 this.words[
0] = num - (this.words[
0] |
0);
29014 // Add without checks
29015 return this._iaddn(num);
29018 BN.prototype._iaddn = function _iaddn (num) {
29019 this.words[
0] += num;
29022 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
29023 this.words[i] -=
0x4000000;
29024 if (i === this.length -
1) {
29025 this.words[i +
1] =
1;
29027 this.words[i +
1]++;
29030 this.length = Math.max(this.length, i +
1);
29035 // Subtract plain number `num` from `this`
29036 BN.prototype.isubn = function isubn (num) {
29037 assert(typeof num === 'number');
29038 assert(num <
0x4000000);
29039 if (num <
0) return this.iaddn(-num);
29041 if (this.negative !==
0) {
29048 this.words[
0] -= num;
29050 if (this.length ===
1 && this.words[
0] <
0) {
29051 this.words[
0] = -this.words[
0];
29055 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
29056 this.words[i] +=
0x4000000;
29057 this.words[i +
1] -=
1;
29061 return this.strip();
29064 BN.prototype.addn = function addn (num) {
29065 return this.clone().iaddn(num);
29068 BN.prototype.subn = function subn (num) {
29069 return this.clone().isubn(num);
29072 BN.prototype.iabs = function iabs () {
29078 BN.prototype.abs = function abs () {
29079 return this.clone().iabs();
29082 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
29083 var len = num.length + shift;
29090 for (i =
0; i < num.length; i++) {
29091 w = (this.words[i + shift] |
0) + carry;
29092 var right = (num.words[i] |
0) * mul;
29093 w -= right &
0x3ffffff;
29094 carry = (w
>> 26) - ((right /
0x4000000) |
0);
29095 this.words[i + shift] = w &
0x3ffffff;
29097 for (; i < this.length - shift; i++) {
29098 w = (this.words[i + shift] |
0) + carry;
29100 this.words[i + shift] = w &
0x3ffffff;
29103 if (carry ===
0) return this.strip();
29105 // Subtraction overflow
29106 assert(carry === -
1);
29108 for (i =
0; i < this.length; i++) {
29109 w = -(this.words[i] |
0) + carry;
29111 this.words[i] = w &
0x3ffffff;
29115 return this.strip();
29118 BN.prototype._wordDiv = function _wordDiv (num, mode) {
29119 var shift = this.length - num.length;
29121 var a = this.clone();
29125 var bhi = b.words[b.length -
1] |
0;
29126 var bhiBits = this._countBits(bhi);
29127 shift =
26 - bhiBits;
29129 b = b.ushln(shift);
29131 bhi = b.words[b.length -
1] |
0;
29134 // Initialize quotient
29135 var m = a.length - b.length;
29138 if (mode !== 'mod') {
29141 q.words = new Array(q.length);
29142 for (var i =
0; i < q.length; i++) {
29147 var diff = a.clone()._ishlnsubmul(b,
1, m);
29148 if (diff.negative ===
0) {
29155 for (var j = m -
1; j
>=
0; j--) {
29156 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
29157 (a.words[b.length + j -
1] |
0);
29159 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
29161 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
29163 a._ishlnsubmul(b, qj, j);
29164 while (a.negative !==
0) {
29167 a._ishlnsubmul(b,
1, j);
29182 if (mode !== 'div' && shift !==
0) {
29192 // NOTE:
1) `mode` can be set to `mod` to request mod only,
29193 // to `div` to request div only, or be absent to
29194 // request both div & mod
29195 //
2) `positive` is true if unsigned mod is requested
29196 BN.prototype.divmod = function divmod (num, mode, positive) {
29197 assert(!num.isZero());
29199 if (this.isZero()) {
29207 if (this.negative !==
0 && num.negative ===
0) {
29208 res = this.neg().divmod(num, mode);
29210 if (mode !== 'mod') {
29211 div = res.div.neg();
29214 if (mode !== 'div') {
29215 mod = res.mod.neg();
29216 if (positive && mod.negative !==
0) {
29227 if (this.negative ===
0 && num.negative !==
0) {
29228 res = this.divmod(num.neg(), mode);
29230 if (mode !== 'mod') {
29231 div = res.div.neg();
29240 if ((this.negative & num.negative) !==
0) {
29241 res = this.neg().divmod(num.neg(), mode);
29243 if (mode !== 'div') {
29244 mod = res.mod.neg();
29245 if (positive && mod.negative !==
0) {
29256 // Both numbers are positive at this point
29258 // Strip both numbers to approximate shift value
29259 if (num.length
> this.length || this.cmp(num) <
0) {
29266 // Very short reduction
29267 if (num.length ===
1) {
29268 if (mode === 'div') {
29270 div: this.divn(num.words[
0]),
29275 if (mode === 'mod') {
29278 mod: new BN(this.modn(num.words[
0]))
29283 div: this.divn(num.words[
0]),
29284 mod: new BN(this.modn(num.words[
0]))
29288 return this._wordDiv(num, mode);
29291 // Find `this` / `num`
29292 BN.prototype.div = function div (num) {
29293 return this.divmod(num, 'div', false).div;
29296 // Find `this` % `num`
29297 BN.prototype.mod = function mod (num) {
29298 return this.divmod(num, 'mod', false).mod;
29301 BN.prototype.umod = function umod (num) {
29302 return this.divmod(num, 'mod', true).mod;
29305 // Find Round(`this` / `num`)
29306 BN.prototype.divRound = function divRound (num) {
29307 var dm = this.divmod(num);
29309 // Fast case - exact division
29310 if (dm.mod.isZero()) return dm.div;
29312 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
29314 var half = num.ushrn(
1);
29315 var r2 = num.andln(
1);
29316 var cmp = mod.cmp(half);
29319 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
29322 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
29325 BN.prototype.modn = function modn (num) {
29326 assert(num <=
0x3ffffff);
29327 var p = (
1 <<
26) % num;
29330 for (var i = this.length -
1; i
>=
0; i--) {
29331 acc = (p * acc + (this.words[i] |
0)) % num;
29337 // In-place division by number
29338 BN.prototype.idivn = function idivn (num) {
29339 assert(num <=
0x3ffffff);
29342 for (var i = this.length -
1; i
>=
0; i--) {
29343 var w = (this.words[i] |
0) + carry *
0x4000000;
29344 this.words[i] = (w / num) |
0;
29348 return this.strip();
29351 BN.prototype.divn = function divn (num) {
29352 return this.clone().idivn(num);
29355 BN.prototype.egcd = function egcd (p) {
29356 assert(p.negative ===
0);
29357 assert(!p.isZero());
29362 if (x.negative !==
0) {
29368 // A * x + B * y = x
29372 // C * x + D * y = y
29378 while (x.isEven() && y.isEven()) {
29384 var yp = y.clone();
29385 var xp = x.clone();
29387 while (!x.isZero()) {
29388 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
29392 if (A.isOdd() || B.isOdd()) {
29402 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
29406 if (C.isOdd() || D.isOdd()) {
29416 if (x.cmp(y)
>=
0) {
29434 // This is reduced incarnation of the binary EEA
29435 // above, designated to invert members of the
29436 // _prime_ fields F(p) at a maximal speed
29437 BN.prototype._invmp = function _invmp (p) {
29438 assert(p.negative ===
0);
29439 assert(!p.isZero());
29444 if (a.negative !==
0) {
29450 var x1 = new BN(
1);
29451 var x2 = new BN(
0);
29453 var delta = b.clone();
29455 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
29456 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
29468 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
29480 if (a.cmp(b)
>=
0) {
29490 if (a.cmpn(
1) ===
0) {
29496 if (res.cmpn(
0) <
0) {
29503 BN.prototype.gcd = function gcd (num) {
29504 if (this.isZero()) return num.abs();
29505 if (num.isZero()) return this.abs();
29507 var a = this.clone();
29508 var b = num.clone();
29512 // Remove common factor of two
29513 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
29519 while (a.isEven()) {
29522 while (b.isEven()) {
29528 // Swap `a` and `b` to make `a` always bigger than `b`
29532 } else if (r ===
0 || b.cmpn(
1) ===
0) {
29539 return b.iushln(shift);
29542 // Invert number in the field F(num)
29543 BN.prototype.invm = function invm (num) {
29544 return this.egcd(num).a.umod(num);
29547 BN.prototype.isEven = function isEven () {
29548 return (this.words[
0] &
1) ===
0;
29551 BN.prototype.isOdd = function isOdd () {
29552 return (this.words[
0] &
1) ===
1;
29555 // And first word and num
29556 BN.prototype.andln = function andln (num) {
29557 return this.words[
0] & num;
29560 // Increment at the bit position in-line
29561 BN.prototype.bincn = function bincn (bit) {
29562 assert(typeof bit === 'number');
29564 var s = (bit - r) /
26;
29567 // Fast case: bit is much higher than all existing words
29568 if (this.length <= s) {
29569 this._expand(s +
1);
29570 this.words[s] |= q;
29574 // Add bit and propagate, if needed
29576 for (var i = s; carry !==
0 && i < this.length; i++) {
29577 var w = this.words[i] |
0;
29584 this.words[i] = carry;
29590 BN.prototype.isZero = function isZero () {
29591 return this.length ===
1 && this.words[
0] ===
0;
29594 BN.prototype.cmpn = function cmpn (num) {
29595 var negative = num <
0;
29597 if (this.negative !==
0 && !negative) return -
1;
29598 if (this.negative ===
0 && negative) return
1;
29603 if (this.length
> 1) {
29610 assert(num <=
0x3ffffff, 'Number is too big');
29612 var w = this.words[
0] |
0;
29613 res = w === num ?
0 : w < num ? -
1 :
1;
29615 if (this.negative !==
0) return -res |
0;
29619 // Compare two numbers and return:
29620 //
1 - if `this`
> `num`
29621 //
0 - if `this` == `num`
29622 // -
1 - if `this` < `num`
29623 BN.prototype.cmp = function cmp (num) {
29624 if (this.negative !==
0 && num.negative ===
0) return -
1;
29625 if (this.negative ===
0 && num.negative !==
0) return
1;
29627 var res = this.ucmp(num);
29628 if (this.negative !==
0) return -res |
0;
29632 // Unsigned comparison
29633 BN.prototype.ucmp = function ucmp (num) {
29634 // At this point both numbers have the same sign
29635 if (this.length
> num.length) return
1;
29636 if (this.length < num.length) return -
1;
29639 for (var i = this.length -
1; i
>=
0; i--) {
29640 var a = this.words[i] |
0;
29641 var b = num.words[i] |
0;
29643 if (a === b) continue;
29646 } else if (a
> b) {
29654 BN.prototype.gtn = function gtn (num) {
29655 return this.cmpn(num) ===
1;
29658 BN.prototype.gt = function gt (num) {
29659 return this.cmp(num) ===
1;
29662 BN.prototype.gten = function gten (num) {
29663 return this.cmpn(num)
>=
0;
29666 BN.prototype.gte = function gte (num) {
29667 return this.cmp(num)
>=
0;
29670 BN.prototype.ltn = function ltn (num) {
29671 return this.cmpn(num) === -
1;
29674 BN.prototype.lt = function lt (num) {
29675 return this.cmp(num) === -
1;
29678 BN.prototype.lten = function lten (num) {
29679 return this.cmpn(num) <=
0;
29682 BN.prototype.lte = function lte (num) {
29683 return this.cmp(num) <=
0;
29686 BN.prototype.eqn = function eqn (num) {
29687 return this.cmpn(num) ===
0;
29690 BN.prototype.eq = function eq (num) {
29691 return this.cmp(num) ===
0;
29695 // A reduce context, could be using montgomery or something better, depending
29696 // on the `m` itself.
29698 BN.red = function red (num) {
29699 return new Red(num);
29702 BN.prototype.toRed = function toRed (ctx) {
29703 assert(!this.red, 'Already a number in reduction context');
29704 assert(this.negative ===
0, 'red works only with positives');
29705 return ctx.convertTo(this)._forceRed(ctx);
29708 BN.prototype.fromRed = function fromRed () {
29709 assert(this.red, 'fromRed works only with numbers in reduction context');
29710 return this.red.convertFrom(this);
29713 BN.prototype._forceRed = function _forceRed (ctx) {
29718 BN.prototype.forceRed = function forceRed (ctx) {
29719 assert(!this.red, 'Already a number in reduction context');
29720 return this._forceRed(ctx);
29723 BN.prototype.redAdd = function redAdd (num) {
29724 assert(this.red, 'redAdd works only with red numbers');
29725 return this.red.add(this, num);
29728 BN.prototype.redIAdd = function redIAdd (num) {
29729 assert(this.red, 'redIAdd works only with red numbers');
29730 return this.red.iadd(this, num);
29733 BN.prototype.redSub = function redSub (num) {
29734 assert(this.red, 'redSub works only with red numbers');
29735 return this.red.sub(this, num);
29738 BN.prototype.redISub = function redISub (num) {
29739 assert(this.red, 'redISub works only with red numbers');
29740 return this.red.isub(this, num);
29743 BN.prototype.redShl = function redShl (num) {
29744 assert(this.red, 'redShl works only with red numbers');
29745 return this.red.shl(this, num);
29748 BN.prototype.redMul = function redMul (num) {
29749 assert(this.red, 'redMul works only with red numbers');
29750 this.red._verify2(this, num);
29751 return this.red.mul(this, num);
29754 BN.prototype.redIMul = function redIMul (num) {
29755 assert(this.red, 'redMul works only with red numbers');
29756 this.red._verify2(this, num);
29757 return this.red.imul(this, num);
29760 BN.prototype.redSqr = function redSqr () {
29761 assert(this.red, 'redSqr works only with red numbers');
29762 this.red._verify1(this);
29763 return this.red.sqr(this);
29766 BN.prototype.redISqr = function redISqr () {
29767 assert(this.red, 'redISqr works only with red numbers');
29768 this.red._verify1(this);
29769 return this.red.isqr(this);
29772 // Square root over p
29773 BN.prototype.redSqrt = function redSqrt () {
29774 assert(this.red, 'redSqrt works only with red numbers');
29775 this.red._verify1(this);
29776 return this.red.sqrt(this);
29779 BN.prototype.redInvm = function redInvm () {
29780 assert(this.red, 'redInvm works only with red numbers');
29781 this.red._verify1(this);
29782 return this.red.invm(this);
29785 // Return negative clone of `this` % `red modulo`
29786 BN.prototype.redNeg = function redNeg () {
29787 assert(this.red, 'redNeg works only with red numbers');
29788 this.red._verify1(this);
29789 return this.red.neg(this);
29792 BN.prototype.redPow = function redPow (num) {
29793 assert(this.red && !num.red, 'redPow(normalNum)');
29794 this.red._verify1(this);
29795 return this.red.pow(this, num);
29798 // Prime numbers with efficient reduction
29806 // Pseudo-Mersenne prime
29807 function MPrime (name, p) {
29810 this.p = new BN(p,
16);
29811 this.n = this.p.bitLength();
29812 this.k = new BN(
1).iushln(this.n).isub(this.p);
29814 this.tmp = this._tmp();
29817 MPrime.prototype._tmp = function _tmp () {
29818 var tmp = new BN(null);
29819 tmp.words = new Array(Math.ceil(this.n /
13));
29823 MPrime.prototype.ireduce = function ireduce (num) {
29824 // Assumes that `num` is less than `P^
2`
29825 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
29830 this.split(r, this.tmp);
29832 r = r.iadd(this.tmp);
29833 rlen = r.bitLength();
29834 } while (rlen
> this.n);
29836 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
29840 } else if (cmp
> 0) {
29849 MPrime.prototype.split = function split (input, out) {
29850 input.iushrn(this.n,
0, out);
29853 MPrime.prototype.imulK = function imulK (num) {
29854 return num.imul(this.k);
29861 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
29863 inherits(K256, MPrime);
29865 K256.prototype.split = function split (input, output) {
29866 //
256 =
9 *
26 +
22
29867 var mask =
0x3fffff;
29869 var outLen = Math.min(input.length,
9);
29870 for (var i =
0; i < outLen; i++) {
29871 output.words[i] = input.words[i];
29873 output.length = outLen;
29875 if (input.length <=
9) {
29876 input.words[
0] =
0;
29881 // Shift by
9 limbs
29882 var prev = input.words[
9];
29883 output.words[output.length++] = prev & mask;
29885 for (i =
10; i < input.length; i++) {
29886 var next = input.words[i] |
0;
29887 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
29891 input.words[i -
10] = prev;
29892 if (prev ===
0 && input.length
> 10) {
29893 input.length -=
10;
29899 K256.prototype.imulK = function imulK (num) {
29900 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
29901 num.words[num.length] =
0;
29902 num.words[num.length +
1] =
0;
29905 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
29907 for (var i =
0; i < num.length; i++) {
29908 var w = num.words[i] |
0;
29910 num.words[i] = lo &
0x3ffffff;
29911 lo = w *
0x40 + ((lo /
0x4000000) |
0);
29914 // Fast length reduction
29915 if (num.words[num.length -
1] ===
0) {
29917 if (num.words[num.length -
1] ===
0) {
29928 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
29930 inherits(P224, MPrime);
29936 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
29938 inherits(P192, MPrime);
29940 function P25519 () {
29945 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
29947 inherits(P25519, MPrime);
29949 P25519.prototype.imulK = function imulK (num) {
29952 for (var i =
0; i < num.length; i++) {
29953 var hi = (num.words[i] |
0) *
0x13 + carry;
29954 var lo = hi &
0x3ffffff;
29961 num.words[num.length++] = carry;
29966 // Exported mostly for testing purposes, use plain name instead
29967 BN._prime = function prime (name) {
29968 // Cached version of prime
29969 if (primes[name]) return primes[name];
29972 if (name === 'k256') {
29973 prime = new K256();
29974 } else if (name === 'p224') {
29975 prime = new P224();
29976 } else if (name === 'p192') {
29977 prime = new P192();
29978 } else if (name === 'p25519') {
29979 prime = new P25519();
29981 throw new Error('Unknown prime ' + name);
29983 primes[name] = prime;
29989 // Base reduction engine
29992 if (typeof m === 'string') {
29993 var prime = BN._prime(m);
29995 this.prime = prime;
29997 assert(m.gtn(
1), 'modulus must be greater than
1');
30003 Red.prototype._verify1 = function _verify1 (a) {
30004 assert(a.negative ===
0, 'red works only with positives');
30005 assert(a.red, 'red works only with red numbers');
30008 Red.prototype._verify2 = function _verify2 (a, b) {
30009 assert((a.negative | b.negative) ===
0, 'red works only with positives');
30010 assert(a.red && a.red === b.red,
30011 'red works only with red numbers');
30014 Red.prototype.imod = function imod (a) {
30015 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
30016 return a.umod(this.m)._forceRed(this);
30019 Red.prototype.neg = function neg (a) {
30024 return this.m.sub(a)._forceRed(this);
30027 Red.prototype.add = function add (a, b) {
30028 this._verify2(a, b);
30030 var res = a.add(b);
30031 if (res.cmp(this.m)
>=
0) {
30034 return res._forceRed(this);
30037 Red.prototype.iadd = function iadd (a, b) {
30038 this._verify2(a, b);
30040 var res = a.iadd(b);
30041 if (res.cmp(this.m)
>=
0) {
30047 Red.prototype.sub = function sub (a, b) {
30048 this._verify2(a, b);
30050 var res = a.sub(b);
30051 if (res.cmpn(
0) <
0) {
30054 return res._forceRed(this);
30057 Red.prototype.isub = function isub (a, b) {
30058 this._verify2(a, b);
30060 var res = a.isub(b);
30061 if (res.cmpn(
0) <
0) {
30067 Red.prototype.shl = function shl (a, num) {
30069 return this.imod(a.ushln(num));
30072 Red.prototype.imul = function imul (a, b) {
30073 this._verify2(a, b);
30074 return this.imod(a.imul(b));
30077 Red.prototype.mul = function mul (a, b) {
30078 this._verify2(a, b);
30079 return this.imod(a.mul(b));
30082 Red.prototype.isqr = function isqr (a) {
30083 return this.imul(a, a.clone());
30086 Red.prototype.sqr = function sqr (a) {
30087 return this.mul(a, a);
30090 Red.prototype.sqrt = function sqrt (a) {
30091 if (a.isZero()) return a.clone();
30093 var mod3 = this.m.andln(
3);
30094 assert(mod3 %
2 ===
1);
30098 var pow = this.m.add(new BN(
1)).iushrn(
2);
30099 return this.pow(a, pow);
30102 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
30104 // Find Q and S, that Q *
2 ^ S = (P -
1)
30105 var q = this.m.subn(
1);
30107 while (!q.isZero() && q.andln(
1) ===
0) {
30111 assert(!q.isZero());
30113 var one = new BN(
1).toRed(this);
30114 var nOne = one.redNeg();
30116 // Find quadratic non-residue
30117 // NOTE: Max is such because of generalized Riemann hypothesis.
30118 var lpow = this.m.subn(
1).iushrn(
1);
30119 var z = this.m.bitLength();
30120 z = new BN(
2 * z * z).toRed(this);
30122 while (this.pow(z, lpow).cmp(nOne) !==
0) {
30126 var c = this.pow(z, q);
30127 var r = this.pow(a, q.addn(
1).iushrn(
1));
30128 var t = this.pow(a, q);
30130 while (t.cmp(one) !==
0) {
30132 for (var i =
0; tmp.cmp(one) !==
0; i++) {
30133 tmp = tmp.redSqr();
30136 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
30147 Red.prototype.invm = function invm (a) {
30148 var inv = a._invmp(this.m);
30149 if (inv.negative !==
0) {
30151 return this.imod(inv).redNeg();
30153 return this.imod(inv);
30157 Red.prototype.pow = function pow (a, num) {
30158 if (num.isZero()) return new BN(
1);
30159 if (num.cmpn(
1) ===
0) return a.clone();
30161 var windowSize =
4;
30162 var wnd = new Array(
1 << windowSize);
30163 wnd[
0] = new BN(
1).toRed(this);
30165 for (var i =
2; i < wnd.length; i++) {
30166 wnd[i] = this.mul(wnd[i -
1], a);
30171 var currentLen =
0;
30172 var start = num.bitLength() %
26;
30177 for (i = num.length -
1; i
>=
0; i--) {
30178 var word = num.words[i];
30179 for (var j = start -
1; j
>=
0; j--) {
30180 var bit = (word
>> j) &
1;
30181 if (res !== wnd[
0]) {
30182 res = this.sqr(res);
30185 if (bit ===
0 && current ===
0) {
30193 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
30195 res = this.mul(res, wnd[current]);
30205 Red.prototype.convertTo = function convertTo (num) {
30206 var r = num.umod(this.m);
30208 return r === num ? r.clone() : r;
30211 Red.prototype.convertFrom = function convertFrom (num) {
30212 var res = num.clone();
30218 // Montgomery method engine
30221 BN.mont = function mont (num) {
30222 return new Mont(num);
30225 function Mont (m) {
30228 this.shift = this.m.bitLength();
30229 if (this.shift %
26 !==
0) {
30230 this.shift +=
26 - (this.shift %
26);
30233 this.r = new BN(
1).iushln(this.shift);
30234 this.r2 = this.imod(this.r.sqr());
30235 this.rinv = this.r._invmp(this.m);
30237 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
30238 this.minv = this.minv.umod(this.r);
30239 this.minv = this.r.sub(this.minv);
30241 inherits(Mont, Red);
30243 Mont.prototype.convertTo = function convertTo (num) {
30244 return this.imod(num.ushln(this.shift));
30247 Mont.prototype.convertFrom = function convertFrom (num) {
30248 var r = this.imod(num.mul(this.rinv));
30253 Mont.prototype.imul = function imul (a, b) {
30254 if (a.isZero() || b.isZero()) {
30261 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
30262 var u = t.isub(c).iushrn(this.shift);
30265 if (u.cmp(this.m)
>=
0) {
30266 res = u.isub(this.m);
30267 } else if (u.cmpn(
0) <
0) {
30268 res = u.iadd(this.m);
30271 return res._forceRed(this);
30274 Mont.prototype.mul = function mul (a, b) {
30275 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
30278 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
30279 var u = t.isub(c).iushrn(this.shift);
30281 if (u.cmp(this.m)
>=
0) {
30282 res = u.isub(this.m);
30283 } else if (u.cmpn(
0) <
0) {
30284 res = u.iadd(this.m);
30287 return res._forceRed(this);
30290 Mont.prototype.invm = function invm (a) {
30291 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
30292 var res = this.imod(a._invmp(this.m).mul(this.r2));
30293 return res._forceRed(this);
30295 })(typeof module === 'undefined' || module, this);
30297 },{}],
34:[function(require,module,exports){
30300 module.exports = function rand(len) {
30302 r = new Rand(null);
30304 return r.generate(len);
30307 function Rand(rand) {
30310 module.exports.Rand = Rand;
30312 Rand.prototype.generate = function generate(len) {
30313 return this._rand(len);
30316 if (typeof self === 'object') {
30317 if (self.crypto && self.crypto.getRandomValues) {
30319 Rand.prototype._rand = function _rand(n) {
30320 var arr = new Uint8Array(n);
30321 self.crypto.getRandomValues(arr);
30324 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
30326 Rand.prototype._rand = function _rand(n) {
30327 var arr = new Uint8Array(n);
30328 self.msCrypto.getRandomValues(arr);
30333 Rand.prototype._rand = function() {
30334 throw new Error('Not implemented yet');
30338 // Node.js or Web worker with no crypto support
30340 var crypto = require('crypto');
30342 Rand.prototype._rand = function _rand(n) {
30343 return crypto.randomBytes(n);
30346 // Emulate crypto API using randy
30347 Rand.prototype._rand = function _rand(n) {
30348 var res = new Uint8Array(n);
30349 for (var i =
0; i < res.length; i++)
30350 res[i] = this.rand.getByte();
30356 },{"crypto":
3}],
35:[function(require,module,exports){
30357 (function (Buffer){
30358 var Transform = require('stream').Transform
30359 var inherits = require('inherits')
30360 var StringDecoder = require('string_decoder').StringDecoder
30361 module.exports = CipherBase
30362 inherits(CipherBase, Transform)
30363 function CipherBase (hashMode) {
30364 Transform.call(this)
30365 this.hashMode = typeof hashMode === 'string'
30366 if (this.hashMode) {
30367 this[hashMode] = this._finalOrDigest
30369 this.final = this._finalOrDigest
30371 this._decoder = null
30372 this._encoding = null
30374 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
30375 if (typeof data === 'string') {
30376 data = new Buffer(data, inputEnc)
30378 var outData = this._update(data)
30379 if (this.hashMode) {
30383 outData = this._toString(outData, outputEnc)
30388 CipherBase.prototype.setAutoPadding = function () {}
30390 CipherBase.prototype.getAuthTag = function () {
30391 throw new Error('trying to get auth tag in unsupported state')
30394 CipherBase.prototype.setAuthTag = function () {
30395 throw new Error('trying to set auth tag in unsupported state')
30398 CipherBase.prototype.setAAD = function () {
30399 throw new Error('trying to set aad in unsupported state')
30402 CipherBase.prototype._transform = function (data, _, next) {
30405 if (this.hashMode) {
30408 this.push(this._update(data))
30416 CipherBase.prototype._flush = function (done) {
30419 this.push(this._final())
30426 CipherBase.prototype._finalOrDigest = function (outputEnc) {
30427 var outData = this._final() || new Buffer('')
30429 outData = this._toString(outData, outputEnc, true)
30434 CipherBase.prototype._toString = function (value, enc, fin) {
30435 if (!this._decoder) {
30436 this._decoder = new StringDecoder(enc)
30437 this._encoding = enc
30439 if (this._encoding !== enc) {
30440 throw new Error('can\'t switch encodings')
30442 var out = this._decoder.write(value)
30444 out += this._decoder.end()
30449 }).call(this,require("buffer").Buffer)
30450 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
30451 (function (Buffer){
30453 var inherits = require('inherits')
30454 var md5 = require('./md5')
30455 var rmd160 = require('ripemd160')
30456 var sha = require('sha.js')
30458 var Base = require('cipher-base')
30460 function HashNoConstructor(hash) {
30461 Base.call(this, 'digest')
30467 inherits(HashNoConstructor, Base)
30469 HashNoConstructor.prototype._update = function (data) {
30470 this.buffers.push(data)
30473 HashNoConstructor.prototype._final = function () {
30474 var buf = Buffer.concat(this.buffers)
30475 var r = this._hash(buf)
30476 this.buffers = null
30481 function Hash(hash) {
30482 Base.call(this, 'digest')
30487 inherits(Hash, Base)
30489 Hash.prototype._update = function (data) {
30490 this._hash.update(data)
30493 Hash.prototype._final = function () {
30494 return this._hash.digest()
30497 module.exports = function createHash (alg) {
30498 alg = alg.toLowerCase()
30499 if ('md5' === alg) return new HashNoConstructor(md5)
30500 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
30502 return new Hash(sha(alg))
30505 }).call(this,require("buffer").Buffer)
30506 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
30507 (function (Buffer){
30510 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
30513 function toArray(buf, bigEndian) {
30514 if ((buf.length % intSize) !==
0) {
30515 var len = buf.length + (intSize - (buf.length % intSize));
30516 buf = Buffer.concat([buf, zeroBuffer], len);
30520 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
30521 for (var i =
0; i < buf.length; i += intSize) {
30522 arr.push(fn.call(buf, i));
30527 function toBuffer(arr, size, bigEndian) {
30528 var buf = new Buffer(size);
30529 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
30530 for (var i =
0; i < arr.length; i++) {
30531 fn.call(buf, arr[i], i *
4, true);
30536 function hash(buf, fn, hashSize, bigEndian) {
30537 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
30538 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
30539 return toBuffer(arr, hashSize, bigEndian);
30541 exports.hash = hash;
30542 }).call(this,require("buffer").Buffer)
30543 },{"buffer":
5}],
38:[function(require,module,exports){
30546 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
30547 * Digest Algorithm, as defined in RFC
1321.
30548 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
30549 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
30550 * Distributed under the BSD License
30551 * See http://pajhome.org.uk/crypt/md5 for more info.
30554 var helpers = require('./helpers');
30557 * Calculate the MD5 of an array of little-endian words, and a bit length
30559 function core_md5(x, len)
30561 /* append padding */
30562 x[len
>> 5] |=
0x80 << ((len) %
32);
30563 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
30565 var a =
1732584193;
30566 var b = -
271733879;
30567 var c = -
1732584194;
30570 for(var i =
0; i < x.length; i +=
16)
30577 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
30578 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
30579 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
30580 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
30581 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
30582 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
30583 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
30584 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
30585 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
30586 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
30587 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
30588 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
30589 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
30590 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
30591 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
30592 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
30594 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
30595 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
30596 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
30597 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
30598 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
30599 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
30600 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
30601 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
30602 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
30603 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
30604 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
30605 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
30606 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
30607 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
30608 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
30609 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
30611 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
30612 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
30613 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
30614 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
30615 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
30616 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
30617 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
30618 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
30619 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
30620 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
30621 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
30622 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
30623 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
30624 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
30625 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
30626 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
30628 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
30629 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
30630 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
30631 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
30632 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
30633 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
30634 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
30635 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
30636 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
30637 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
30638 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
30639 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
30640 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
30641 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
30642 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
30643 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
30645 a = safe_add(a, olda);
30646 b = safe_add(b, oldb);
30647 c = safe_add(c, oldc);
30648 d = safe_add(d, oldd);
30650 return Array(a, b, c, d);
30655 * These functions implement the four basic operations the algorithm uses.
30657 function md5_cmn(q, a, b, x, s, t)
30659 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
30661 function md5_ff(a, b, c, d, x, s, t)
30663 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
30665 function md5_gg(a, b, c, d, x, s, t)
30667 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
30669 function md5_hh(a, b, c, d, x, s, t)
30671 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
30673 function md5_ii(a, b, c, d, x, s, t)
30675 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
30679 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
30680 * to work around bugs in some JS interpreters.
30682 function safe_add(x, y)
30684 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
30685 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
30686 return (msw <<
16) | (lsw &
0xFFFF);
30690 * Bitwise rotate a
32-bit number to the left.
30692 function bit_rol(num, cnt)
30694 return (num << cnt) | (num
>>> (
32 - cnt));
30697 module.exports = function md5(buf) {
30698 return helpers.hash(buf, core_md5,
16);
30700 },{"./helpers":
37}],
39:[function(require,module,exports){
30703 var elliptic = exports;
30705 elliptic.version = require('../package.json').version;
30706 elliptic.utils = require('./elliptic/utils');
30707 elliptic.rand = require('brorand');
30708 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
30709 elliptic.curve = require('./elliptic/curve');
30710 elliptic.curves = require('./elliptic/curves');
30713 elliptic.ec = require('./elliptic/ec');
30714 elliptic.eddsa = require('./elliptic/eddsa');
30716 },{"../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){
30719 var BN = require('bn.js');
30720 var elliptic = require('../../elliptic');
30721 var utils = elliptic.utils;
30722 var getNAF = utils.getNAF;
30723 var getJSF = utils.getJSF;
30724 var assert = utils.assert;
30726 function BaseCurve(type, conf) {
30728 this.p = new BN(conf.p,
16);
30730 // Use Montgomery, when there is no fast reduction for the prime
30731 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
30733 // Useful for many curves
30734 this.zero = new BN(
0).toRed(this.red);
30735 this.one = new BN(
1).toRed(this.red);
30736 this.two = new BN(
2).toRed(this.red);
30738 // Curve configuration, optional
30739 this.n = conf.n && new BN(conf.n,
16);
30740 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
30742 // Temporary arrays
30743 this._wnafT1 = new Array(
4);
30744 this._wnafT2 = new Array(
4);
30745 this._wnafT3 = new Array(
4);
30746 this._wnafT4 = new Array(
4);
30748 // Generalized Greg Maxwell's trick
30749 var adjustCount = this.n && this.p.div(this.n);
30750 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
30753 this._maxwellTrick = true;
30754 this.redN = this.n.toRed(this.red);
30757 module.exports = BaseCurve;
30759 BaseCurve.prototype.point = function point() {
30760 throw new Error('Not implemented');
30763 BaseCurve.prototype.validate = function validate() {
30764 throw new Error('Not implemented');
30767 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
30768 assert(p.precomputed);
30769 var doubles = p._getDoubles();
30771 var naf = getNAF(k,
1);
30772 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
30775 // Translate into more windowed form
30777 for (var j =
0; j < naf.length; j += doubles.step) {
30779 for (var k = j + doubles.step -
1; k
>= j; k--)
30780 nafW = (nafW <<
1) + naf[k];
30784 var a = this.jpoint(null, null, null);
30785 var b = this.jpoint(null, null, null);
30786 for (var i = I; i
> 0; i--) {
30787 for (var j =
0; j < repr.length; j++) {
30788 var nafW = repr[j];
30790 b = b.mixedAdd(doubles.points[j]);
30791 else if (nafW === -i)
30792 b = b.mixedAdd(doubles.points[j].neg());
30799 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
30802 // Precompute window
30803 var nafPoints = p._getNAFPoints(w);
30805 var wnd = nafPoints.points;
30808 var naf = getNAF(k, w);
30810 // Add `this`*(N+
1) for every w-NAF index
30811 var acc = this.jpoint(null, null, null);
30812 for (var i = naf.length -
1; i
>=
0; i--) {
30814 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
30824 if (p.type === 'affine') {
30827 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
30829 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
30833 acc = acc.add(wnd[(z -
1)
>> 1]);
30835 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
30838 return p.type === 'affine' ? acc.toP() : acc;
30841 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
30846 var wndWidth = this._wnafT1;
30847 var wnd = this._wnafT2;
30848 var naf = this._wnafT3;
30852 for (var i =
0; i < len; i++) {
30854 var nafPoints = p._getNAFPoints(defW);
30855 wndWidth[i] = nafPoints.wnd;
30856 wnd[i] = nafPoints.points;
30859 // Comb small window NAFs
30860 for (var i = len -
1; i
>=
1; i -=
2) {
30863 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
30864 naf[a] = getNAF(coeffs[a], wndWidth[a]);
30865 naf[b] = getNAF(coeffs[b], wndWidth[b]);
30866 max = Math.max(naf[a].length, max);
30867 max = Math.max(naf[b].length, max);
30878 // Try to avoid Projective points, if possible
30879 if (points[a].y.cmp(points[b].y) ===
0) {
30880 comb[
1] = points[a].add(points[b]);
30881 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
30882 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
30883 comb[
1] = points[a].toJ().mixedAdd(points[b]);
30884 comb[
2] = points[a].add(points[b].neg());
30886 comb[
1] = points[a].toJ().mixedAdd(points[b]);
30887 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
30902 var jsf = getJSF(coeffs[a], coeffs[b]);
30903 max = Math.max(jsf[
0].length, max);
30904 naf[a] = new Array(max);
30905 naf[b] = new Array(max);
30906 for (var j =
0; j < max; j++) {
30907 var ja = jsf[
0][j] |
0;
30908 var jb = jsf[
1][j] |
0;
30910 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
30916 var acc = this.jpoint(null, null, null);
30917 var tmp = this._wnafT4;
30918 for (var i = max; i
>=
0; i--) {
30923 for (var j =
0; j < len; j++) {
30924 tmp[j] = naf[j][i] |
0;
30939 for (var j =
0; j < len; j++) {
30945 p = wnd[j][(z -
1)
>> 1];
30947 p = wnd[j][(-z -
1)
>> 1].neg();
30949 if (p.type === 'affine')
30950 acc = acc.mixedAdd(p);
30955 // Zeroify references
30956 for (var i =
0; i < len; i++)
30959 if (jacobianResult)
30965 function BasePoint(curve, type) {
30966 this.curve = curve;
30968 this.precomputed = null;
30970 BaseCurve.BasePoint = BasePoint;
30972 BasePoint.prototype.eq = function eq(/*other*/) {
30973 throw new Error('Not implemented');
30976 BasePoint.prototype.validate = function validate() {
30977 return this.curve.validate(this);
30980 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
30981 bytes = utils.toArray(bytes, enc);
30983 var len = this.p.byteLength();
30985 // uncompressed, hybrid-odd, hybrid-even
30986 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
30987 bytes.length -
1 ===
2 * len) {
30988 if (bytes[
0] ===
0x06)
30989 assert(bytes[bytes.length -
1] %
2 ===
0);
30990 else if (bytes[
0] ===
0x07)
30991 assert(bytes[bytes.length -
1] %
2 ===
1);
30993 var res = this.point(bytes.slice(
1,
1 + len),
30994 bytes.slice(
1 + len,
1 +
2 * len));
30997 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
30998 bytes.length -
1 === len) {
30999 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
31001 throw new Error('Unknown point format');
31004 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
31005 return this.encode(enc, true);
31008 BasePoint.prototype._encode = function _encode(compact) {
31009 var len = this.curve.p.byteLength();
31010 var x = this.getX().toArray('be', len);
31013 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
31015 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
31018 BasePoint.prototype.encode = function encode(enc, compact) {
31019 return utils.encode(this._encode(compact), enc);
31022 BasePoint.prototype.precompute = function precompute(power) {
31023 if (this.precomputed)
31026 var precomputed = {
31031 precomputed.naf = this._getNAFPoints(
8);
31032 precomputed.doubles = this._getDoubles(
4, power);
31033 precomputed.beta = this._getBeta();
31034 this.precomputed = precomputed;
31039 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
31040 if (!this.precomputed)
31043 var doubles = this.precomputed.doubles;
31047 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
31050 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
31051 if (this.precomputed && this.precomputed.doubles)
31052 return this.precomputed.doubles;
31054 var doubles = [ this ];
31056 for (var i =
0; i < power; i += step) {
31057 for (var j =
0; j < step; j++)
31067 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
31068 if (this.precomputed && this.precomputed.naf)
31069 return this.precomputed.naf;
31071 var res = [ this ];
31072 var max = (
1 << wnd) -
1;
31073 var dbl = max ===
1 ? null : this.dbl();
31074 for (var i =
1; i < max; i++)
31075 res[i] = res[i -
1].add(dbl);
31082 BasePoint.prototype._getBeta = function _getBeta() {
31086 BasePoint.prototype.dblp = function dblp(k) {
31088 for (var i =
0; i < k; i++)
31093 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
31096 var curve = require('../curve');
31097 var elliptic = require('../../elliptic');
31098 var BN = require('bn.js');
31099 var inherits = require('inherits');
31100 var Base = curve.base;
31102 var assert = elliptic.utils.assert;
31104 function EdwardsCurve(conf) {
31105 // NOTE: Important as we are creating point in Base.call()
31106 this.twisted = (conf.a |
0) !==
1;
31107 this.mOneA = this.twisted && (conf.a |
0) === -
1;
31108 this.extended = this.mOneA;
31110 Base.call(this, 'edwards', conf);
31112 this.a = new BN(conf.a,
16).umod(this.red.m);
31113 this.a = this.a.toRed(this.red);
31114 this.c = new BN(conf.c,
16).toRed(this.red);
31115 this.c2 = this.c.redSqr();
31116 this.d = new BN(conf.d,
16).toRed(this.red);
31117 this.dd = this.d.redAdd(this.d);
31119 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
31120 this.oneC = (conf.c |
0) ===
1;
31122 inherits(EdwardsCurve, Base);
31123 module.exports = EdwardsCurve;
31125 EdwardsCurve.prototype._mulA = function _mulA(num) {
31127 return num.redNeg();
31129 return this.a.redMul(num);
31132 EdwardsCurve.prototype._mulC = function _mulC(num) {
31136 return this.c.redMul(num);
31139 // Just for compatibility with Short curve
31140 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
31141 return this.point(x, y, z, t);
31144 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
31147 x = x.toRed(this.red);
31149 var x2 = x.redSqr();
31150 var rhs = this.c2.redSub(this.a.redMul(x2));
31151 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
31153 var y2 = rhs.redMul(lhs.redInvm());
31154 var y = y2.redSqrt();
31155 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
31156 throw new Error('invalid point');
31158 var isOdd = y.fromRed().isOdd();
31159 if (odd && !isOdd || !odd && isOdd)
31162 return this.point(x, y);
31165 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
31168 y = y.toRed(this.red);
31170 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
31171 var y2 = y.redSqr();
31172 var lhs = y2.redSub(this.one);
31173 var rhs = y2.redMul(this.d).redAdd(this.one);
31174 var x2 = lhs.redMul(rhs.redInvm());
31176 if (x2.cmp(this.zero) ===
0) {
31178 throw new Error('invalid point');
31180 return this.point(this.zero, y);
31183 var x = x2.redSqrt();
31184 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
31185 throw new Error('invalid point');
31187 if (x.isOdd() !== odd)
31190 return this.point(x, y);
31193 EdwardsCurve.prototype.validate = function validate(point) {
31194 if (point.isInfinity())
31197 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
31200 var x2 = point.x.redSqr();
31201 var y2 = point.y.redSqr();
31202 var lhs = x2.redMul(this.a).redAdd(y2);
31203 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
31205 return lhs.cmp(rhs) ===
0;
31208 function Point(curve, x, y, z, t) {
31209 Base.BasePoint.call(this, curve, 'projective');
31210 if (x === null && y === null && z === null) {
31211 this.x = this.curve.zero;
31212 this.y = this.curve.one;
31213 this.z = this.curve.one;
31214 this.t = this.curve.zero;
31217 this.x = new BN(x,
16);
31218 this.y = new BN(y,
16);
31219 this.z = z ? new BN(z,
16) : this.curve.one;
31220 this.t = t && new BN(t,
16);
31222 this.x = this.x.toRed(this.curve.red);
31224 this.y = this.y.toRed(this.curve.red);
31226 this.z = this.z.toRed(this.curve.red);
31227 if (this.t && !this.t.red)
31228 this.t = this.t.toRed(this.curve.red);
31229 this.zOne = this.z === this.curve.one;
31231 // Use extended coordinates
31232 if (this.curve.extended && !this.t) {
31233 this.t = this.x.redMul(this.y);
31235 this.t = this.t.redMul(this.z.redInvm());
31239 inherits(Point, Base.BasePoint);
31241 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
31242 return Point.fromJSON(this, obj);
31245 EdwardsCurve.prototype.point = function point(x, y, z, t) {
31246 return new Point(this, x, y, z, t);
31249 Point.fromJSON = function fromJSON(curve, obj) {
31250 return new Point(curve, obj[
0], obj[
1], obj[
2]);
31253 Point.prototype.inspect = function inspect() {
31254 if (this.isInfinity())
31255 return '
<EC Point Infinity
>';
31256 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
31257 ' y: ' + this.y.fromRed().toString(
16,
2) +
31258 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
31261 Point.prototype.isInfinity = function isInfinity() {
31262 // XXX This code assumes that zero is always zero in red
31263 return this.x.cmpn(
0) ===
0 &&
31264 this.y.cmp(this.z) ===
0;
31267 Point.prototype._extDbl = function _extDbl() {
31268 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
31269 // #doubling-dbl-
2008-hwcd
31273 var a = this.x.redSqr();
31275 var b = this.y.redSqr();
31277 var c = this.z.redSqr();
31280 var d = this.curve._mulA(a);
31281 // E = (X1 + Y1)^
2 - A - B
31282 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
31284 var g = d.redAdd(b);
31286 var f = g.redSub(c);
31288 var h = d.redSub(b);
31290 var nx = e.redMul(f);
31292 var ny = g.redMul(h);
31294 var nt = e.redMul(h);
31296 var nz = f.redMul(g);
31297 return this.curve.point(nx, ny, nz, nt);
31300 Point.prototype._projDbl = function _projDbl() {
31301 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
31302 // #doubling-dbl-
2008-bbjlp
31303 // #doubling-dbl-
2007-bl
31305 // Generally
3M +
4S or
2M +
4S
31308 var b = this.x.redAdd(this.y).redSqr();
31310 var c = this.x.redSqr();
31312 var d = this.y.redSqr();
31317 if (this.curve.twisted) {
31319 var e = this.curve._mulA(c);
31321 var f = e.redAdd(d);
31323 // X3 = (B - C - D) * (F -
2)
31324 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
31325 // Y3 = F * (E - D)
31326 ny = f.redMul(e.redSub(d));
31327 // Z3 = F^
2 -
2 * F
31328 nz = f.redSqr().redSub(f).redSub(f);
31331 var h = this.z.redSqr();
31333 var j = f.redSub(h).redISub(h);
31335 nx = b.redSub(c).redISub(d).redMul(j);
31336 // Y3 = F * (E - D)
31337 ny = f.redMul(e.redSub(d));
31343 var e = c.redAdd(d);
31345 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
31347 var j = e.redSub(h).redSub(h);
31348 // X3 = c * (B - E) * J
31349 nx = this.curve._mulC(b.redISub(e)).redMul(j);
31350 // Y3 = c * E * (C - D)
31351 ny = this.curve._mulC(e).redMul(c.redISub(d));
31355 return this.curve.point(nx, ny, nz);
31358 Point.prototype.dbl = function dbl() {
31359 if (this.isInfinity())
31362 // Double in extended coordinates
31363 if (this.curve.extended)
31364 return this._extDbl();
31366 return this._projDbl();
31369 Point.prototype._extAdd = function _extAdd(p) {
31370 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
31371 // #addition-add-
2008-hwcd-
3
31374 // A = (Y1 - X1) * (Y2 - X2)
31375 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
31376 // B = (Y1 + X1) * (Y2 + X2)
31377 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
31379 var c = this.t.redMul(this.curve.dd).redMul(p.t);
31381 var d = this.z.redMul(p.z.redAdd(p.z));
31383 var e = b.redSub(a);
31385 var f = d.redSub(c);
31387 var g = d.redAdd(c);
31389 var h = b.redAdd(a);
31391 var nx = e.redMul(f);
31393 var ny = g.redMul(h);
31395 var nt = e.redMul(h);
31397 var nz = f.redMul(g);
31398 return this.curve.point(nx, ny, nz, nt);
31401 Point.prototype._projAdd = function _projAdd(p) {
31402 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
31403 // #addition-add-
2008-bbjlp
31404 // #addition-add-
2007-bl
31408 var a = this.z.redMul(p.z);
31410 var b = a.redSqr();
31412 var c = this.x.redMul(p.x);
31414 var d = this.y.redMul(p.y);
31416 var e = this.curve.d.redMul(c).redMul(d);
31418 var f = b.redSub(e);
31420 var g = b.redAdd(e);
31421 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
31422 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
31423 var nx = a.redMul(f).redMul(tmp);
31426 if (this.curve.twisted) {
31427 // Y3 = A * G * (D - a * C)
31428 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
31432 // Y3 = A * G * (D - C)
31433 ny = a.redMul(g).redMul(d.redSub(c));
31435 nz = this.curve._mulC(f).redMul(g);
31437 return this.curve.point(nx, ny, nz);
31440 Point.prototype.add = function add(p) {
31441 if (this.isInfinity())
31443 if (p.isInfinity())
31446 if (this.curve.extended)
31447 return this._extAdd(p);
31449 return this._projAdd(p);
31452 Point.prototype.mul = function mul(k) {
31453 if (this._hasDoubles(k))
31454 return this.curve._fixedNafMul(this, k);
31456 return this.curve._wnafMul(this, k);
31459 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
31460 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
31463 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
31464 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
31467 Point.prototype.normalize = function normalize() {
31471 // Normalize coordinates
31472 var zi = this.z.redInvm();
31473 this.x = this.x.redMul(zi);
31474 this.y = this.y.redMul(zi);
31476 this.t = this.t.redMul(zi);
31477 this.z = this.curve.one;
31482 Point.prototype.neg = function neg() {
31483 return this.curve.point(this.x.redNeg(),
31486 this.t && this.t.redNeg());
31489 Point.prototype.getX = function getX() {
31491 return this.x.fromRed();
31494 Point.prototype.getY = function getY() {
31496 return this.y.fromRed();
31499 Point.prototype.eq = function eq(other) {
31500 return this === other ||
31501 this.getX().cmp(other.getX()) ===
0 &&
31502 this.getY().cmp(other.getY()) ===
0;
31505 Point.prototype.eqXToP = function eqXToP(x) {
31506 var rx = x.toRed(this.curve.red).redMul(this.z);
31507 if (this.x.cmp(rx) ===
0)
31510 var xc = x.clone();
31511 var t = this.curve.redN.redMul(this.z);
31513 xc.iadd(this.curve.n);
31514 if (xc.cmp(this.curve.p)
>=
0)
31518 if (this.x.cmp(rx) ===
0)
31524 // Compatibility with BaseCurve
31525 Point.prototype.toP = Point.prototype.normalize;
31526 Point.prototype.mixedAdd = Point.prototype.add;
31528 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
31531 var curve = exports;
31533 curve.base = require('./base');
31534 curve.short = require('./short');
31535 curve.mont = require('./mont');
31536 curve.edwards = require('./edwards');
31538 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
31541 var curve = require('../curve');
31542 var BN = require('bn.js');
31543 var inherits = require('inherits');
31544 var Base = curve.base;
31546 var elliptic = require('../../elliptic');
31547 var utils = elliptic.utils;
31549 function MontCurve(conf) {
31550 Base.call(this, 'mont', conf);
31552 this.a = new BN(conf.a,
16).toRed(this.red);
31553 this.b = new BN(conf.b,
16).toRed(this.red);
31554 this.i4 = new BN(
4).toRed(this.red).redInvm();
31555 this.two = new BN(
2).toRed(this.red);
31556 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
31558 inherits(MontCurve, Base);
31559 module.exports = MontCurve;
31561 MontCurve.prototype.validate = function validate(point) {
31562 var x = point.normalize().x;
31563 var x2 = x.redSqr();
31564 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
31565 var y = rhs.redSqrt();
31567 return y.redSqr().cmp(rhs) ===
0;
31570 function Point(curve, x, z) {
31571 Base.BasePoint.call(this, curve, 'projective');
31572 if (x === null && z === null) {
31573 this.x = this.curve.one;
31574 this.z = this.curve.zero;
31576 this.x = new BN(x,
16);
31577 this.z = new BN(z,
16);
31579 this.x = this.x.toRed(this.curve.red);
31581 this.z = this.z.toRed(this.curve.red);
31584 inherits(Point, Base.BasePoint);
31586 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
31587 return this.point(utils.toArray(bytes, enc),
1);
31590 MontCurve.prototype.point = function point(x, z) {
31591 return new Point(this, x, z);
31594 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
31595 return Point.fromJSON(this, obj);
31598 Point.prototype.precompute = function precompute() {
31602 Point.prototype._encode = function _encode() {
31603 return this.getX().toArray('be', this.curve.p.byteLength());
31606 Point.fromJSON = function fromJSON(curve, obj) {
31607 return new Point(curve, obj[
0], obj[
1] || curve.one);
31610 Point.prototype.inspect = function inspect() {
31611 if (this.isInfinity())
31612 return '
<EC Point Infinity
>';
31613 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
31614 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
31617 Point.prototype.isInfinity = function isInfinity() {
31618 // XXX This code assumes that zero is always zero in red
31619 return this.z.cmpn(
0) ===
0;
31622 Point.prototype.dbl = function dbl() {
31623 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
31627 var a = this.x.redAdd(this.z);
31629 var aa = a.redSqr();
31631 var b = this.x.redSub(this.z);
31633 var bb = b.redSqr();
31635 var c = aa.redSub(bb);
31637 var nx = aa.redMul(bb);
31638 // Z3 = C * (BB + A24 * C)
31639 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
31640 return this.curve.point(nx, nz);
31643 Point.prototype.add = function add() {
31644 throw new Error('Not supported on Montgomery curve');
31647 Point.prototype.diffAdd = function diffAdd(p, diff) {
31648 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
31652 var a = this.x.redAdd(this.z);
31654 var b = this.x.redSub(this.z);
31656 var c = p.x.redAdd(p.z);
31658 var d = p.x.redSub(p.z);
31660 var da = d.redMul(a);
31662 var cb = c.redMul(b);
31663 // X5 = Z1 * (DA + CB)^
2
31664 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
31665 // Z5 = X1 * (DA - CB)^
2
31666 var nz = diff.x.redMul(da.redISub(cb).redSqr());
31667 return this.curve.point(nx, nz);
31670 Point.prototype.mul = function mul(k) {
31672 var a = this; // (N /
2) * Q + Q
31673 var b = this.curve.point(null, null); // (N /
2) * Q
31676 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
31677 bits.push(t.andln(
1));
31679 for (var i = bits.length -
1; i
>=
0; i--) {
31680 if (bits[i] ===
0) {
31681 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
31682 a = a.diffAdd(b, c);
31683 // N * Q =
2 * ((N /
2) * Q + Q))
31686 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
31687 b = a.diffAdd(b, c);
31688 // N * Q + Q =
2 * ((N /
2) * Q + Q)
31695 Point.prototype.mulAdd = function mulAdd() {
31696 throw new Error('Not supported on Montgomery curve');
31699 Point.prototype.jumlAdd = function jumlAdd() {
31700 throw new Error('Not supported on Montgomery curve');
31703 Point.prototype.eq = function eq(other) {
31704 return this.getX().cmp(other.getX()) ===
0;
31707 Point.prototype.normalize = function normalize() {
31708 this.x = this.x.redMul(this.z.redInvm());
31709 this.z = this.curve.one;
31713 Point.prototype.getX = function getX() {
31714 // Normalize coordinates
31717 return this.x.fromRed();
31720 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
31723 var curve = require('../curve');
31724 var elliptic = require('../../elliptic');
31725 var BN = require('bn.js');
31726 var inherits = require('inherits');
31727 var Base = curve.base;
31729 var assert = elliptic.utils.assert;
31731 function ShortCurve(conf) {
31732 Base.call(this, 'short', conf);
31734 this.a = new BN(conf.a,
16).toRed(this.red);
31735 this.b = new BN(conf.b,
16).toRed(this.red);
31736 this.tinv = this.two.redInvm();
31738 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
31739 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
31741 // If the curve is endomorphic, precalculate beta and lambda
31742 this.endo = this._getEndomorphism(conf);
31743 this._endoWnafT1 = new Array(
4);
31744 this._endoWnafT2 = new Array(
4);
31746 inherits(ShortCurve, Base);
31747 module.exports = ShortCurve;
31749 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
31750 // No efficient endomorphism
31751 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
31754 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
31758 beta = new BN(conf.beta,
16).toRed(this.red);
31760 var betas = this._getEndoRoots(this.p);
31761 // Choose the smallest beta
31762 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
31763 beta = beta.toRed(this.red);
31766 lambda = new BN(conf.lambda,
16);
31768 // Choose the lambda that is matching selected beta
31769 var lambdas = this._getEndoRoots(this.n);
31770 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
31771 lambda = lambdas[
0];
31773 lambda = lambdas[
1];
31774 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
31778 // Get basis vectors, used for balanced length-two representation
31781 basis = conf.basis.map(function(vec) {
31783 a: new BN(vec.a,
16),
31784 b: new BN(vec.b,
16)
31788 basis = this._getEndoBasis(lambda);
31798 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
31799 // Find roots of for x^
2 + x +
1 in F
31800 // Root = (-
1 +- Sqrt(-
3)) /
2
31802 var red = num === this.p ? this.red : BN.mont(num);
31803 var tinv = new BN(
2).toRed(red).redInvm();
31804 var ntinv = tinv.redNeg();
31806 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
31808 var l1 = ntinv.redAdd(s).fromRed();
31809 var l2 = ntinv.redSub(s).fromRed();
31813 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
31814 // aprxSqrt
>= sqrt(this.n)
31815 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
31818 // Run EGCD, until r(L +
1) < aprxSqrt
31820 var v = this.n.clone();
31821 var x1 = new BN(
1);
31822 var y1 = new BN(
0);
31823 var x2 = new BN(
0);
31824 var y2 = new BN(
1);
31826 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
31840 while (u.cmpn(
0) !==
0) {
31842 r = v.sub(q.mul(u));
31843 x = x2.sub(q.mul(x1));
31844 var y = y2.sub(q.mul(y1));
31846 if (!a1 && r.cmp(aprxSqrt) <
0) {
31851 } else if (a1 && ++i ===
2) {
31866 var len1 = a1.sqr().add(b1.sqr());
31867 var len2 = a2.sqr().add(b2.sqr());
31868 if (len2.cmp(len1)
>=
0) {
31889 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
31890 var basis = this.endo.basis;
31894 var c1 = v2.b.mul(k).divRound(this.n);
31895 var c2 = v1.b.neg().mul(k).divRound(this.n);
31897 var p1 = c1.mul(v1.a);
31898 var p2 = c2.mul(v2.a);
31899 var q1 = c1.mul(v1.b);
31900 var q2 = c2.mul(v2.b);
31902 // Calculate answer
31903 var k1 = k.sub(p1).sub(p2);
31904 var k2 = q1.add(q2).neg();
31905 return { k1: k1, k2: k2 };
31908 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
31911 x = x.toRed(this.red);
31913 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
31914 var y = y2.redSqrt();
31915 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
31916 throw new Error('invalid point');
31918 // XXX Is there any way to tell if the number is odd without converting it
31919 // to non-red form?
31920 var isOdd = y.fromRed().isOdd();
31921 if (odd && !isOdd || !odd && isOdd)
31924 return this.point(x, y);
31927 ShortCurve.prototype.validate = function validate(point) {
31934 var ax = this.a.redMul(x);
31935 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
31936 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
31939 ShortCurve.prototype._endoWnafMulAdd =
31940 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
31941 var npoints = this._endoWnafT1;
31942 var ncoeffs = this._endoWnafT2;
31943 for (var i =
0; i < points.length; i++) {
31944 var split = this._endoSplit(coeffs[i]);
31946 var beta = p._getBeta();
31948 if (split.k1.negative) {
31952 if (split.k2.negative) {
31954 beta = beta.neg(true);
31957 npoints[i *
2] = p;
31958 npoints[i *
2 +
1] = beta;
31959 ncoeffs[i *
2] = split.k1;
31960 ncoeffs[i *
2 +
1] = split.k2;
31962 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
31964 // Clean-up references to points and coefficients
31965 for (var j =
0; j < i *
2; j++) {
31972 function Point(curve, x, y, isRed) {
31973 Base.BasePoint.call(this, curve, 'affine');
31974 if (x === null && y === null) {
31979 this.x = new BN(x,
16);
31980 this.y = new BN(y,
16);
31981 // Force redgomery representation when loading from JSON
31983 this.x.forceRed(this.curve.red);
31984 this.y.forceRed(this.curve.red);
31987 this.x = this.x.toRed(this.curve.red);
31989 this.y = this.y.toRed(this.curve.red);
31993 inherits(Point, Base.BasePoint);
31995 ShortCurve.prototype.point = function point(x, y, isRed) {
31996 return new Point(this, x, y, isRed);
31999 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
32000 return Point.fromJSON(this, obj, red);
32003 Point.prototype._getBeta = function _getBeta() {
32004 if (!this.curve.endo)
32007 var pre = this.precomputed;
32008 if (pre && pre.beta)
32011 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
32013 var curve = this.curve;
32014 var endoMul = function(p) {
32015 return curve.point(p.x.redMul(curve.endo.beta), p.y);
32018 beta.precomputed = {
32022 points: pre.naf.points.map(endoMul)
32024 doubles: pre.doubles && {
32025 step: pre.doubles.step,
32026 points: pre.doubles.points.map(endoMul)
32033 Point.prototype.toJSON = function toJSON() {
32034 if (!this.precomputed)
32035 return [ this.x, this.y ];
32037 return [ this.x, this.y, this.precomputed && {
32038 doubles: this.precomputed.doubles && {
32039 step: this.precomputed.doubles.step,
32040 points: this.precomputed.doubles.points.slice(
1)
32042 naf: this.precomputed.naf && {
32043 wnd: this.precomputed.naf.wnd,
32044 points: this.precomputed.naf.points.slice(
1)
32049 Point.fromJSON = function fromJSON(curve, obj, red) {
32050 if (typeof obj === 'string')
32051 obj = JSON.parse(obj);
32052 var res = curve.point(obj[
0], obj[
1], red);
32056 function obj2point(obj) {
32057 return curve.point(obj[
0], obj[
1], red);
32061 res.precomputed = {
32063 doubles: pre.doubles && {
32064 step: pre.doubles.step,
32065 points: [ res ].concat(pre.doubles.points.map(obj2point))
32069 points: [ res ].concat(pre.naf.points.map(obj2point))
32075 Point.prototype.inspect = function inspect() {
32076 if (this.isInfinity())
32077 return '
<EC Point Infinity
>';
32078 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
32079 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
32082 Point.prototype.isInfinity = function isInfinity() {
32086 Point.prototype.add = function add(p) {
32100 if (this.neg().eq(p))
32101 return this.curve.point(null, null);
32104 if (this.x.cmp(p.x) ===
0)
32105 return this.curve.point(null, null);
32107 var c = this.y.redSub(p.y);
32108 if (c.cmpn(
0) !==
0)
32109 c = c.redMul(this.x.redSub(p.x).redInvm());
32110 var nx = c.redSqr().redISub(this.x).redISub(p.x);
32111 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
32112 return this.curve.point(nx, ny);
32115 Point.prototype.dbl = function dbl() {
32120 var ys1 = this.y.redAdd(this.y);
32121 if (ys1.cmpn(
0) ===
0)
32122 return this.curve.point(null, null);
32124 var a = this.curve.a;
32126 var x2 = this.x.redSqr();
32127 var dyinv = ys1.redInvm();
32128 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
32130 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
32131 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
32132 return this.curve.point(nx, ny);
32135 Point.prototype.getX = function getX() {
32136 return this.x.fromRed();
32139 Point.prototype.getY = function getY() {
32140 return this.y.fromRed();
32143 Point.prototype.mul = function mul(k) {
32146 if (this._hasDoubles(k))
32147 return this.curve._fixedNafMul(this, k);
32148 else if (this.curve.endo)
32149 return this.curve._endoWnafMulAdd([ this ], [ k ]);
32151 return this.curve._wnafMul(this, k);
32154 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
32155 var points = [ this, p2 ];
32156 var coeffs = [ k1, k2 ];
32157 if (this.curve.endo)
32158 return this.curve._endoWnafMulAdd(points, coeffs);
32160 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
32163 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
32164 var points = [ this, p2 ];
32165 var coeffs = [ k1, k2 ];
32166 if (this.curve.endo)
32167 return this.curve._endoWnafMulAdd(points, coeffs, true);
32169 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
32172 Point.prototype.eq = function eq(p) {
32173 return this === p ||
32174 this.inf === p.inf &&
32175 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
32178 Point.prototype.neg = function neg(_precompute) {
32182 var res = this.curve.point(this.x, this.y.redNeg());
32183 if (_precompute && this.precomputed) {
32184 var pre = this.precomputed;
32185 var negate = function(p) {
32188 res.precomputed = {
32191 points: pre.naf.points.map(negate)
32193 doubles: pre.doubles && {
32194 step: pre.doubles.step,
32195 points: pre.doubles.points.map(negate)
32202 Point.prototype.toJ = function toJ() {
32204 return this.curve.jpoint(null, null, null);
32206 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
32210 function JPoint(curve, x, y, z) {
32211 Base.BasePoint.call(this, curve, 'jacobian');
32212 if (x === null && y === null && z === null) {
32213 this.x = this.curve.one;
32214 this.y = this.curve.one;
32215 this.z = new BN(
0);
32217 this.x = new BN(x,
16);
32218 this.y = new BN(y,
16);
32219 this.z = new BN(z,
16);
32222 this.x = this.x.toRed(this.curve.red);
32224 this.y = this.y.toRed(this.curve.red);
32226 this.z = this.z.toRed(this.curve.red);
32228 this.zOne = this.z === this.curve.one;
32230 inherits(JPoint, Base.BasePoint);
32232 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
32233 return new JPoint(this, x, y, z);
32236 JPoint.prototype.toP = function toP() {
32237 if (this.isInfinity())
32238 return this.curve.point(null, null);
32240 var zinv = this.z.redInvm();
32241 var zinv2 = zinv.redSqr();
32242 var ax = this.x.redMul(zinv2);
32243 var ay = this.y.redMul(zinv2).redMul(zinv);
32245 return this.curve.point(ax, ay);
32248 JPoint.prototype.neg = function neg() {
32249 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
32252 JPoint.prototype.add = function add(p) {
32254 if (this.isInfinity())
32258 if (p.isInfinity())
32262 var pz2 = p.z.redSqr();
32263 var z2 = this.z.redSqr();
32264 var u1 = this.x.redMul(pz2);
32265 var u2 = p.x.redMul(z2);
32266 var s1 = this.y.redMul(pz2.redMul(p.z));
32267 var s2 = p.y.redMul(z2.redMul(this.z));
32269 var h = u1.redSub(u2);
32270 var r = s1.redSub(s2);
32271 if (h.cmpn(
0) ===
0) {
32272 if (r.cmpn(
0) !==
0)
32273 return this.curve.jpoint(null, null, null);
32278 var h2 = h.redSqr();
32279 var h3 = h2.redMul(h);
32280 var v = u1.redMul(h2);
32282 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
32283 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
32284 var nz = this.z.redMul(p.z).redMul(h);
32286 return this.curve.jpoint(nx, ny, nz);
32289 JPoint.prototype.mixedAdd = function mixedAdd(p) {
32291 if (this.isInfinity())
32295 if (p.isInfinity())
32299 var z2 = this.z.redSqr();
32301 var u2 = p.x.redMul(z2);
32303 var s2 = p.y.redMul(z2).redMul(this.z);
32305 var h = u1.redSub(u2);
32306 var r = s1.redSub(s2);
32307 if (h.cmpn(
0) ===
0) {
32308 if (r.cmpn(
0) !==
0)
32309 return this.curve.jpoint(null, null, null);
32314 var h2 = h.redSqr();
32315 var h3 = h2.redMul(h);
32316 var v = u1.redMul(h2);
32318 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
32319 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
32320 var nz = this.z.redMul(h);
32322 return this.curve.jpoint(nx, ny, nz);
32325 JPoint.prototype.dblp = function dblp(pow) {
32328 if (this.isInfinity())
32333 if (this.curve.zeroA || this.curve.threeA) {
32335 for (var i =
0; i < pow; i++)
32340 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
32341 // N =
1 =
> 6M +
6S +
9A
32342 var a = this.curve.a;
32343 var tinv = this.curve.tinv;
32348 var jz4 = jz.redSqr().redSqr();
32351 var jyd = jy.redAdd(jy);
32352 for (var i =
0; i < pow; i++) {
32353 var jx2 = jx.redSqr();
32354 var jyd2 = jyd.redSqr();
32355 var jyd4 = jyd2.redSqr();
32356 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
32358 var t1 = jx.redMul(jyd2);
32359 var nx = c.redSqr().redISub(t1.redAdd(t1));
32360 var t2 = t1.redISub(nx);
32361 var dny = c.redMul(t2);
32362 dny = dny.redIAdd(dny).redISub(jyd4);
32363 var nz = jyd.redMul(jz);
32365 jz4 = jz4.redMul(jyd4);
32372 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
32375 JPoint.prototype.dbl = function dbl() {
32376 if (this.isInfinity())
32379 if (this.curve.zeroA)
32380 return this._zeroDbl();
32381 else if (this.curve.threeA)
32382 return this._threeDbl();
32384 return this._dbl();
32387 JPoint.prototype._zeroDbl = function _zeroDbl() {
32393 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
32394 // #doubling-mdbl-
2007-bl
32398 var xx = this.x.redSqr();
32400 var yy = this.y.redSqr();
32402 var yyyy = yy.redSqr();
32403 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
32404 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32406 // M =
3 * XX + a; a =
0
32407 var m = xx.redAdd(xx).redIAdd(xx);
32409 var t = m.redSqr().redISub(s).redISub(s);
32412 var yyyy8 = yyyy.redIAdd(yyyy);
32413 yyyy8 = yyyy8.redIAdd(yyyy8);
32414 yyyy8 = yyyy8.redIAdd(yyyy8);
32418 // Y3 = M * (S - T) -
8 * YYYY
32419 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
32421 nz = this.y.redAdd(this.y);
32423 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
32424 // #doubling-dbl-
2009-l
32428 var a = this.x.redSqr();
32430 var b = this.y.redSqr();
32432 var c = b.redSqr();
32433 // D =
2 * ((X1 + B)^
2 - A - C)
32434 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
32437 var e = a.redAdd(a).redIAdd(a);
32439 var f = e.redSqr();
32442 var c8 = c.redIAdd(c);
32443 c8 = c8.redIAdd(c8);
32444 c8 = c8.redIAdd(c8);
32447 nx = f.redISub(d).redISub(d);
32448 // Y3 = E * (D - X3) -
8 * C
32449 ny = e.redMul(d.redISub(nx)).redISub(c8);
32450 // Z3 =
2 * Y1 * Z1
32451 nz = this.y.redMul(this.z);
32452 nz = nz.redIAdd(nz);
32455 return this.curve.jpoint(nx, ny, nz);
32458 JPoint.prototype._threeDbl = function _threeDbl() {
32464 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
32465 // #doubling-mdbl-
2007-bl
32469 var xx = this.x.redSqr();
32471 var yy = this.y.redSqr();
32473 var yyyy = yy.redSqr();
32474 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
32475 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32478 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
32480 var t = m.redSqr().redISub(s).redISub(s);
32483 // Y3 = M * (S - T) -
8 * YYYY
32484 var yyyy8 = yyyy.redIAdd(yyyy);
32485 yyyy8 = yyyy8.redIAdd(yyyy8);
32486 yyyy8 = yyyy8.redIAdd(yyyy8);
32487 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
32489 nz = this.y.redAdd(this.y);
32491 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
32495 var delta = this.z.redSqr();
32497 var gamma = this.y.redSqr();
32498 // beta = X1 * gamma
32499 var beta = this.x.redMul(gamma);
32500 // alpha =
3 * (X1 - delta) * (X1 + delta)
32501 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
32502 alpha = alpha.redAdd(alpha).redIAdd(alpha);
32503 // X3 = alpha^
2 -
8 * beta
32504 var beta4 = beta.redIAdd(beta);
32505 beta4 = beta4.redIAdd(beta4);
32506 var beta8 = beta4.redAdd(beta4);
32507 nx = alpha.redSqr().redISub(beta8);
32508 // Z3 = (Y1 + Z1)^
2 - gamma - delta
32509 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
32510 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
32511 var ggamma8 = gamma.redSqr();
32512 ggamma8 = ggamma8.redIAdd(ggamma8);
32513 ggamma8 = ggamma8.redIAdd(ggamma8);
32514 ggamma8 = ggamma8.redIAdd(ggamma8);
32515 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
32518 return this.curve.jpoint(nx, ny, nz);
32521 JPoint.prototype._dbl = function _dbl() {
32522 var a = this.curve.a;
32528 var jz4 = jz.redSqr().redSqr();
32530 var jx2 = jx.redSqr();
32531 var jy2 = jy.redSqr();
32533 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
32535 var jxd4 = jx.redAdd(jx);
32536 jxd4 = jxd4.redIAdd(jxd4);
32537 var t1 = jxd4.redMul(jy2);
32538 var nx = c.redSqr().redISub(t1.redAdd(t1));
32539 var t2 = t1.redISub(nx);
32541 var jyd8 = jy2.redSqr();
32542 jyd8 = jyd8.redIAdd(jyd8);
32543 jyd8 = jyd8.redIAdd(jyd8);
32544 jyd8 = jyd8.redIAdd(jyd8);
32545 var ny = c.redMul(t2).redISub(jyd8);
32546 var nz = jy.redAdd(jy).redMul(jz);
32548 return this.curve.jpoint(nx, ny, nz);
32551 JPoint.prototype.trpl = function trpl() {
32552 if (!this.curve.zeroA)
32553 return this.dbl().add(this);
32555 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
32559 var xx = this.x.redSqr();
32561 var yy = this.y.redSqr();
32563 var zz = this.z.redSqr();
32565 var yyyy = yy.redSqr();
32566 // M =
3 * XX + a * ZZ2; a =
0
32567 var m = xx.redAdd(xx).redIAdd(xx);
32569 var mm = m.redSqr();
32570 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
32571 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32573 e = e.redAdd(e).redIAdd(e);
32576 var ee = e.redSqr();
32578 var t = yyyy.redIAdd(yyyy);
32582 // U = (M + E)^
2 - MM - EE - T
32583 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
32584 // X3 =
4 * (X1 * EE -
4 * YY * U)
32585 var yyu4 = yy.redMul(u);
32586 yyu4 = yyu4.redIAdd(yyu4);
32587 yyu4 = yyu4.redIAdd(yyu4);
32588 var nx = this.x.redMul(ee).redISub(yyu4);
32589 nx = nx.redIAdd(nx);
32590 nx = nx.redIAdd(nx);
32591 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
32592 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
32593 ny = ny.redIAdd(ny);
32594 ny = ny.redIAdd(ny);
32595 ny = ny.redIAdd(ny);
32596 // Z3 = (Z1 + E)^
2 - ZZ - EE
32597 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
32599 return this.curve.jpoint(nx, ny, nz);
32602 JPoint.prototype.mul = function mul(k, kbase) {
32603 k = new BN(k, kbase);
32605 return this.curve._wnafMul(this, k);
32608 JPoint.prototype.eq = function eq(p) {
32609 if (p.type === 'affine')
32610 return this.eq(p.toJ());
32615 // x1 * z2^
2 == x2 * z1^
2
32616 var z2 = this.z.redSqr();
32617 var pz2 = p.z.redSqr();
32618 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
32621 // y1 * z2^
3 == y2 * z1^
3
32622 var z3 = z2.redMul(this.z);
32623 var pz3 = pz2.redMul(p.z);
32624 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
32627 JPoint.prototype.eqXToP = function eqXToP(x) {
32628 var zs = this.z.redSqr();
32629 var rx = x.toRed(this.curve.red).redMul(zs);
32630 if (this.x.cmp(rx) ===
0)
32633 var xc = x.clone();
32634 var t = this.curve.redN.redMul(zs);
32636 xc.iadd(this.curve.n);
32637 if (xc.cmp(this.curve.p)
>=
0)
32641 if (this.x.cmp(rx) ===
0)
32647 JPoint.prototype.inspect = function inspect() {
32648 if (this.isInfinity())
32649 return '
<EC JPoint Infinity
>';
32650 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
32651 ' y: ' + this.y.toString(
16,
2) +
32652 ' z: ' + this.z.toString(
16,
2) + '
>';
32655 JPoint.prototype.isInfinity = function isInfinity() {
32656 // XXX This code assumes that zero is always zero in red
32657 return this.z.cmpn(
0) ===
0;
32660 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
32663 var curves = exports;
32665 var hash = require('hash.js');
32666 var elliptic = require('../elliptic');
32668 var assert = elliptic.utils.assert;
32670 function PresetCurve(options) {
32671 if (options.type === 'short')
32672 this.curve = new elliptic.curve.short(options);
32673 else if (options.type === 'edwards')
32674 this.curve = new elliptic.curve.edwards(options);
32676 this.curve = new elliptic.curve.mont(options);
32677 this.g = this.curve.g;
32678 this.n = this.curve.n;
32679 this.hash = options.hash;
32681 assert(this.g.validate(), 'Invalid curve');
32682 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
32684 curves.PresetCurve = PresetCurve;
32686 function defineCurve(name, options) {
32687 Object.defineProperty(curves, name, {
32688 configurable: true,
32691 var curve = new PresetCurve(options);
32692 Object.defineProperty(curves, name, {
32693 configurable: true,
32702 defineCurve('p192', {
32705 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
32706 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
32707 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
32708 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
32712 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
32713 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
32717 defineCurve('p224', {
32720 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
32721 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
32722 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
32723 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
32727 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
32728 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
32732 defineCurve('p256', {
32735 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
32736 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
32737 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
32738 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
32742 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
32743 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
32747 defineCurve('p384', {
32750 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32751 'fffffffe ffffffff
00000000 00000000 ffffffff',
32752 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32753 'fffffffe ffffffff
00000000 00000000 fffffffc',
32754 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
32755 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
32756 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
32757 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
32761 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
32762 '
5502f25d bf55296c
3a545e38
72760ab7',
32763 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
32764 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
32768 defineCurve('p521', {
32771 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32772 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32773 'ffffffff ffffffff ffffffff ffffffff ffffffff',
32774 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32775 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32776 'ffffffff ffffffff ffffffff ffffffff fffffffc',
32777 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
32778 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
32779 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
32780 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32781 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
32782 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
32786 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
32787 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
32788 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
32789 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
32790 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
32791 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
32795 defineCurve('curve25519', {
32798 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
32801 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
32809 defineCurve('ed25519', {
32812 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
32815 // -
121665 * (
121666^(-
1)) (mod P)
32816 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
32817 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
32821 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
32824 '
6666666666666666666666666666666666666666666666666666666666666658'
32830 pre = require('./precomputed/secp256k1');
32835 defineCurve('secp256k1', {
32838 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
32841 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
32845 // Precomputed endomorphism
32846 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
32847 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
32850 a: '
3086d221a7d46bcde86c90e49284eb15',
32851 b: '-e4437ed6010e88286f547fa90abfe4c3'
32854 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
32855 b: '
3086d221a7d46bcde86c90e49284eb15'
32861 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
32862 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
32867 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
32870 var BN = require('bn.js');
32871 var elliptic = require('../../elliptic');
32872 var utils = elliptic.utils;
32873 var assert = utils.assert;
32875 var KeyPair = require('./key');
32876 var Signature = require('./signature');
32878 function EC(options) {
32879 if (!(this instanceof EC))
32880 return new EC(options);
32882 // Shortcut `elliptic.ec(curve-name)`
32883 if (typeof options === 'string') {
32884 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
32886 options = elliptic.curves[options];
32889 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
32890 if (options instanceof elliptic.curves.PresetCurve)
32891 options = { curve: options };
32893 this.curve = options.curve.curve;
32894 this.n = this.curve.n;
32895 this.nh = this.n.ushrn(
1);
32896 this.g = this.curve.g;
32899 this.g = options.curve.g;
32900 this.g.precompute(options.curve.n.bitLength() +
1);
32902 // Hash for function for DRBG
32903 this.hash = options.hash || options.curve.hash;
32905 module.exports = EC;
32907 EC.prototype.keyPair = function keyPair(options) {
32908 return new KeyPair(this, options);
32911 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
32912 return KeyPair.fromPrivate(this, priv, enc);
32915 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
32916 return KeyPair.fromPublic(this, pub, enc);
32919 EC.prototype.genKeyPair = function genKeyPair(options) {
32923 // Instantiate Hmac_DRBG
32924 var drbg = new elliptic.hmacDRBG({
32926 pers: options.pers,
32927 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
32928 nonce: this.n.toArray()
32931 var bytes = this.n.byteLength();
32932 var ns2 = this.n.sub(new BN(
2));
32934 var priv = new BN(drbg.generate(bytes));
32935 if (priv.cmp(ns2)
> 0)
32939 return this.keyFromPrivate(priv);
32943 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
32944 var delta = msg.byteLength() *
8 - this.n.bitLength();
32946 msg = msg.ushrn(delta);
32947 if (!truncOnly && msg.cmp(this.n)
>=
0)
32948 return msg.sub(this.n);
32953 EC.prototype.sign = function sign(msg, key, enc, options) {
32954 if (typeof enc === 'object') {
32961 key = this.keyFromPrivate(key, enc);
32962 msg = this._truncateToN(new BN(msg,
16));
32964 // Zero-extend key to provide enough entropy
32965 var bytes = this.n.byteLength();
32966 var bkey = key.getPrivate().toArray('be', bytes);
32968 // Zero-extend nonce to have the same byte size as N
32969 var nonce = msg.toArray('be', bytes);
32971 // Instantiate Hmac_DRBG
32972 var drbg = new elliptic.hmacDRBG({
32976 pers: options.pers,
32977 persEnc: options.persEnc
32980 // Number of bytes to generate
32981 var ns1 = this.n.sub(new BN(
1));
32983 for (var iter =
0; true; iter++) {
32984 var k = options.k ?
32986 new BN(drbg.generate(this.n.byteLength()));
32987 k = this._truncateToN(k, true);
32988 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
32991 var kp = this.g.mul(k);
32992 if (kp.isInfinity())
32995 var kpX = kp.getX();
32996 var r = kpX.umod(this.n);
32997 if (r.cmpn(
0) ===
0)
33000 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
33001 s = s.umod(this.n);
33002 if (s.cmpn(
0) ===
0)
33005 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
33006 (kpX.cmp(r) !==
0 ?
2 :
0);
33008 // Use complement of `s`, if it is
> `n /
2`
33009 if (options.canonical && s.cmp(this.nh)
> 0) {
33011 recoveryParam ^=
1;
33014 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
33018 EC.prototype.verify = function verify(msg, signature, key, enc) {
33019 msg = this._truncateToN(new BN(msg,
16));
33020 key = this.keyFromPublic(key, enc);
33021 signature = new Signature(signature, 'hex');
33023 // Perform primitive values validation
33024 var r = signature.r;
33025 var s = signature.s;
33026 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
33028 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
33031 // Validate signature
33032 var sinv = s.invm(this.n);
33033 var u1 = sinv.mul(msg).umod(this.n);
33034 var u2 = sinv.mul(r).umod(this.n);
33036 if (!this.curve._maxwellTrick) {
33037 var p = this.g.mulAdd(u1, key.getPublic(), u2);
33038 if (p.isInfinity())
33041 return p.getX().umod(this.n).cmp(r) ===
0;
33044 // NOTE: Greg Maxwell's trick, inspired by:
33045 // https://git.io/vad3K
33047 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
33048 if (p.isInfinity())
33051 // Compare `p.x` of Jacobian point with `r`,
33052 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
33053 // inverse of `p.z^
2`
33054 return p.eqXToP(r);
33057 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
33058 assert((
3 & j) === j, 'The recovery param is more than two bits');
33059 signature = new Signature(signature, enc);
33062 var e = new BN(msg);
33063 var r = signature.r;
33064 var s = signature.s;
33066 // A set LSB signifies that the y-coordinate is odd
33067 var isYOdd = j &
1;
33068 var isSecondKey = j
>> 1;
33069 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
33070 throw new Error('Unable to find sencond key candinate');
33072 //
1.1. Let x = r + jn.
33074 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
33076 r = this.curve.pointFromX(r, isYOdd);
33078 var rInv = signature.r.invm(n);
33079 var s1 = n.sub(e).mul(rInv).umod(n);
33080 var s2 = s.mul(rInv).umod(n);
33082 //
1.6.1 Compute Q = r^-
1 (sR - eG)
33083 // Q = r^-
1 (sR + -eG)
33084 return this.g.mulAdd(s1, r, s2);
33087 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
33088 signature = new Signature(signature, enc);
33089 if (signature.recoveryParam !== null)
33090 return signature.recoveryParam;
33092 for (var i =
0; i <
4; i++) {
33095 Qprime = this.recoverPubKey(e, signature, i);
33103 throw new Error('Unable to find valid recovery factor');
33106 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
33109 var BN = require('bn.js');
33110 var elliptic = require('../../elliptic');
33111 var utils = elliptic.utils;
33112 var assert = utils.assert;
33114 function KeyPair(ec, options) {
33119 // KeyPair(ec, { priv: ..., pub: ... })
33121 this._importPrivate(options.priv, options.privEnc);
33123 this._importPublic(options.pub, options.pubEnc);
33125 module.exports = KeyPair;
33127 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
33128 if (pub instanceof KeyPair)
33131 return new KeyPair(ec, {
33137 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
33138 if (priv instanceof KeyPair)
33141 return new KeyPair(ec, {
33147 KeyPair.prototype.validate = function validate() {
33148 var pub = this.getPublic();
33150 if (pub.isInfinity())
33151 return { result: false, reason: 'Invalid public key' };
33152 if (!pub.validate())
33153 return { result: false, reason: 'Public key is not a point' };
33154 if (!pub.mul(this.ec.curve.n).isInfinity())
33155 return { result: false, reason: 'Public key * N != O' };
33157 return { result: true, reason: null };
33160 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
33161 // compact is optional argument
33162 if (typeof compact === 'string') {
33168 this.pub = this.ec.g.mul(this.priv);
33173 return this.pub.encode(enc, compact);
33176 KeyPair.prototype.getPrivate = function getPrivate(enc) {
33178 return this.priv.toString(
16,
2);
33183 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
33184 this.priv = new BN(key, enc ||
16);
33186 // Ensure that the priv won't be bigger than n, otherwise we may fail
33187 // in fixed multiplication method
33188 this.priv = this.priv.umod(this.ec.curve.n);
33191 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
33192 if (key.x || key.y) {
33193 // Montgomery points only have an `x` coordinate.
33194 // Weierstrass/Edwards points on the other hand have both `x` and
33195 // `y` coordinates.
33196 if (this.ec.curve.type === 'mont') {
33197 assert(key.x, 'Need x coordinate');
33198 } else if (this.ec.curve.type === 'short' ||
33199 this.ec.curve.type === 'edwards') {
33200 assert(key.x && key.y, 'Need both x and y coordinate');
33202 this.pub = this.ec.curve.point(key.x, key.y);
33205 this.pub = this.ec.curve.decodePoint(key, enc);
33209 KeyPair.prototype.derive = function derive(pub) {
33210 return pub.mul(this.priv).getX();
33214 KeyPair.prototype.sign = function sign(msg, enc, options) {
33215 return this.ec.sign(msg, this, enc, options);
33218 KeyPair.prototype.verify = function verify(msg, signature) {
33219 return this.ec.verify(msg, signature, this);
33222 KeyPair.prototype.inspect = function inspect() {
33223 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
33224 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
33227 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
33230 var BN = require('bn.js');
33232 var elliptic = require('../../elliptic');
33233 var utils = elliptic.utils;
33234 var assert = utils.assert;
33236 function Signature(options, enc) {
33237 if (options instanceof Signature)
33240 if (this._importDER(options, enc))
33243 assert(options.r && options.s, 'Signature without r or s');
33244 this.r = new BN(options.r,
16);
33245 this.s = new BN(options.s,
16);
33246 if (options.recoveryParam === undefined)
33247 this.recoveryParam = null;
33249 this.recoveryParam = options.recoveryParam;
33251 module.exports = Signature;
33253 function Position() {
33257 function getLength(buf, p) {
33258 var initial = buf[p.place++];
33259 if (!(initial &
0x80)) {
33262 var octetLen = initial &
0xf;
33264 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
33272 function rmPadding(buf) {
33274 var len = buf.length -
1;
33275 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
33281 return buf.slice(i);
33284 Signature.prototype._importDER = function _importDER(data, enc) {
33285 data = utils.toArray(data, enc);
33286 var p = new Position();
33287 if (data[p.place++] !==
0x30) {
33290 var len = getLength(data, p);
33291 if ((len + p.place) !== data.length) {
33294 if (data[p.place++] !==
0x02) {
33297 var rlen = getLength(data, p);
33298 var r = data.slice(p.place, rlen + p.place);
33300 if (data[p.place++] !==
0x02) {
33303 var slen = getLength(data, p);
33304 if (data.length !== slen + p.place) {
33307 var s = data.slice(p.place, slen + p.place);
33308 if (r[
0] ===
0 && (r[
1] &
0x80)) {
33311 if (s[
0] ===
0 && (s[
1] &
0x80)) {
33315 this.r = new BN(r);
33316 this.s = new BN(s);
33317 this.recoveryParam = null;
33322 function constructLength(arr, len) {
33327 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
33328 arr.push(octets |
0x80);
33330 arr.push((len
>>> (octets <<
3)) &
0xff);
33335 Signature.prototype.toDER = function toDER(enc) {
33336 var r = this.r.toArray();
33337 var s = this.s.toArray();
33341 r = [
0 ].concat(r);
33344 s = [
0 ].concat(s);
33349 while (!s[
0] && !(s[
1] &
0x80)) {
33352 var arr = [
0x02 ];
33353 constructLength(arr, r.length);
33354 arr = arr.concat(r);
33356 constructLength(arr, s.length);
33357 var backHalf = arr.concat(s);
33358 var res = [
0x30 ];
33359 constructLength(res, backHalf.length);
33360 res = res.concat(backHalf);
33361 return utils.encode(res, enc);
33364 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
33367 var hash = require('hash.js');
33368 var elliptic = require('../../elliptic');
33369 var utils = elliptic.utils;
33370 var assert = utils.assert;
33371 var parseBytes = utils.parseBytes;
33372 var KeyPair = require('./key');
33373 var Signature = require('./signature');
33375 function EDDSA(curve) {
33376 assert(curve === 'ed25519', 'only tested with ed25519 so far');
33378 if (!(this instanceof EDDSA))
33379 return new EDDSA(curve);
33381 var curve = elliptic.curves[curve].curve;
33382 this.curve = curve;
33384 this.g.precompute(curve.n.bitLength() +
1);
33386 this.pointClass = curve.point().constructor;
33387 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
33388 this.hash = hash.sha512;
33391 module.exports = EDDSA;
33394 * @param {Array|String} message - message bytes
33395 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
33396 * @returns {Signature} - signature
33398 EDDSA.prototype.sign = function sign(message, secret) {
33399 message = parseBytes(message);
33400 var key = this.keyFromSecret(secret);
33401 var r = this.hashInt(key.messagePrefix(), message);
33402 var R = this.g.mul(r);
33403 var Rencoded = this.encodePoint(R);
33404 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
33406 var S = r.add(s_).umod(this.curve.n);
33407 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
33411 * @param {Array} message - message bytes
33412 * @param {Array|String|Signature} sig - sig bytes
33413 * @param {Array|String|Point|KeyPair} pub - public key
33414 * @returns {Boolean} - true if public key matches sig of message
33416 EDDSA.prototype.verify = function verify(message, sig, pub) {
33417 message = parseBytes(message);
33418 sig = this.makeSignature(sig);
33419 var key = this.keyFromPublic(pub);
33420 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
33421 var SG = this.g.mul(sig.S());
33422 var RplusAh = sig.R().add(key.pub().mul(h));
33423 return RplusAh.eq(SG);
33426 EDDSA.prototype.hashInt = function hashInt() {
33427 var hash = this.hash();
33428 for (var i =
0; i < arguments.length; i++)
33429 hash.update(arguments[i]);
33430 return utils.intFromLE(hash.digest()).umod(this.curve.n);
33433 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
33434 return KeyPair.fromPublic(this, pub);
33437 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
33438 return KeyPair.fromSecret(this, secret);
33441 EDDSA.prototype.makeSignature = function makeSignature(sig) {
33442 if (sig instanceof Signature)
33444 return new Signature(this, sig);
33448 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
33450 * EDDSA defines methods for encoding and decoding points and integers. These are
33451 * helper convenience methods, that pass along to utility functions implied
33455 EDDSA.prototype.encodePoint = function encodePoint(point) {
33456 var enc = point.getY().toArray('le', this.encodingLength);
33457 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
33461 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
33462 bytes = utils.parseBytes(bytes);
33464 var lastIx = bytes.length -
1;
33465 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
33466 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
33468 var y = utils.intFromLE(normed);
33469 return this.curve.pointFromY(y, xIsOdd);
33472 EDDSA.prototype.encodeInt = function encodeInt(num) {
33473 return num.toArray('le', this.encodingLength);
33476 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
33477 return utils.intFromLE(bytes);
33480 EDDSA.prototype.isPoint = function isPoint(val) {
33481 return val instanceof this.pointClass;
33484 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
33487 var elliptic = require('../../elliptic');
33488 var utils = elliptic.utils;
33489 var assert = utils.assert;
33490 var parseBytes = utils.parseBytes;
33491 var cachedProperty = utils.cachedProperty;
33494 * @param {EDDSA} eddsa - instance
33495 * @param {Object} params - public/private key parameters
33497 * @param {Array
<Byte>} [params.secret] - secret seed bytes
33498 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
33499 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
33502 function KeyPair(eddsa, params) {
33503 this.eddsa = eddsa;
33504 this._secret = parseBytes(params.secret);
33505 if (eddsa.isPoint(params.pub))
33506 this._pub = params.pub;
33508 this._pubBytes = parseBytes(params.pub);
33511 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
33512 if (pub instanceof KeyPair)
33514 return new KeyPair(eddsa, { pub: pub });
33517 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
33518 if (secret instanceof KeyPair)
33520 return new KeyPair(eddsa, { secret: secret });
33523 KeyPair.prototype.secret = function secret() {
33524 return this._secret;
33527 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
33528 return this.eddsa.encodePoint(this.pub());
33531 cachedProperty(KeyPair, 'pub', function pub() {
33532 if (this._pubBytes)
33533 return this.eddsa.decodePoint(this._pubBytes);
33534 return this.eddsa.g.mul(this.priv());
33537 cachedProperty(KeyPair, 'privBytes', function privBytes() {
33538 var eddsa = this.eddsa;
33539 var hash = this.hash();
33540 var lastIx = eddsa.encodingLength -
1;
33542 var a = hash.slice(
0, eddsa.encodingLength);
33550 cachedProperty(KeyPair, 'priv', function priv() {
33551 return this.eddsa.decodeInt(this.privBytes());
33554 cachedProperty(KeyPair, 'hash', function hash() {
33555 return this.eddsa.hash().update(this.secret()).digest();
33558 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
33559 return this.hash().slice(this.eddsa.encodingLength);
33562 KeyPair.prototype.sign = function sign(message) {
33563 assert(this._secret, 'KeyPair can only verify');
33564 return this.eddsa.sign(message, this);
33567 KeyPair.prototype.verify = function verify(message, sig) {
33568 return this.eddsa.verify(message, sig, this);
33571 KeyPair.prototype.getSecret = function getSecret(enc) {
33572 assert(this._secret, 'KeyPair is public only');
33573 return utils.encode(this.secret(), enc);
33576 KeyPair.prototype.getPublic = function getPublic(enc) {
33577 return utils.encode(this.pubBytes(), enc);
33580 module.exports = KeyPair;
33582 },{"../../elliptic":
39}],
51:[function(require,module,exports){
33585 var BN = require('bn.js');
33586 var elliptic = require('../../elliptic');
33587 var utils = elliptic.utils;
33588 var assert = utils.assert;
33589 var cachedProperty = utils.cachedProperty;
33590 var parseBytes = utils.parseBytes;
33593 * @param {EDDSA} eddsa - eddsa instance
33594 * @param {Array
<Bytes>|Object} sig -
33595 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
33596 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
33597 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
33598 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
33600 function Signature(eddsa, sig) {
33601 this.eddsa = eddsa;
33603 if (typeof sig !== 'object')
33604 sig = parseBytes(sig);
33606 if (Array.isArray(sig)) {
33608 R: sig.slice(
0, eddsa.encodingLength),
33609 S: sig.slice(eddsa.encodingLength)
33613 assert(sig.R && sig.S, 'Signature without R or S');
33615 if (eddsa.isPoint(sig.R))
33617 if (sig.S instanceof BN)
33620 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
33621 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
33624 cachedProperty(Signature, 'S', function S() {
33625 return this.eddsa.decodeInt(this.Sencoded());
33628 cachedProperty(Signature, 'R', function R() {
33629 return this.eddsa.decodePoint(this.Rencoded());
33632 cachedProperty(Signature, 'Rencoded', function Rencoded() {
33633 return this.eddsa.encodePoint(this.R());
33636 cachedProperty(Signature, 'Sencoded', function Sencoded() {
33637 return this.eddsa.encodeInt(this.S());
33640 Signature.prototype.toBytes = function toBytes() {
33641 return this.Rencoded().concat(this.Sencoded());
33644 Signature.prototype.toHex = function toHex() {
33645 return utils.encode(this.toBytes(), 'hex').toUpperCase();
33648 module.exports = Signature;
33650 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
33653 var hash = require('hash.js');
33654 var elliptic = require('../elliptic');
33655 var utils = elliptic.utils;
33656 var assert = utils.assert;
33658 function HmacDRBG(options) {
33659 if (!(this instanceof HmacDRBG))
33660 return new HmacDRBG(options);
33661 this.hash = options.hash;
33662 this.predResist = !!options.predResist;
33664 this.outLen = this.hash.outSize;
33665 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
33667 this.reseed = null;
33668 this.reseedInterval = null;
33672 var entropy = utils.toArray(options.entropy, options.entropyEnc);
33673 var nonce = utils.toArray(options.nonce, options.nonceEnc);
33674 var pers = utils.toArray(options.pers, options.persEnc);
33675 assert(entropy.length
>= (this.minEntropy /
8),
33676 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
33677 this._init(entropy, nonce, pers);
33679 module.exports = HmacDRBG;
33681 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
33682 var seed = entropy.concat(nonce).concat(pers);
33684 this.K = new Array(this.outLen /
8);
33685 this.V = new Array(this.outLen /
8);
33686 for (var i =
0; i < this.V.length; i++) {
33691 this._update(seed);
33693 this.reseedInterval =
0x1000000000000; //
2^
48
33696 HmacDRBG.prototype._hmac = function hmac() {
33697 return new hash.hmac(this.hash, this.K);
33700 HmacDRBG.prototype._update = function update(seed) {
33701 var kmac = this._hmac()
33705 kmac = kmac.update(seed);
33706 this.K = kmac.digest();
33707 this.V = this._hmac().update(this.V).digest();
33711 this.K = this._hmac()
33716 this.V = this._hmac().update(this.V).digest();
33719 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
33720 // Optional entropy enc
33721 if (typeof entropyEnc !== 'string') {
33727 entropy = utils.toBuffer(entropy, entropyEnc);
33728 add = utils.toBuffer(add, addEnc);
33730 assert(entropy.length
>= (this.minEntropy /
8),
33731 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
33733 this._update(entropy.concat(add || []));
33737 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
33738 if (this.reseed
> this.reseedInterval)
33739 throw new Error('Reseed is required');
33741 // Optional encoding
33742 if (typeof enc !== 'string') {
33748 // Optional additional data
33750 add = utils.toArray(add, addEnc);
33755 while (temp.length < len) {
33756 this.V = this._hmac().update(this.V).digest();
33757 temp = temp.concat(this.V);
33760 var res = temp.slice(
0, len);
33763 return utils.encode(res, enc);
33766 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
33772 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
33773 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
33776 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
33777 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
33780 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
33781 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
33784 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
33785 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
33788 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
33789 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
33792 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
33793 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
33796 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
33797 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
33800 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
33801 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
33804 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
33805 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
33808 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
33809 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
33812 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
33813 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
33816 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
33817 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
33820 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
33821 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
33824 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
33825 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
33828 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
33829 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
33832 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
33833 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
33836 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
33837 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
33840 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
33841 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
33844 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
33845 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
33848 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
33849 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
33852 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
33853 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
33856 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
33857 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
33860 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
33861 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
33864 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
33865 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
33868 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
33869 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
33872 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
33873 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
33876 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
33877 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
33880 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
33881 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
33884 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
33885 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
33888 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
33889 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
33892 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
33893 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
33896 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
33897 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
33900 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
33901 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
33904 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
33905 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
33908 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
33909 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
33912 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
33913 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
33916 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
33917 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
33920 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
33921 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
33924 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
33925 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
33928 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
33929 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
33932 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
33933 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
33936 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
33937 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
33940 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
33941 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
33944 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
33945 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
33948 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
33949 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
33952 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
33953 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
33956 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
33957 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
33960 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
33961 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
33964 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
33965 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
33968 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
33969 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
33972 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
33973 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
33976 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
33977 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
33980 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
33981 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
33984 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
33985 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
33988 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
33989 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
33992 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
33993 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
33996 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
33997 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
34000 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
34001 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
34004 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
34005 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
34008 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
34009 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
34012 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
34013 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
34016 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
34017 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
34020 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
34021 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
34024 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
34025 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
34028 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
34029 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
34037 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
34038 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
34041 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
34042 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
34045 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
34046 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
34049 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
34050 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
34053 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
34054 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
34057 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
34058 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
34061 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
34062 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
34065 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
34066 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
34069 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
34070 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
34073 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
34074 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
34077 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
34078 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
34081 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
34082 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
34085 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
34086 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
34089 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
34090 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
34093 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
34094 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
34097 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
34098 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
34101 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
34102 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
34105 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
34106 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
34109 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
34110 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
34113 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
34114 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
34117 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
34118 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
34121 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
34122 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
34125 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
34126 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
34129 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
34130 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
34133 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
34134 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
34137 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
34138 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
34141 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
34142 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
34145 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
34146 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
34149 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
34150 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
34153 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
34154 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
34157 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
34158 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
34161 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
34162 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
34165 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
34166 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
34169 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
34170 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
34173 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
34174 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
34177 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
34178 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
34181 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
34182 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
34185 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
34186 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
34189 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
34190 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
34193 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
34194 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
34197 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
34198 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
34201 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
34202 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
34205 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
34206 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
34209 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
34210 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
34213 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
34214 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
34217 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
34218 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
34221 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
34222 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
34225 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
34226 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
34229 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
34230 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
34233 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
34234 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
34237 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
34238 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
34241 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
34242 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
34245 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
34246 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
34249 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
34250 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
34253 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
34254 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
34257 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
34258 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
34261 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
34262 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
34265 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
34266 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
34269 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
34270 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
34273 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
34274 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
34277 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
34278 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
34281 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
34282 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
34285 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
34286 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
34289 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
34290 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
34293 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
34294 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
34297 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
34298 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
34301 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
34302 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
34305 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
34306 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
34309 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
34310 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
34313 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
34314 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
34317 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
34318 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
34321 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
34322 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
34325 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
34326 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
34329 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
34330 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
34333 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
34334 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
34337 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
34338 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
34341 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
34342 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
34345 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
34346 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
34349 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
34350 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
34353 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
34354 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
34357 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
34358 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
34361 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
34362 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
34365 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
34366 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
34369 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
34370 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
34373 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
34374 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
34377 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
34378 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
34381 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
34382 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
34385 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
34386 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
34389 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
34390 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
34393 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
34394 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
34397 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
34398 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
34401 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
34402 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
34405 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
34406 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
34409 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
34410 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
34413 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
34414 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
34417 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
34418 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
34421 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
34422 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
34425 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
34426 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
34429 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
34430 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
34433 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
34434 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
34437 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
34438 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
34441 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
34442 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
34445 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
34446 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
34449 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
34450 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
34453 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
34454 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
34457 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
34458 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
34461 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
34462 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
34465 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
34466 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
34469 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
34470 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
34473 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
34474 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
34477 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
34478 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
34481 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
34482 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
34485 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
34486 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
34489 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
34490 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
34493 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
34494 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
34497 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
34498 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
34501 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
34502 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
34505 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
34506 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
34509 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
34510 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
34513 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
34514 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
34517 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
34518 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
34521 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
34522 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
34525 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
34526 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
34529 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
34530 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
34533 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
34534 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
34537 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
34538 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
34541 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
34542 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
34548 },{}],
54:[function(require,module,exports){
34551 var utils = exports;
34552 var BN = require('bn.js');
34554 utils.assert = function assert(val, msg) {
34556 throw new Error(msg || 'Assertion failed');
34559 function toArray(msg, enc) {
34560 if (Array.isArray(msg))
34561 return msg.slice();
34565 if (typeof msg !== 'string') {
34566 for (var i =
0; i < msg.length; i++)
34567 res[i] = msg[i] |
0;
34571 for (var i =
0; i < msg.length; i++) {
34572 var c = msg.charCodeAt(i);
34580 } else if (enc === 'hex') {
34581 msg = msg.replace(/[^a-z0-
9]+/ig, '');
34582 if (msg.length %
2 !==
0)
34584 for (var i =
0; i < msg.length; i +=
2)
34585 res.push(parseInt(msg[i] + msg[i +
1],
16));
34589 utils.toArray = toArray;
34591 function zero2(word) {
34592 if (word.length ===
1)
34597 utils.zero2 = zero2;
34599 function toHex(msg) {
34601 for (var i =
0; i < msg.length; i++)
34602 res += zero2(msg[i].toString(
16));
34605 utils.toHex = toHex;
34607 utils.encode = function encode(arr, enc) {
34614 // Represent num in a w-NAF form
34615 function getNAF(num, w) {
34617 var ws =
1 << (w +
1);
34618 var k = num.clone();
34619 while (k.cmpn(
1)
>=
0) {
34622 var mod = k.andln(ws -
1);
34623 if (mod
> (ws
>> 1) -
1)
34624 z = (ws
>> 1) - mod;
34633 // Optimization, shift by word if possible
34634 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
34635 for (var i =
1; i < shift; i++)
34642 utils.getNAF = getNAF;
34644 // Represent k1, k2 in a Joint Sparse Form
34645 function getJSF(k1, k2) {
34655 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
34658 var m14 = (k1.andln(
3) + d1) &
3;
34659 var m24 = (k2.andln(
3) + d2) &
3;
34665 if ((m14 &
1) ===
0) {
34668 var m8 = (k1.andln(
7) + d1) &
7;
34669 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
34677 if ((m24 &
1) ===
0) {
34680 var m8 = (k2.andln(
7) + d2) &
7;
34681 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
34689 if (
2 * d1 === u1 +
1)
34691 if (
2 * d2 === u2 +
1)
34699 utils.getJSF = getJSF;
34701 function cachedProperty(obj, name, computer) {
34702 var key = '_' + name;
34703 obj.prototype[name] = function cachedProperty() {
34704 return this[key] !== undefined ? this[key] :
34705 this[key] = computer.call(this);
34708 utils.cachedProperty = cachedProperty;
34710 function parseBytes(bytes) {
34711 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
34714 utils.parseBytes = parseBytes;
34716 function intFromLE(bytes) {
34717 return new BN(bytes, 'hex', 'le');
34719 utils.intFromLE = intFromLE;
34722 },{
"bn.js":
33}],
55:[function(require,module,exports){
34727 "raw":
"elliptic@^6.2.3",
34729 "escapedName":
"elliptic",
34730 "name":
"elliptic",
34731 "rawSpec":
"^6.2.3",
34732 "spec":
">=6.2.3 <7.0.0",
34735 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
34738 "_from":
"elliptic@>=6.2.3 <7.0.0",
34739 "_id":
"elliptic@6.3.3",
34741 "_location":
"/elliptic",
34742 "_nodeVersion":
"7.0.0",
34743 "_npmOperationalInternal": {
34744 "host":
"packages-18-east.internal.npmjs.com",
34745 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
34749 "email":
"fedor@indutny.com"
34751 "_npmVersion":
"3.10.8",
34752 "_phantomChildren": {},
34754 "raw":
"elliptic@^6.2.3",
34756 "escapedName":
"elliptic",
34757 "name":
"elliptic",
34758 "rawSpec":
"^6.2.3",
34759 "spec":
">=6.2.3 <7.0.0",
34763 "/browserify-sign",
34767 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
34768 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
34769 "_shrinkwrap": null,
34770 "_spec":
"elliptic@^6.2.3",
34771 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
34773 "name":
"Fedor Indutny",
34774 "email":
"fedor@indutny.com"
34777 "url":
"https://github.com/indutny/elliptic/issues"
34781 "brorand":
"^1.0.1",
34782 "hash.js":
"^1.0.0",
34783 "inherits":
"^2.0.1"
34785 "description":
"EC cryptography",
34786 "devDependencies": {
34788 "coveralls":
"^2.11.3",
34790 "grunt-browserify":
"^5.0.0",
34791 "grunt-cli":
"^1.2.0",
34792 "grunt-contrib-connect":
"^1.0.0",
34793 "grunt-contrib-copy":
"^1.0.0",
34794 "grunt-contrib-uglify":
"^1.0.1",
34795 "grunt-mocha-istanbul":
"^3.0.1",
34796 "grunt-saucelabs":
"^8.6.2",
34797 "istanbul":
"^0.4.2",
34799 "jshint":
"^2.6.0",
34804 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
34805 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
34810 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
34811 "homepage":
"https://github.com/indutny/elliptic",
34819 "main":
"lib/elliptic.js",
34823 "email":
"fedor@indutny.com"
34826 "name":
"elliptic",
34827 "optionalDependencies": {},
34828 "readme":
"ERROR: No README data found!",
34831 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
34834 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
34835 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
34836 "lint":
"npm run jscs && npm run jshint",
34837 "test":
"npm run lint && npm run unit",
34838 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
34839 "version":
"grunt dist && git add dist/"
34844 },{}],
56:[function(require,module,exports){
34845 (function (Buffer){
34848 var isHexPrefixed = require('is-hex-prefixed');
34849 var stripHexPrefix = require('strip-hex-prefix');
34852 * Pads a `String` to have an even length
34853 * @param {String} value
34854 * @return {String} output
34856 function padToEven(value) {
34857 var a = value; // eslint-disable-line
34859 if (typeof a !== 'string') {
34860 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
34863 if (a.length %
2) {
34871 * Converts a `Number` into a hex `String`
34872 * @param {Number} i
34875 function intToHex(i) {
34876 var hex = i.toString(
16); // eslint-disable-line
34878 return '
0x' + padToEven(hex);
34882 * Converts an `Number` to a `Buffer`
34883 * @param {Number} i
34886 function intToBuffer(i) {
34887 var hex = intToHex(i);
34889 return new Buffer(hex.slice(
2), 'hex');
34893 * Get the binary size of a string
34894 * @param {String} str
34897 function getBinarySize(str) {
34898 if (typeof str !== 'string') {
34899 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
34902 return Buffer.byteLength(str, 'utf8');
34906 * Returns TRUE if the first specified array contains all elements
34907 * from the second one. FALSE otherwise.
34909 * @param {array} superset
34910 * @param {array} subset
34912 * @returns {boolean}
34914 function arrayContainsArray(superset, subset, some) {
34915 if (Array.isArray(superset) !== true) {
34916 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
34918 if (Array.isArray(subset) !== true) {
34919 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
34922 return subset[Boolean(some) && 'some' || 'every'](function (value) {
34923 return superset.indexOf(value)
>=
0;
34928 * Should be called to get utf8 from it's hex representation
34931 * @param {String} string in hex
34932 * @returns {String} ascii string representation of hex value
34934 function toUtf8(hex) {
34935 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
34937 return bufferValue.toString('utf8');
34941 * Should be called to get ascii from it's hex representation
34944 * @param {String} string in hex
34945 * @returns {String} ascii string representation of hex value
34947 function toAscii(hex) {
34948 var str = ''; // eslint-disable-line
34950 l = hex.length; // eslint-disable-line
34952 if (hex.substring(
0,
2) === '
0x') {
34956 for (; i < l; i +=
2) {
34957 var code = parseInt(hex.substr(i,
2),
16);
34958 str += String.fromCharCode(code);
34965 * Should be called to get hex representation (prefixed by
0x) of utf8 string
34968 * @param {String} string
34969 * @param {Number} optional padding
34970 * @returns {String} hex representation of input string
34972 function fromUtf8(stringValue) {
34973 var str = new Buffer(stringValue, 'utf8');
34975 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
34979 * Should be called to get hex representation (prefixed by
0x) of ascii string
34981 * @method fromAscii
34982 * @param {String} string
34983 * @param {Number} optional padding
34984 * @returns {String} hex representation of input string
34986 function fromAscii(stringValue) {
34987 var hex = ''; // eslint-disable-line
34988 for (var i =
0; i < stringValue.length; i++) {
34989 // eslint-disable-line
34990 var code = stringValue.charCodeAt(i);
34991 var n = code.toString(
16);
34992 hex += n.length <
2 ? '
0' + n : n;
34999 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
35001 * @method getKeys get specific key from inner object array of objects
35002 * @param {String} params
35003 * @param {String} key
35004 * @param {Boolean} allowEmpty
35005 * @returns {Array} output just a simple array of output keys
35007 function getKeys(params, key, allowEmpty) {
35008 if (!Array.isArray(params)) {
35009 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
35011 if (typeof key !== 'string') {
35012 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
35015 var result = []; // eslint-disable-line
35017 for (var i =
0; i < params.length; i++) {
35018 // eslint-disable-line
35019 var value = params[i][key]; // eslint-disable-line
35020 if (allowEmpty && !value) {
35022 } else if (typeof value !== 'string') {
35023 throw new Error('invalid abi');
35025 result.push(value);
35032 * Is the string a hex string.
35034 * @method check if string is hex string of specific length
35035 * @param {String} value
35036 * @param {Number} length
35037 * @returns {Boolean} output the string is a hex string
35039 function isHexString(value, length) {
35040 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
35044 if (length && value.length !==
2 +
2 * length) {
35052 arrayContainsArray: arrayContainsArray,
35053 intToBuffer: intToBuffer,
35054 getBinarySize: getBinarySize,
35055 isHexPrefixed: isHexPrefixed,
35056 stripHexPrefix: stripHexPrefix,
35057 padToEven: padToEven,
35058 intToHex: intToHex,
35059 fromAscii: fromAscii,
35060 fromUtf8: fromUtf8,
35064 isHexString: isHexString
35066 }).call(this,require("buffer").Buffer)
35067 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
35068 var hash = exports;
35070 hash.utils = require('./hash/utils');
35071 hash.common = require('./hash/common');
35072 hash.sha = require('./hash/sha');
35073 hash.ripemd = require('./hash/ripemd');
35074 hash.hmac = require('./hash/hmac');
35076 // Proxy hash functions to the main object
35077 hash.sha1 = hash.sha.sha1;
35078 hash.sha256 = hash.sha.sha256;
35079 hash.sha224 = hash.sha.sha224;
35080 hash.sha384 = hash.sha.sha384;
35081 hash.sha512 = hash.sha.sha512;
35082 hash.ripemd160 = hash.ripemd.ripemd160;
35084 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
35085 var hash = require('../hash');
35086 var utils = hash.utils;
35087 var assert = utils.assert;
35089 function BlockHash() {
35090 this.pending = null;
35091 this.pendingTotal =
0;
35092 this.blockSize = this.constructor.blockSize;
35093 this.outSize = this.constructor.outSize;
35094 this.hmacStrength = this.constructor.hmacStrength;
35095 this.padLength = this.constructor.padLength /
8;
35096 this.endian = 'big';
35098 this._delta8 = this.blockSize /
8;
35099 this._delta32 = this.blockSize /
32;
35101 exports.BlockHash = BlockHash;
35103 BlockHash.prototype.update = function update(msg, enc) {
35104 // Convert message to array, pad it, and join into
32bit blocks
35105 msg = utils.toArray(msg, enc);
35107 this.pending = msg;
35109 this.pending = this.pending.concat(msg);
35110 this.pendingTotal += msg.length;
35112 // Enough data, try updating
35113 if (this.pending.length
>= this._delta8) {
35114 msg = this.pending;
35116 // Process pending data in blocks
35117 var r = msg.length % this._delta8;
35118 this.pending = msg.slice(msg.length - r, msg.length);
35119 if (this.pending.length ===
0)
35120 this.pending = null;
35122 msg = utils.join32(msg,
0, msg.length - r, this.endian);
35123 for (var i =
0; i < msg.length; i += this._delta32)
35124 this._update(msg, i, i + this._delta32);
35130 BlockHash.prototype.digest = function digest(enc) {
35131 this.update(this._pad());
35132 assert(this.pending === null);
35134 return this._digest(enc);
35137 BlockHash.prototype._pad = function pad() {
35138 var len = this.pendingTotal;
35139 var bytes = this._delta8;
35140 var k = bytes - ((len + this.padLength) % bytes);
35141 var res = new Array(k + this.padLength);
35143 for (var i =
1; i < k; i++)
35148 if (this.endian === 'big') {
35149 for (var t =
8; t < this.padLength; t++)
35156 res[i++] = (len
>>> 24) &
0xff;
35157 res[i++] = (len
>>> 16) &
0xff;
35158 res[i++] = (len
>>> 8) &
0xff;
35159 res[i++] = len &
0xff;
35161 res[i++] = len &
0xff;
35162 res[i++] = (len
>>> 8) &
0xff;
35163 res[i++] = (len
>>> 16) &
0xff;
35164 res[i++] = (len
>>> 24) &
0xff;
35170 for (var t =
8; t < this.padLength; t++)
35177 },{
"../hash":
57}],
59:[function(require,module,exports){
35178 var hmac = exports;
35180 var hash = require('../hash');
35181 var utils = hash.utils;
35182 var assert = utils.assert;
35184 function Hmac(hash, key, enc) {
35185 if (!(this instanceof Hmac))
35186 return new Hmac(hash, key, enc);
35188 this.blockSize = hash.blockSize /
8;
35189 this.outSize = hash.outSize /
8;
35193 this._init(utils.toArray(key, enc));
35195 module.exports = Hmac;
35197 Hmac.prototype._init = function init(key) {
35198 // Shorten key, if needed
35199 if (key.length
> this.blockSize)
35200 key = new this.Hash().update(key).digest();
35201 assert(key.length <= this.blockSize);
35203 // Add padding to key
35204 for (var i = key.length; i < this.blockSize; i++)
35207 for (var i =
0; i < key.length; i++)
35209 this.inner = new this.Hash().update(key);
35211 //
0x36 ^
0x5c =
0x6a
35212 for (var i =
0; i < key.length; i++)
35214 this.outer = new this.Hash().update(key);
35217 Hmac.prototype.update = function update(msg, enc) {
35218 this.inner.update(msg, enc);
35222 Hmac.prototype.digest = function digest(enc) {
35223 this.outer.update(this.inner.digest());
35224 return this.outer.digest(enc);
35227 },{"../hash":
57}],
60:[function(require,module,exports){
35228 var hash = require('../hash');
35229 var utils = hash.utils;
35231 var rotl32 = utils.rotl32;
35232 var sum32 = utils.sum32;
35233 var sum32_3 = utils.sum32_3;
35234 var sum32_4 = utils.sum32_4;
35235 var BlockHash = hash.common.BlockHash;
35237 function RIPEMD160() {
35238 if (!(this instanceof RIPEMD160))
35239 return new RIPEMD160();
35241 BlockHash.call(this);
35243 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
35244 this.endian = 'little';
35246 utils.inherits(RIPEMD160, BlockHash);
35247 exports.ripemd160 = RIPEMD160;
35249 RIPEMD160.blockSize =
512;
35250 RIPEMD160.outSize =
160;
35251 RIPEMD160.hmacStrength =
192;
35252 RIPEMD160.padLength =
64;
35254 RIPEMD160.prototype._update = function update(msg, start) {
35265 for (var j =
0; j <
80; j++) {
35268 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
35278 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
35283 Dh = rotl32(Ch,
10);
35287 T = sum32_3(this.h[
1], C, Dh);
35288 this.h[
1] = sum32_3(this.h[
2], D, Eh);
35289 this.h[
2] = sum32_3(this.h[
3], E, Ah);
35290 this.h[
3] = sum32_3(this.h[
4], A, Bh);
35291 this.h[
4] = sum32_3(this.h[
0], B, Ch);
35295 RIPEMD160.prototype._digest = function digest(enc) {
35297 return utils.toHex32(this.h, 'little');
35299 return utils.split32(this.h, 'little');
35302 function f(j, x, y, z) {
35306 return (x & y) | ((~x) & z);
35308 return (x | (~y)) ^ z;
35310 return (x & z) | (y & (~z));
35312 return x ^ (y | (~z));
35342 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
35343 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
35344 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
35345 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
35346 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
35350 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
35351 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
35352 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
35353 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
35354 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
35358 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
35359 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
35360 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
35361 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
35362 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
35366 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
35367 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
35368 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
35369 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
35370 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
35373 },{"../hash":
57}],
61:[function(require,module,exports){
35374 var hash = require('../hash');
35375 var utils = hash.utils;
35376 var assert = utils.assert;
35378 var rotr32 = utils.rotr32;
35379 var rotl32 = utils.rotl32;
35380 var sum32 = utils.sum32;
35381 var sum32_4 = utils.sum32_4;
35382 var sum32_5 = utils.sum32_5;
35383 var rotr64_hi = utils.rotr64_hi;
35384 var rotr64_lo = utils.rotr64_lo;
35385 var shr64_hi = utils.shr64_hi;
35386 var shr64_lo = utils.shr64_lo;
35387 var sum64 = utils.sum64;
35388 var sum64_hi = utils.sum64_hi;
35389 var sum64_lo = utils.sum64_lo;
35390 var sum64_4_hi = utils.sum64_4_hi;
35391 var sum64_4_lo = utils.sum64_4_lo;
35392 var sum64_5_hi = utils.sum64_5_hi;
35393 var sum64_5_lo = utils.sum64_5_lo;
35394 var BlockHash = hash.common.BlockHash;
35397 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
35398 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
35399 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
35400 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
35401 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
35402 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
35403 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
35404 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
35405 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
35406 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
35407 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
35408 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
35409 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
35410 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
35411 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
35412 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
35416 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
35417 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
35418 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
35419 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
35420 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
35421 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
35422 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
35423 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
35424 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
35425 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
35426 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
35427 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
35428 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
35429 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
35430 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
35431 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
35432 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
35433 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
35434 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
35435 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
35436 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
35437 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
35438 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
35439 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
35440 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
35441 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
35442 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
35443 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
35444 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
35445 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
35446 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
35447 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
35448 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
35449 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
35450 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
35451 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
35452 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
35453 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
35454 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
35455 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
35459 0x5A827999,
0x6ED9EBA1,
35460 0x8F1BBCDC,
0xCA62C1D6
35463 function SHA256() {
35464 if (!(this instanceof SHA256))
35465 return new SHA256();
35467 BlockHash.call(this);
35468 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
35469 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
35471 this.W = new Array(
64);
35473 utils.inherits(SHA256, BlockHash);
35474 exports.sha256 = SHA256;
35476 SHA256.blockSize =
512;
35477 SHA256.outSize =
256;
35478 SHA256.hmacStrength =
192;
35479 SHA256.padLength =
64;
35481 SHA256.prototype._update = function _update(msg, start) {
35484 for (var i =
0; i <
16; i++)
35485 W[i] = msg[start + i];
35486 for (; i < W.length; i++)
35487 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
35498 assert(this.k.length === W.length);
35499 for (var i =
0; i < W.length; i++) {
35500 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
35501 var T2 = sum32(s0_256(a), maj32(a, b, c));
35512 this.h[
0] = sum32(this.h[
0], a);
35513 this.h[
1] = sum32(this.h[
1], b);
35514 this.h[
2] = sum32(this.h[
2], c);
35515 this.h[
3] = sum32(this.h[
3], d);
35516 this.h[
4] = sum32(this.h[
4], e);
35517 this.h[
5] = sum32(this.h[
5], f);
35518 this.h[
6] = sum32(this.h[
6], g);
35519 this.h[
7] = sum32(this.h[
7], h);
35522 SHA256.prototype._digest = function digest(enc) {
35524 return utils.toHex32(this.h, 'big');
35526 return utils.split32(this.h, 'big');
35529 function SHA224() {
35530 if (!(this instanceof SHA224))
35531 return new SHA224();
35534 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
35535 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
35537 utils.inherits(SHA224, SHA256);
35538 exports.sha224 = SHA224;
35540 SHA224.blockSize =
512;
35541 SHA224.outSize =
224;
35542 SHA224.hmacStrength =
192;
35543 SHA224.padLength =
64;
35545 SHA224.prototype._digest = function digest(enc) {
35546 // Just truncate output
35548 return utils.toHex32(this.h.slice(
0,
7), 'big');
35550 return utils.split32(this.h.slice(
0,
7), 'big');
35553 function SHA512() {
35554 if (!(this instanceof SHA512))
35555 return new SHA512();
35557 BlockHash.call(this);
35558 this.h = [
0x6a09e667,
0xf3bcc908,
35559 0xbb67ae85,
0x84caa73b,
35560 0x3c6ef372,
0xfe94f82b,
35561 0xa54ff53a,
0x5f1d36f1,
35562 0x510e527f,
0xade682d1,
35563 0x9b05688c,
0x2b3e6c1f,
35564 0x1f83d9ab,
0xfb41bd6b,
35565 0x5be0cd19,
0x137e2179 ];
35567 this.W = new Array(
160);
35569 utils.inherits(SHA512, BlockHash);
35570 exports.sha512 = SHA512;
35572 SHA512.blockSize =
1024;
35573 SHA512.outSize =
512;
35574 SHA512.hmacStrength =
192;
35575 SHA512.padLength =
128;
35577 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
35580 //
32 x
32bit words
35581 for (var i =
0; i <
32; i++)
35582 W[i] = msg[start + i];
35583 for (; i < W.length; i +=
2) {
35584 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
35585 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
35586 var c1_hi = W[i -
14]; // i -
7
35587 var c1_lo = W[i -
13];
35588 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
35589 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
35590 var c3_hi = W[i -
32]; // i -
16
35591 var c3_lo = W[i -
31];
35593 W[i] = sum64_4_hi(c0_hi, c0_lo,
35597 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
35604 SHA512.prototype._update = function _update(msg, start) {
35605 this._prepareBlock(msg, start);
35609 var ah = this.h[
0];
35610 var al = this.h[
1];
35611 var bh = this.h[
2];
35612 var bl = this.h[
3];
35613 var ch = this.h[
4];
35614 var cl = this.h[
5];
35615 var dh = this.h[
6];
35616 var dl = this.h[
7];
35617 var eh = this.h[
8];
35618 var el = this.h[
9];
35619 var fh = this.h[
10];
35620 var fl = this.h[
11];
35621 var gh = this.h[
12];
35622 var gl = this.h[
13];
35623 var hh = this.h[
14];
35624 var hl = this.h[
15];
35626 assert(this.k.length === W.length);
35627 for (var i =
0; i < W.length; i +=
2) {
35630 var c1_hi = s1_512_hi(eh, el);
35631 var c1_lo = s1_512_lo(eh, el);
35632 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
35633 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
35634 var c3_hi = this.k[i];
35635 var c3_lo = this.k[i +
1];
35637 var c4_lo = W[i +
1];
35639 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
35644 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
35650 var c0_hi = s0_512_hi(ah, al);
35651 var c0_lo = s0_512_lo(ah, al);
35652 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
35653 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
35655 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
35656 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
35667 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
35668 el = sum64_lo(dl, dl, T1_hi, T1_lo);
35679 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
35680 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
35683 sum64(this.h,
0, ah, al);
35684 sum64(this.h,
2, bh, bl);
35685 sum64(this.h,
4, ch, cl);
35686 sum64(this.h,
6, dh, dl);
35687 sum64(this.h,
8, eh, el);
35688 sum64(this.h,
10, fh, fl);
35689 sum64(this.h,
12, gh, gl);
35690 sum64(this.h,
14, hh, hl);
35693 SHA512.prototype._digest = function digest(enc) {
35695 return utils.toHex32(this.h, 'big');
35697 return utils.split32(this.h, 'big');
35700 function SHA384() {
35701 if (!(this instanceof SHA384))
35702 return new SHA384();
35705 this.h = [
0xcbbb9d5d,
0xc1059ed8,
35706 0x629a292a,
0x367cd507,
35707 0x9159015a,
0x3070dd17,
35708 0x152fecd8,
0xf70e5939,
35709 0x67332667,
0xffc00b31,
35710 0x8eb44a87,
0x68581511,
35711 0xdb0c2e0d,
0x64f98fa7,
35712 0x47b5481d,
0xbefa4fa4 ];
35714 utils.inherits(SHA384, SHA512);
35715 exports.sha384 = SHA384;
35717 SHA384.blockSize =
1024;
35718 SHA384.outSize =
384;
35719 SHA384.hmacStrength =
192;
35720 SHA384.padLength =
128;
35722 SHA384.prototype._digest = function digest(enc) {
35724 return utils.toHex32(this.h.slice(
0,
12), 'big');
35726 return utils.split32(this.h.slice(
0,
12), 'big');
35730 if (!(this instanceof SHA1))
35733 BlockHash.call(this);
35734 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
35735 0x10325476,
0xc3d2e1f0 ];
35736 this.W = new Array(
80);
35739 utils.inherits(SHA1, BlockHash);
35740 exports.sha1 = SHA1;
35742 SHA1.blockSize =
512;
35743 SHA1.outSize =
160;
35744 SHA1.hmacStrength =
80;
35745 SHA1.padLength =
64;
35747 SHA1.prototype._update = function _update(msg, start) {
35750 for (var i =
0; i <
16; i++)
35751 W[i] = msg[start + i];
35753 for(; i < W.length; i++)
35754 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
35762 for (var i =
0; i < W.length; i++) {
35763 var s = ~~(i /
20);
35764 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
35772 this.h[
0] = sum32(this.h[
0], a);
35773 this.h[
1] = sum32(this.h[
1], b);
35774 this.h[
2] = sum32(this.h[
2], c);
35775 this.h[
3] = sum32(this.h[
3], d);
35776 this.h[
4] = sum32(this.h[
4], e);
35779 SHA1.prototype._digest = function digest(enc) {
35781 return utils.toHex32(this.h, 'big');
35783 return utils.split32(this.h, 'big');
35786 function ch32(x, y, z) {
35787 return (x & y) ^ ((~x) & z);
35790 function maj32(x, y, z) {
35791 return (x & y) ^ (x & z) ^ (y & z);
35794 function p32(x, y, z) {
35798 function s0_256(x) {
35799 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
35802 function s1_256(x) {
35803 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
35806 function g0_256(x) {
35807 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
35810 function g1_256(x) {
35811 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
35814 function ft_1(s, x, y, z) {
35816 return ch32(x, y, z);
35817 if (s ===
1 || s ===
3)
35818 return p32(x, y, z);
35820 return maj32(x, y, z);
35823 function ch64_hi(xh, xl, yh, yl, zh, zl) {
35824 var r = (xh & yh) ^ ((~xh) & zh);
35830 function ch64_lo(xh, xl, yh, yl, zh, zl) {
35831 var r = (xl & yl) ^ ((~xl) & zl);
35837 function maj64_hi(xh, xl, yh, yl, zh, zl) {
35838 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
35844 function maj64_lo(xh, xl, yh, yl, zh, zl) {
35845 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
35851 function s0_512_hi(xh, xl) {
35852 var c0_hi = rotr64_hi(xh, xl,
28);
35853 var c1_hi = rotr64_hi(xl, xh,
2); //
34
35854 var c2_hi = rotr64_hi(xl, xh,
7); //
39
35856 var r = c0_hi ^ c1_hi ^ c2_hi;
35862 function s0_512_lo(xh, xl) {
35863 var c0_lo = rotr64_lo(xh, xl,
28);
35864 var c1_lo = rotr64_lo(xl, xh,
2); //
34
35865 var c2_lo = rotr64_lo(xl, xh,
7); //
39
35867 var r = c0_lo ^ c1_lo ^ c2_lo;
35873 function s1_512_hi(xh, xl) {
35874 var c0_hi = rotr64_hi(xh, xl,
14);
35875 var c1_hi = rotr64_hi(xh, xl,
18);
35876 var c2_hi = rotr64_hi(xl, xh,
9); //
41
35878 var r = c0_hi ^ c1_hi ^ c2_hi;
35884 function s1_512_lo(xh, xl) {
35885 var c0_lo = rotr64_lo(xh, xl,
14);
35886 var c1_lo = rotr64_lo(xh, xl,
18);
35887 var c2_lo = rotr64_lo(xl, xh,
9); //
41
35889 var r = c0_lo ^ c1_lo ^ c2_lo;
35895 function g0_512_hi(xh, xl) {
35896 var c0_hi = rotr64_hi(xh, xl,
1);
35897 var c1_hi = rotr64_hi(xh, xl,
8);
35898 var c2_hi = shr64_hi(xh, xl,
7);
35900 var r = c0_hi ^ c1_hi ^ c2_hi;
35906 function g0_512_lo(xh, xl) {
35907 var c0_lo = rotr64_lo(xh, xl,
1);
35908 var c1_lo = rotr64_lo(xh, xl,
8);
35909 var c2_lo = shr64_lo(xh, xl,
7);
35911 var r = c0_lo ^ c1_lo ^ c2_lo;
35917 function g1_512_hi(xh, xl) {
35918 var c0_hi = rotr64_hi(xh, xl,
19);
35919 var c1_hi = rotr64_hi(xl, xh,
29); //
61
35920 var c2_hi = shr64_hi(xh, xl,
6);
35922 var r = c0_hi ^ c1_hi ^ c2_hi;
35928 function g1_512_lo(xh, xl) {
35929 var c0_lo = rotr64_lo(xh, xl,
19);
35930 var c1_lo = rotr64_lo(xl, xh,
29); //
61
35931 var c2_lo = shr64_lo(xh, xl,
6);
35933 var r = c0_lo ^ c1_lo ^ c2_lo;
35939 },{
"../hash":
57}],
62:[function(require,module,exports){
35940 var utils = exports;
35941 var inherits = require('inherits');
35943 function toArray(msg, enc) {
35944 if (Array.isArray(msg))
35945 return msg.slice();
35949 if (typeof msg === 'string') {
35951 for (var i =
0; i < msg.length; i++) {
35952 var c = msg.charCodeAt(i);
35960 } else if (enc === 'hex') {
35961 msg = msg.replace(/[^a-z0-
9]+/ig, '');
35962 if (msg.length %
2 !==
0)
35964 for (var i =
0; i < msg.length; i +=
2)
35965 res.push(parseInt(msg[i] + msg[i +
1],
16));
35968 for (var i =
0; i < msg.length; i++)
35969 res[i] = msg[i] |
0;
35973 utils.toArray = toArray;
35975 function toHex(msg) {
35977 for (var i =
0; i < msg.length; i++)
35978 res += zero2(msg[i].toString(
16));
35981 utils.toHex = toHex;
35983 function htonl(w) {
35984 var res = (w
>>> 24) |
35985 ((w
>>> 8) &
0xff00) |
35986 ((w <<
8) &
0xff0000) |
35987 ((w &
0xff) <<
24);
35990 utils.htonl = htonl;
35992 function toHex32(msg, endian) {
35994 for (var i =
0; i < msg.length; i++) {
35996 if (endian === 'little')
35998 res += zero8(w.toString(
16));
36002 utils.toHex32 = toHex32;
36004 function zero2(word) {
36005 if (word.length ===
1)
36010 utils.zero2 = zero2;
36012 function zero8(word) {
36013 if (word.length ===
7)
36015 else if (word.length ===
6)
36016 return '
00' + word;
36017 else if (word.length ===
5)
36018 return '
000' + word;
36019 else if (word.length ===
4)
36020 return '
0000' + word;
36021 else if (word.length ===
3)
36022 return '
00000' + word;
36023 else if (word.length ===
2)
36024 return '
000000' + word;
36025 else if (word.length ===
1)
36026 return '
0000000' + word;
36030 utils.zero8 = zero8;
36032 function join32(msg, start, end, endian) {
36033 var len = end - start;
36034 assert(len %
4 ===
0);
36035 var res = new Array(len /
4);
36036 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
36038 if (endian === 'big')
36039 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
36041 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
36046 utils.join32 = join32;
36048 function split32(msg, endian) {
36049 var res = new Array(msg.length *
4);
36050 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
36052 if (endian === 'big') {
36054 res[k +
1] = (m
>>> 16) &
0xff;
36055 res[k +
2] = (m
>>> 8) &
0xff;
36056 res[k +
3] = m &
0xff;
36058 res[k +
3] = m
>>> 24;
36059 res[k +
2] = (m
>>> 16) &
0xff;
36060 res[k +
1] = (m
>>> 8) &
0xff;
36066 utils.split32 = split32;
36068 function rotr32(w, b) {
36069 return (w
>>> b) | (w << (
32 - b));
36071 utils.rotr32 = rotr32;
36073 function rotl32(w, b) {
36074 return (w << b) | (w
>>> (
32 - b));
36076 utils.rotl32 = rotl32;
36078 function sum32(a, b) {
36079 return (a + b)
>>> 0;
36081 utils.sum32 = sum32;
36083 function sum32_3(a, b, c) {
36084 return (a + b + c)
>>> 0;
36086 utils.sum32_3 = sum32_3;
36088 function sum32_4(a, b, c, d) {
36089 return (a + b + c + d)
>>> 0;
36091 utils.sum32_4 = sum32_4;
36093 function sum32_5(a, b, c, d, e) {
36094 return (a + b + c + d + e)
>>> 0;
36096 utils.sum32_5 = sum32_5;
36098 function assert(cond, msg) {
36100 throw new Error(msg || 'Assertion failed');
36102 utils.assert = assert;
36104 utils.inherits = inherits;
36106 function sum64(buf, pos, ah, al) {
36108 var bl = buf[pos +
1];
36110 var lo = (al + bl)
>>> 0;
36111 var hi = (lo < al ?
1 :
0) + ah + bh;
36112 buf[pos] = hi
>>> 0;
36115 exports.sum64 = sum64;
36117 function sum64_hi(ah, al, bh, bl) {
36118 var lo = (al + bl)
>>> 0;
36119 var hi = (lo < al ?
1 :
0) + ah + bh;
36122 exports.sum64_hi = sum64_hi;
36124 function sum64_lo(ah, al, bh, bl) {
36128 exports.sum64_lo = sum64_lo;
36130 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
36133 lo = (lo + bl)
>>> 0;
36134 carry += lo < al ?
1 :
0;
36135 lo = (lo + cl)
>>> 0;
36136 carry += lo < cl ?
1 :
0;
36137 lo = (lo + dl)
>>> 0;
36138 carry += lo < dl ?
1 :
0;
36140 var hi = ah + bh + ch + dh + carry;
36143 exports.sum64_4_hi = sum64_4_hi;
36145 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
36146 var lo = al + bl + cl + dl;
36149 exports.sum64_4_lo = sum64_4_lo;
36151 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
36154 lo = (lo + bl)
>>> 0;
36155 carry += lo < al ?
1 :
0;
36156 lo = (lo + cl)
>>> 0;
36157 carry += lo < cl ?
1 :
0;
36158 lo = (lo + dl)
>>> 0;
36159 carry += lo < dl ?
1 :
0;
36160 lo = (lo + el)
>>> 0;
36161 carry += lo < el ?
1 :
0;
36163 var hi = ah + bh + ch + dh + eh + carry;
36166 exports.sum64_5_hi = sum64_5_hi;
36168 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
36169 var lo = al + bl + cl + dl + el;
36173 exports.sum64_5_lo = sum64_5_lo;
36175 function rotr64_hi(ah, al, num) {
36176 var r = (al << (
32 - num)) | (ah
>>> num);
36179 exports.rotr64_hi = rotr64_hi;
36181 function rotr64_lo(ah, al, num) {
36182 var r = (ah << (
32 - num)) | (al
>>> num);
36185 exports.rotr64_lo = rotr64_lo;
36187 function shr64_hi(ah, al, num) {
36190 exports.shr64_hi = shr64_hi;
36192 function shr64_lo(ah, al, num) {
36193 var r = (ah << (
32 - num)) | (al
>>> num);
36196 exports.shr64_lo = shr64_lo;
36198 },{
"inherits":
63}],
63:[function(require,module,exports){
36199 arguments[
4][
9][
0].apply(exports,arguments)
36200 },{
"dup":
9}],
64:[function(require,module,exports){
36202 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
36203 * @param {String} str the string input value
36204 * @return {Boolean} a boolean if it is or is not hex prefixed
36205 * @throws if the str input is not a string
36207 module.exports = function isHexPrefixed(str) {
36208 if (typeof str !== 'string') {
36209 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
36212 return str.slice(
0,
2) === '
0x';
36215 },{}],
65:[function(require,module,exports){
36217 module.exports = require('./lib/api')(require('./lib/keccak'))
36219 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
36221 var createKeccak = require('./keccak')
36222 var createShake = require('./shake')
36224 module.exports = function (KeccakState) {
36225 var Keccak = createKeccak(KeccakState)
36226 var Shake = createShake(KeccakState)
36228 return function (algorithm, options) {
36229 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
36231 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
36232 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
36233 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
36234 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
36236 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
36237 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
36238 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
36239 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
36241 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
36242 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
36244 default: throw new Error('Invald algorithm: ' + algorithm)
36249 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
36250 (function (Buffer){
36252 var Transform = require('stream').Transform
36253 var inherits = require('inherits')
36255 module.exports = function (KeccakState) {
36256 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
36257 Transform.call(this, options)
36260 this._capacity = capacity
36261 this._delimitedSuffix = delimitedSuffix
36262 this._hashBitLength = hashBitLength
36263 this._options = options
36265 this._state = new KeccakState()
36266 this._state.initialize(rate, capacity)
36267 this._finalized = false
36270 inherits(Keccak, Transform)
36272 Keccak.prototype._transform = function (chunk, encoding, callback) {
36275 this.update(chunk, encoding)
36283 Keccak.prototype._flush = function (callback) {
36286 this.push(this.digest())
36294 Keccak.prototype.update = function (data, encoding) {
36295 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
36296 if (this._finalized) throw new Error('Digest already called')
36297 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
36299 this._state.absorb(data)
36304 Keccak.prototype.digest = function (encoding) {
36305 if (this._finalized) throw new Error('Digest already called')
36306 this._finalized = true
36308 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
36309 var digest = this._state.squeeze(this._hashBitLength /
8)
36310 if (encoding !== undefined) digest = digest.toString(encoding)
36317 // remove result from memory
36318 Keccak.prototype._resetState = function () {
36319 this._state.initialize(this._rate, this._capacity)
36323 // because sometimes we need hash right now and little later
36324 Keccak.prototype._clone = function () {
36325 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
36326 this._state.copy(clone._state)
36327 clone._finalized = this._finalized
36335 }).call(this,require(
"buffer").Buffer)
36336 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
36337 (function (Buffer){
36339 var Transform = require('stream').Transform
36340 var inherits = require('inherits')
36342 module.exports = function (KeccakState) {
36343 function Shake (rate, capacity, delimitedSuffix, options) {
36344 Transform.call(this, options)
36347 this._capacity = capacity
36348 this._delimitedSuffix = delimitedSuffix
36349 this._options = options
36351 this._state = new KeccakState()
36352 this._state.initialize(rate, capacity)
36353 this._finalized = false
36356 inherits(Shake, Transform)
36358 Shake.prototype._transform = function (chunk, encoding, callback) {
36361 this.update(chunk, encoding)
36369 Shake.prototype._flush = function () {}
36371 Shake.prototype._read = function (size) {
36372 this.push(this.squeeze(size))
36375 Shake.prototype.update = function (data, encoding) {
36376 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
36377 if (this._finalized) throw new Error('Squeeze already called')
36378 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
36380 this._state.absorb(data)
36385 Shake.prototype.squeeze = function (dataByteLength, encoding) {
36386 if (!this._finalized) {
36387 this._finalized = true
36388 this._state.absorbLastFewBits(this._delimitedSuffix)
36391 var data = this._state.squeeze(dataByteLength)
36392 if (encoding !== undefined) data = data.toString(encoding)
36397 Shake.prototype._resetState = function () {
36398 this._state.initialize(this._rate, this._capacity)
36402 Shake.prototype._clone = function () {
36403 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
36404 this._state.copy(clone._state)
36405 clone._finalized = this._finalized
36413 }).call(this,require(
"buffer").Buffer)
36414 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
36416 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]
36418 exports.p1600 = function (s) {
36419 for (var round =
0; round <
24; ++round) {
36421 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
36422 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
36423 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
36424 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
36425 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
36426 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
36427 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
36428 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
36429 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
36430 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
36432 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
36433 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
36434 var t1slo0 = s[
0] ^ lo
36435 var t1shi0 = s[
1] ^ hi
36436 var t1slo5 = s[
10] ^ lo
36437 var t1shi5 = s[
11] ^ hi
36438 var t1slo10 = s[
20] ^ lo
36439 var t1shi10 = s[
21] ^ hi
36440 var t1slo15 = s[
30] ^ lo
36441 var t1shi15 = s[
31] ^ hi
36442 var t1slo20 = s[
40] ^ lo
36443 var t1shi20 = s[
41] ^ hi
36444 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
36445 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
36446 var t1slo1 = s[
2] ^ lo
36447 var t1shi1 = s[
3] ^ hi
36448 var t1slo6 = s[
12] ^ lo
36449 var t1shi6 = s[
13] ^ hi
36450 var t1slo11 = s[
22] ^ lo
36451 var t1shi11 = s[
23] ^ hi
36452 var t1slo16 = s[
32] ^ lo
36453 var t1shi16 = s[
33] ^ hi
36454 var t1slo21 = s[
42] ^ lo
36455 var t1shi21 = s[
43] ^ hi
36456 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
36457 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
36458 var t1slo2 = s[
4] ^ lo
36459 var t1shi2 = s[
5] ^ hi
36460 var t1slo7 = s[
14] ^ lo
36461 var t1shi7 = s[
15] ^ hi
36462 var t1slo12 = s[
24] ^ lo
36463 var t1shi12 = s[
25] ^ hi
36464 var t1slo17 = s[
34] ^ lo
36465 var t1shi17 = s[
35] ^ hi
36466 var t1slo22 = s[
44] ^ lo
36467 var t1shi22 = s[
45] ^ hi
36468 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
36469 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
36470 var t1slo3 = s[
6] ^ lo
36471 var t1shi3 = s[
7] ^ hi
36472 var t1slo8 = s[
16] ^ lo
36473 var t1shi8 = s[
17] ^ hi
36474 var t1slo13 = s[
26] ^ lo
36475 var t1shi13 = s[
27] ^ hi
36476 var t1slo18 = s[
36] ^ lo
36477 var t1shi18 = s[
37] ^ hi
36478 var t1slo23 = s[
46] ^ lo
36479 var t1shi23 = s[
47] ^ hi
36480 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
36481 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
36482 var t1slo4 = s[
8] ^ lo
36483 var t1shi4 = s[
9] ^ hi
36484 var t1slo9 = s[
18] ^ lo
36485 var t1shi9 = s[
19] ^ hi
36486 var t1slo14 = s[
28] ^ lo
36487 var t1shi14 = s[
29] ^ hi
36488 var t1slo19 = s[
38] ^ lo
36489 var t1shi19 = s[
39] ^ hi
36490 var t1slo24 = s[
48] ^ lo
36491 var t1shi24 = s[
49] ^ hi
36494 var t2slo0 = t1slo0
36495 var t2shi0 = t1shi0
36496 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
36497 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
36498 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
36499 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
36500 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
36501 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
36502 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
36503 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
36504 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
36505 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
36506 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
36507 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
36508 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
36509 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
36510 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
36511 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
36512 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
36513 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
36514 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
36515 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
36516 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
36517 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
36518 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
36519 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
36520 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
36521 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
36522 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
36523 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
36524 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
36525 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
36526 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
36527 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
36528 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
36529 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
36530 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
36531 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
36532 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
36533 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
36534 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
36535 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
36536 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
36537 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
36538 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
36539 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
36540 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
36541 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
36542 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
36543 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
36546 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
36547 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
36548 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
36549 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
36550 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
36551 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
36552 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
36553 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
36554 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
36555 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
36556 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
36557 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
36558 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
36559 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
36560 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
36561 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
36562 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
36563 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
36564 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
36565 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
36566 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
36567 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
36568 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
36569 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
36570 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
36571 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
36572 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
36573 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
36574 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
36575 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
36576 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
36577 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
36578 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
36579 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
36580 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
36581 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
36582 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
36583 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
36584 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
36585 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
36586 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
36587 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
36588 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
36589 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
36590 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
36591 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
36592 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
36593 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
36594 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
36595 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
36598 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
36599 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
36603 },{}],
70:[function(require,module,exports){
36604 (function (Buffer){
36606 var keccakState = require('./keccak-state-unroll')
36608 function Keccak () {
36609 // much faster than `new Array(
50)`
36618 this.blockSize = null
36620 this.squeezing = false
36623 Keccak.prototype.initialize = function (rate, capacity) {
36624 for (var i =
0; i <
50; ++i) this.state[i] =
0
36625 this.blockSize = rate /
8
36627 this.squeezing = false
36630 Keccak.prototype.absorb = function (data) {
36631 for (var i =
0; i < data.length; ++i) {
36632 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
36634 if (this.count === this.blockSize) {
36635 keccakState.p1600(this.state)
36641 Keccak.prototype.absorbLastFewBits = function (bits) {
36642 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
36643 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
36644 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
36645 keccakState.p1600(this.state)
36647 this.squeezing = true
36650 Keccak.prototype.squeeze = function (length) {
36651 if (!this.squeezing) this.absorbLastFewBits(
0x01)
36653 var output = Buffer.allocUnsafe(length)
36654 for (var i =
0; i < length; ++i) {
36655 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
36657 if (this.count === this.blockSize) {
36658 keccakState.p1600(this.state)
36666 Keccak.prototype.copy = function (dest) {
36667 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
36668 dest.blockSize = this.blockSize
36669 dest.count = this.count
36670 dest.squeezing = this.squeezing
36673 module.exports = Keccak
36675 }).call(this,require("buffer").Buffer)
36676 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
36677 (function (Buffer){
36680 code.google.com/p/crypto-js
36681 (c)
2009-
2013 by Jeff Mott. All rights reserved.
36682 code.google.com/p/crypto-js/wiki/License
36685 (c)
2012 by Cédric Mesnil. All rights reserved.
36687 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
36689 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
36690 - 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.
36692 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.
36697 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
36698 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
36699 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
36700 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
36701 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
36705 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
36706 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
36707 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
36708 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
36709 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
36713 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
36714 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
36715 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
36716 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
36717 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
36721 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
36722 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
36723 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
36724 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
36725 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
36728 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
36729 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
36731 function bytesToWords (bytes) {
36733 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
36734 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
36739 function wordsToBytes (words) {
36741 for (var b =
0; b < words.length *
32; b +=
8) {
36742 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
36747 function processBlock (H, M, offset) {
36749 for (var i =
0; i <
16; i++) {
36750 var offset_i = offset + i
36751 var M_offset_i = M[offset_i]
36755 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
36756 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
36760 // Working variables
36761 var al, bl, cl, dl, el
36762 var ar, br, cr, dr, er
36772 for (i =
0; i <
80; i +=
1) {
36773 t = (al + M[offset + zl[i]]) |
0
36775 t += f1(bl, cl, dl) + hl[
0]
36776 } else if (i <
32) {
36777 t += f2(bl, cl, dl) + hl[
1]
36778 } else if (i <
48) {
36779 t += f3(bl, cl, dl) + hl[
2]
36780 } else if (i <
64) {
36781 t += f4(bl, cl, dl) + hl[
3]
36782 } else {// if (i
<80) {
36783 t += f5(bl, cl, dl) + hl[
4]
36794 t = (ar + M[offset + zr[i]]) |
0
36796 t += f5(br, cr, dr) + hr[
0]
36797 } else if (i <
32) {
36798 t += f4(br, cr, dr) + hr[
1]
36799 } else if (i <
48) {
36800 t += f3(br, cr, dr) + hr[
2]
36801 } else if (i <
64) {
36802 t += f2(br, cr, dr) + hr[
3]
36803 } else {// if (i
<80) {
36804 t += f1(br, cr, dr) + hr[
4]
36817 // intermediate hash value
36818 t = (H[
1] + cl + dr) |
0
36819 H[
1] = (H[
2] + dl + er) |
0
36820 H[
2] = (H[
3] + el + ar) |
0
36821 H[
3] = (H[
4] + al + br) |
0
36822 H[
4] = (H[
0] + bl + cr) |
0
36826 function f1 (x, y, z) {
36827 return ((x) ^ (y) ^ (z))
36830 function f2 (x, y, z) {
36831 return (((x) & (y)) | ((~x) & (z)))
36834 function f3 (x, y, z) {
36835 return (((x) | (~(y))) ^ (z))
36838 function f4 (x, y, z) {
36839 return (((x) & (z)) | ((y) & (~(z))))
36842 function f5 (x, y, z) {
36843 return ((x) ^ ((y) | (~(z))))
36846 function rotl (x, n) {
36847 return (x << n) | (x
>>> (
32 - n))
36850 function ripemd160 (message) {
36851 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
36853 if (typeof message === 'string') {
36854 message = new Buffer(message, 'utf8')
36857 var m = bytesToWords(message)
36859 var nBitsLeft = message.length *
8
36860 var nBitsTotal = message.length *
8
36863 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
36864 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
36865 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
36866 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
36869 for (var i =
0; i < m.length; i +=
16) {
36870 processBlock(H, m, i)
36874 for (i =
0; i <
5; i++) {
36879 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
36880 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
36883 var digestbytes = wordsToBytes(H)
36884 return new Buffer(digestbytes)
36887 module.exports = ripemd160
36889 }).call(this,require(
"buffer").Buffer)
36890 },{
"buffer":
5}],
72:[function(require,module,exports){
36891 (function (Buffer){
36892 const assert = require('assert')
36894 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
36895 * This function takes in a data, convert it to buffer if not, and a length for recursion
36897 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
36898 * @returns {Buffer} - returns buffer of encoded data
36900 exports.encode = function (input) {
36901 if (input instanceof Array) {
36903 for (var i =
0; i < input.length; i++) {
36904 output.push(exports.encode(input[i]))
36906 var buf = Buffer.concat(output)
36907 return Buffer.concat([encodeLength(buf.length,
192), buf])
36909 input = toBuffer(input)
36910 if (input.length ===
1 && input[
0] <
128) {
36913 return Buffer.concat([encodeLength(input.length,
128), input])
36918 function safeParseInt (v, base) {
36919 if (v.slice(
0,
2) === '
00') {
36920 throw (new Error('invalid RLP: extra zeros'))
36923 return parseInt(v, base)
36926 function encodeLength (len, offset) {
36928 return new Buffer([len + offset])
36930 var hexLength = intToHex(len)
36931 var lLength = hexLength.length /
2
36932 var firstByte = intToHex(offset +
55 + lLength)
36933 return new Buffer(firstByte + hexLength, 'hex')
36938 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
36939 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
36940 * @returns {Array} - returns decode Array of Buffers containg the original message
36942 exports.decode = function (input, stream) {
36943 if (!input || input.length ===
0) {
36944 return new Buffer([])
36947 input = toBuffer(input)
36948 var decoded = _decode(input)
36954 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
36955 return decoded.data
36958 exports.getLength = function (input) {
36959 if (!input || input.length ===
0) {
36960 return new Buffer([])
36963 input = toBuffer(input)
36964 var firstByte = input[
0]
36965 if (firstByte <=
0x7f) {
36966 return input.length
36967 } else if (firstByte <=
0xb7) {
36968 return firstByte -
0x7f
36969 } else if (firstByte <=
0xbf) {
36970 return firstByte -
0xb6
36971 } else if (firstByte <=
0xf7) {
36972 // a list between
0-
55 bytes long
36973 return firstByte -
0xbf
36975 // a list over
55 bytes long
36976 var llength = firstByte -
0xf6
36977 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
36978 return llength + length
36982 function _decode (input) {
36983 var length, llength, data, innerRemainder, d
36985 var firstByte = input[
0]
36987 if (firstByte <=
0x7f) {
36988 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
36990 data: input.slice(
0,
1),
36991 remainder: input.slice(
1)
36993 } else if (firstByte <=
0xb7) {
36994 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
36995 // The range of the first byte is [
0x80,
0xb7]
36996 length = firstByte -
0x7f
36998 // set
0x80 null to
0
36999 if (firstByte ===
0x80) {
37000 data = new Buffer([])
37002 data = input.slice(
1, length)
37005 if (length ===
2 && data[
0] <
0x80) {
37006 throw new Error('invalid rlp encoding: byte must be less
0x80')
37011 remainder: input.slice(length)
37013 } else if (firstByte <=
0xbf) {
37014 llength = firstByte -
0xb6
37015 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
37016 data = input.slice(llength, length + llength)
37017 if (data.length < length) {
37018 throw (new Error('invalid RLP'))
37023 remainder: input.slice(length + llength)
37025 } else if (firstByte <=
0xf7) {
37026 // a list between
0-
55 bytes long
37027 length = firstByte -
0xbf
37028 innerRemainder = input.slice(
1, length)
37029 while (innerRemainder.length) {
37030 d = _decode(innerRemainder)
37031 decoded.push(d.data)
37032 innerRemainder = d.remainder
37037 remainder: input.slice(length)
37040 // a list over
55 bytes long
37041 llength = firstByte -
0xf6
37042 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
37043 var totalLength = llength + length
37044 if (totalLength
> input.length) {
37045 throw new Error('invalid rlp: total length is larger than the data')
37048 innerRemainder = input.slice(llength, totalLength)
37049 if (innerRemainder.length ===
0) {
37050 throw new Error('invalid rlp, List has a invalid length')
37053 while (innerRemainder.length) {
37054 d = _decode(innerRemainder)
37055 decoded.push(d.data)
37056 innerRemainder = d.remainder
37060 remainder: input.slice(totalLength)
37065 function isHexPrefixed (str) {
37066 return str.slice(
0,
2) === '
0x'
37069 // Removes
0x from a given String
37070 function stripHexPrefix (str) {
37071 if (typeof str !== 'string') {
37074 return isHexPrefixed(str) ? str.slice(
2) : str
37077 function intToHex (i) {
37078 var hex = i.toString(
16)
37079 if (hex.length %
2) {
37086 function padToEven (a) {
37087 if (a.length %
2) a = '
0' + a
37091 function intToBuffer (i) {
37092 var hex = intToHex(i)
37093 return new Buffer(hex, 'hex')
37096 function toBuffer (v) {
37097 if (!Buffer.isBuffer(v)) {
37098 if (typeof v === 'string') {
37099 if (isHexPrefixed(v)) {
37100 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
37104 } else if (typeof v === 'number') {
37110 } else if (v === null || v === undefined) {
37112 } else if (v.toArray) {
37113 // converts a BN to a Buffer
37114 v = new Buffer(v.toArray())
37116 throw new Error('invalid type')
37122 }).call(this,require("buffer").Buffer)
37123 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
37125 module.exports = require('./lib')(require('./lib/elliptic'))
37127 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
37128 (function (Buffer){
37130 var toString = Object.prototype.toString
37133 exports.isArray = function (value, message) {
37134 if (!Array.isArray(value)) throw TypeError(message)
37137 exports.isBoolean = function (value, message) {
37138 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
37141 exports.isBuffer = function (value, message) {
37142 if (!Buffer.isBuffer(value)) throw TypeError(message)
37145 exports.isFunction = function (value, message) {
37146 if (toString.call(value) !== '[object Function]') throw TypeError(message)
37149 exports.isNumber = function (value, message) {
37150 if (toString.call(value) !== '[object Number]') throw TypeError(message)
37153 exports.isObject = function (value, message) {
37154 if (toString.call(value) !== '[object Object]') throw TypeError(message)
37158 exports.isBufferLength = function (buffer, length, message) {
37159 if (buffer.length !== length) throw RangeError(message)
37162 exports.isBufferLength2 = function (buffer, length1, length2, message) {
37163 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
37166 exports.isLengthGTZero = function (value, message) {
37167 if (value.length ===
0) throw RangeError(message)
37170 exports.isNumberInInterval = function (number, x, y, message) {
37171 if (number <= x || number
>= y) throw RangeError(message)
37174 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
37175 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
37176 (function (Buffer){
37178 var bip66 = require('bip66')
37180 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
37182 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
37184 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37185 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37187 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
37188 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37189 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37190 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
37191 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
37192 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
37193 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37194 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
37195 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
37197 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37198 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37202 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
37204 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
37206 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37207 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37209 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
37210 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37211 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37212 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
37213 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
37214 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
37215 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
37216 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
37217 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37218 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
37219 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
37221 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37222 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37223 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37224 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37228 var ZERO_BUFFER_32 = new Buffer([
37229 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37230 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
37233 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
37234 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
37235 privateKey.copy(result, compressed ?
8 :
9)
37236 publicKey.copy(result, compressed ?
181 :
214)
37240 exports.privateKeyImport = function (privateKey) {
37241 var length = privateKey.length
37245 if (length < index +
1 || privateKey[index] !==
0x30) return
37248 // sequence length constructor
37249 if (length < index +
1 || !(privateKey[index] &
0x80)) return
37251 var lenb = privateKey[index] &
0x7f
37253 if (lenb <
1 || lenb
> 2) return
37254 if (length < index + lenb) return
37257 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
37259 if (length < index + len) return
37261 // sequence element
0: version number (=
1)
37262 if (length < index +
3 ||
37263 privateKey[index] !==
0x02 ||
37264 privateKey[index +
1] !==
0x01 ||
37265 privateKey[index +
2] !==
0x01) {
37270 // sequence element
1: octet string, up to
32 bytes
37271 if (length < index +
2 ||
37272 privateKey[index] !==
0x04 ||
37273 privateKey[index +
1]
> 0x20 ||
37274 length < index +
2 + privateKey[index +
1]) {
37278 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
37281 exports.signatureExport = function (sigObj) {
37282 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
37283 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
37285 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
37286 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
37288 return bip66.encode(r.slice(posR), s.slice(posS))
37291 exports.signatureImport = function (sig) {
37292 var r = new Buffer(ZERO_BUFFER_32)
37293 var s = new Buffer(ZERO_BUFFER_32)
37296 var sigObj = bip66.decode(sig)
37297 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
37298 if (sigObj.r.length
> 32) throw new Error('R length is too long')
37299 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
37300 if (sigObj.s.length
> 32) throw new Error('S length is too long')
37305 sigObj.r.copy(r,
32 - sigObj.r.length)
37306 sigObj.s.copy(s,
32 - sigObj.s.length)
37308 return { r: r, s: s }
37311 exports.signatureImportLax = function (sig) {
37312 var r = new Buffer(ZERO_BUFFER_32)
37313 var s = new Buffer(ZERO_BUFFER_32)
37315 var length = sig.length
37318 // sequence tag byte
37319 if (sig[index++] !==
0x30) return
37321 // sequence length byte
37322 var lenbyte = sig[index++]
37323 if (lenbyte &
0x80) {
37324 index += lenbyte -
0x80
37325 if (index
> length) return
37328 // sequence tag byte for r
37329 if (sig[index++] !==
0x02) return
37332 var rlen = sig[index++]
37334 lenbyte = rlen -
0x80
37335 if (index + lenbyte
> length) return
37336 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
37337 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
37339 if (rlen
> length - index) return
37343 // sequence tag byte for s
37344 if (sig[index++] !==
0x02) return
37347 var slen = sig[index++]
37349 lenbyte = slen -
0x80
37350 if (index + lenbyte
> length) return
37351 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
37352 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
37354 if (slen
> length - index) return
37358 // ignore leading zeros in r
37359 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
37361 if (rlen
> 32) return
37362 var rvalue = sig.slice(rindex, rindex + rlen)
37363 rvalue.copy(r,
32 - rvalue.length)
37365 // ignore leading zeros in s
37366 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
37368 if (slen
> 32) return
37369 var svalue = sig.slice(sindex, sindex + slen)
37370 svalue.copy(s,
32 - svalue.length)
37372 return { r: r, s: s }
37375 }).call(this,require(
"buffer").Buffer)
37376 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
37377 (function (Buffer){
37379 var createHash = require('create-hash')
37380 var BN = require('bn.js')
37381 var EC = require('elliptic').ec
37383 var messages = require('../messages.json')
37385 var ec = new EC('secp256k1')
37386 var ecparams = ec.curve
37388 function loadCompressedPublicKey (first, xBuffer) {
37389 var x = new BN(xBuffer)
37392 if (x.cmp(ecparams.p)
>=
0) return null
37393 x = x.toRed(ecparams.red)
37395 // compute corresponding Y
37396 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
37397 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
37399 return ec.keyPair({ pub: { x: x, y: y } })
37402 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
37403 var x = new BN(xBuffer)
37404 var y = new BN(yBuffer)
37407 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
37409 x = x.toRed(ecparams.red)
37410 y = y.toRed(ecparams.red)
37413 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
37416 var x3 = x.redSqr().redIMul(x)
37417 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
37419 return ec.keyPair({ pub: { x: x, y: y } })
37422 function loadPublicKey (publicKey) {
37423 var first = publicKey[
0]
37427 if (publicKey.length !==
33) return null
37428 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
37432 if (publicKey.length !==
65) return null
37433 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
37439 exports.privateKeyVerify = function (privateKey) {
37440 var bn = new BN(privateKey)
37441 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
37444 exports.privateKeyExport = function (privateKey, compressed) {
37445 var d = new BN(privateKey)
37446 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
37448 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
37451 exports.privateKeyTweakAdd = function (privateKey, tweak) {
37452 var bn = new BN(tweak)
37453 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
37455 bn.iadd(new BN(privateKey))
37456 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
37457 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
37459 return bn.toArrayLike(Buffer, 'be',
32)
37462 exports.privateKeyTweakMul = function (privateKey, tweak) {
37463 var bn = new BN(tweak)
37464 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
37466 bn.imul(new BN(privateKey))
37467 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
37469 return bn.toArrayLike(Buffer, 'be',
32)
37472 exports.publicKeyCreate = function (privateKey, compressed) {
37473 var d = new BN(privateKey)
37474 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
37476 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
37479 exports.publicKeyConvert = function (publicKey, compressed) {
37480 var pair = loadPublicKey(publicKey)
37481 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37483 return new Buffer(pair.getPublic(compressed, true))
37486 exports.publicKeyVerify = function (publicKey) {
37487 return loadPublicKey(publicKey) !== null
37490 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
37491 var pair = loadPublicKey(publicKey)
37492 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37494 tweak = new BN(tweak)
37495 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
37497 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
37500 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
37501 var pair = loadPublicKey(publicKey)
37502 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37504 tweak = new BN(tweak)
37505 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
37507 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
37510 exports.publicKeyCombine = function (publicKeys, compressed) {
37511 var pairs = new Array(publicKeys.length)
37512 for (var i =
0; i < publicKeys.length; ++i) {
37513 pairs[i] = loadPublicKey(publicKeys[i])
37514 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37517 var point = pairs[
0].pub
37518 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
37519 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
37521 return new Buffer(point.encode(true, compressed))
37524 exports.signatureNormalize = function (signature) {
37525 var r = new BN(signature.slice(
0,
32))
37526 var s = new BN(signature.slice(
32,
64))
37527 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37529 var result = new Buffer(signature)
37530 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
37535 exports.signatureExport = function (signature) {
37536 var r = signature.slice(
0,
32)
37537 var s = signature.slice(
32,
64)
37538 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37540 return { r: r, s: s }
37543 exports.signatureImport = function (sigObj) {
37544 var r = new BN(sigObj.r)
37545 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
37547 var s = new BN(sigObj.s)
37548 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
37550 return Buffer.concat([
37551 r.toArrayLike(Buffer, 'be',
32),
37552 s.toArrayLike(Buffer, 'be',
32)
37556 exports.sign = function (message, privateKey, noncefn, data) {
37557 if (typeof noncefn === 'function') {
37558 var getNonce = noncefn
37559 noncefn = function (counter) {
37560 var nonce = getNonce(message, privateKey, null, data, counter)
37561 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
37563 return new BN(nonce)
37567 var d = new BN(privateKey)
37568 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
37570 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
37572 signature: Buffer.concat([
37573 result.r.toArrayLike(Buffer, 'be',
32),
37574 result.s.toArrayLike(Buffer, 'be',
32)
37576 recovery: result.recoveryParam
37580 exports.verify = function (message, signature, publicKey) {
37581 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
37583 var sigr = new BN(sigObj.r)
37584 var sigs = new BN(sigObj.s)
37585 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37586 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
37588 var pair = loadPublicKey(publicKey)
37589 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37591 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
37594 exports.recover = function (message, signature, recovery, compressed) {
37595 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
37597 var sigr = new BN(sigObj.r)
37598 var sigs = new BN(sigObj.s)
37599 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37602 if (sigr.isZero() || sigs.isZero()) throw new Error()
37604 var point = ec.recoverPubKey(message, sigObj, recovery)
37605 return new Buffer(point.encode(true, compressed))
37607 throw new Error(messages.ECDSA_RECOVER_FAIL)
37611 exports.ecdh = function (publicKey, privateKey) {
37612 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
37613 return createHash('sha256').update(shared).digest()
37616 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
37617 var pair = loadPublicKey(publicKey)
37618 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37620 var scalar = new BN(privateKey)
37621 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
37623 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
37626 }).call(this,require("buffer").Buffer)
37627 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
37629 var assert = require('./assert')
37630 var der = require('./der')
37631 var messages = require('./messages.json')
37633 function initCompressedValue (value, defaultValue) {
37634 if (value === undefined) return defaultValue
37636 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
37640 module.exports = function (secp256k1) {
37642 privateKeyVerify: function (privateKey) {
37643 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37644 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
37647 privateKeyExport: function (privateKey, compressed) {
37648 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37649 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37651 compressed = initCompressedValue(compressed, true)
37652 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
37654 return der.privateKeyExport(privateKey, publicKey, compressed)
37657 privateKeyImport: function (privateKey) {
37658 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37660 privateKey = der.privateKeyImport(privateKey)
37661 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
37663 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
37666 privateKeyTweakAdd: function (privateKey, tweak) {
37667 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37668 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37670 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37671 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37673 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
37676 privateKeyTweakMul: function (privateKey, tweak) {
37677 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37678 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37680 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37681 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37683 return secp256k1.privateKeyTweakMul(privateKey, tweak)
37686 publicKeyCreate: function (privateKey, compressed) {
37687 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37688 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37690 compressed = initCompressedValue(compressed, true)
37692 return secp256k1.publicKeyCreate(privateKey, compressed)
37695 publicKeyConvert: function (publicKey, compressed) {
37696 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37697 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37699 compressed = initCompressedValue(compressed, true)
37701 return secp256k1.publicKeyConvert(publicKey, compressed)
37704 publicKeyVerify: function (publicKey) {
37705 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37706 return secp256k1.publicKeyVerify(publicKey)
37709 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
37710 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37711 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37713 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37714 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37716 compressed = initCompressedValue(compressed, true)
37718 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
37721 publicKeyTweakMul: function (publicKey, tweak, compressed) {
37722 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37723 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37725 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37726 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37728 compressed = initCompressedValue(compressed, true)
37730 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
37733 publicKeyCombine: function (publicKeys, compressed) {
37734 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
37735 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
37736 for (var i =
0; i < publicKeys.length; ++i) {
37737 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
37738 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37741 compressed = initCompressedValue(compressed, true)
37743 return secp256k1.publicKeyCombine(publicKeys, compressed)
37746 signatureNormalize: function (signature) {
37747 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37748 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37750 return secp256k1.signatureNormalize(signature)
37753 signatureExport: function (signature) {
37754 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37755 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37757 var sigObj = secp256k1.signatureExport(signature)
37758 return der.signatureExport(sigObj)
37761 signatureImport: function (sig) {
37762 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37763 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37765 var sigObj = der.signatureImport(sig)
37766 if (sigObj) return secp256k1.signatureImport(sigObj)
37768 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
37771 signatureImportLax: function (sig) {
37772 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37773 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37775 var sigObj = der.signatureImportLax(sig)
37776 if (sigObj) return secp256k1.signatureImport(sigObj)
37778 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
37781 sign: function (message, privateKey, options) {
37782 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37783 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37785 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37786 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37790 if (options !== undefined) {
37791 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
37793 if (options.data !== undefined) {
37794 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
37795 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
37796 data = options.data
37799 if (options.noncefn !== undefined) {
37800 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
37801 noncefn = options.noncefn
37805 return secp256k1.sign(message, privateKey, noncefn, data)
37808 verify: function (message, signature, publicKey) {
37809 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37810 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37812 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37813 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37815 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37816 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37818 return secp256k1.verify(message, signature, publicKey)
37821 recover: function (message, signature, recovery, compressed) {
37822 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37823 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37825 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37826 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37828 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
37829 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
37831 compressed = initCompressedValue(compressed, true)
37833 return secp256k1.recover(message, signature, recovery, compressed)
37836 ecdh: function (publicKey, privateKey) {
37837 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37838 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37840 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37841 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37843 return secp256k1.ecdh(publicKey, privateKey)
37846 ecdhUnsafe: function (publicKey, privateKey, compressed) {
37847 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37848 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37850 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37851 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37853 compressed = initCompressedValue(compressed, true)
37855 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
37860 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
37862 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
37863 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
37864 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
37865 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
37866 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
37867 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
37868 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
37869 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
37870 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
37871 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
37872 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
37873 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
37874 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
37875 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
37876 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
37877 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
37878 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
37879 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
37880 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
37881 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
37882 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
37883 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
37884 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
37885 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
37886 "MSG32_TYPE_INVALID": "message should be a Buffer",
37887 "MSG32_LENGTH_INVALID": "message length is invalid",
37888 "OPTIONS_TYPE_INVALID": "options should be an Object",
37889 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
37890 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
37891 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
37892 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
37893 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
37894 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
37895 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
37898 },{}],
79:[function(require,module,exports){
37899 (function (Buffer){
37900 // prototype class for hash functions
37901 function Hash (blockSize, finalSize) {
37902 this._block = new Buffer(blockSize)
37903 this._finalSize = finalSize
37904 this._blockSize = blockSize
37909 Hash.prototype.update = function (data, enc) {
37910 if (typeof data === 'string') {
37911 enc = enc || 'utf8'
37912 data = new Buffer(data, enc)
37915 var l = this._len += data.length
37916 var s = this._s ||
0
37918 var buffer = this._block
37921 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
37924 for (var i =
0; i < ch; i++) {
37925 buffer[(s % this._blockSize) + i] = data[i + f]
37931 if ((s % this._blockSize) ===
0) {
37932 this._update(buffer)
37940 Hash.prototype.digest = function (enc) {
37941 // Suppose the length of the message M, in bits, is l
37942 var l = this._len *
8
37944 // Append the bit
1 to the end of the message
37945 this._block[this._len % this._blockSize] =
0x80
37947 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
37948 this._block.fill(
0, this._len % this._blockSize +
1)
37950 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
37951 this._update(this._block)
37952 this._block.fill(
0)
37955 // to this append the block which is equal to the number l written in binary
37956 // TODO: handle case where l is
> Math.pow(
2,
29)
37957 this._block.writeInt32BE(l, this._blockSize -
4)
37959 var hash = this._update(this._block) || this._hash()
37961 return enc ? hash.toString(enc) : hash
37964 Hash.prototype._update = function () {
37965 throw new Error('_update must be implemented by subclass')
37968 module.exports = Hash
37970 }).call(this,require("buffer").Buffer)
37971 },{"buffer":
5}],
80:[function(require,module,exports){
37972 var exports = module.exports = function SHA (algorithm) {
37973 algorithm = algorithm.toLowerCase()
37975 var Algorithm = exports[algorithm]
37976 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
37978 return new Algorithm()
37981 exports.sha = require('./sha')
37982 exports.sha1 = require('./sha1')
37983 exports.sha224 = require('./sha224')
37984 exports.sha256 = require('./sha256')
37985 exports.sha384 = require('./sha384')
37986 exports.sha512 = require('./sha512')
37988 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
37989 (function (Buffer){
37991 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
37992 * in FIPS PUB
180-
1
37993 * This source code is derived from sha1.js of the same repository.
37994 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
37995 * operation was added.
37998 var inherits = require('inherits')
37999 var Hash = require('./hash')
38002 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
38005 var W = new Array(
80)
38011 Hash.call(this,
64,
56)
38014 inherits(Sha, Hash)
38016 Sha.prototype.init = function () {
38017 this._a =
0x67452301
38018 this._b =
0xefcdab89
38019 this._c =
0x98badcfe
38020 this._d =
0x10325476
38021 this._e =
0xc3d2e1f0
38026 function rotl5 (num) {
38027 return (num <<
5) | (num
>>> 27)
38030 function rotl30 (num) {
38031 return (num <<
30) | (num
>>> 2)
38034 function ft (s, b, c, d) {
38035 if (s ===
0) return (b & c) | ((~b) & d)
38036 if (s ===
2) return (b & c) | (b & d) | (c & d)
38040 Sha.prototype._update = function (M) {
38043 var a = this._a |
0
38044 var b = this._b |
0
38045 var c = this._c |
0
38046 var d = this._d |
0
38047 var e = this._e |
0
38049 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38050 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
38052 for (var j =
0; j <
80; ++j) {
38054 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
38063 this._a = (a + this._a) |
0
38064 this._b = (b + this._b) |
0
38065 this._c = (c + this._c) |
0
38066 this._d = (d + this._d) |
0
38067 this._e = (e + this._e) |
0
38070 Sha.prototype._hash = function () {
38071 var H = new Buffer(
20)
38073 H.writeInt32BE(this._a |
0,
0)
38074 H.writeInt32BE(this._b |
0,
4)
38075 H.writeInt32BE(this._c |
0,
8)
38076 H.writeInt32BE(this._d |
0,
12)
38077 H.writeInt32BE(this._e |
0,
16)
38082 module.exports = Sha
38084 }).call(this,require(
"buffer").Buffer)
38085 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
38086 (function (Buffer){
38088 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
38089 * in FIPS PUB
180-
1
38090 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
38091 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38092 * Distributed under the BSD License
38093 * See http://pajhome.org.uk/crypt/md5 for details.
38096 var inherits = require('inherits')
38097 var Hash = require('./hash')
38100 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
38103 var W = new Array(
80)
38109 Hash.call(this,
64,
56)
38112 inherits(Sha1, Hash)
38114 Sha1.prototype.init = function () {
38115 this._a =
0x67452301
38116 this._b =
0xefcdab89
38117 this._c =
0x98badcfe
38118 this._d =
0x10325476
38119 this._e =
0xc3d2e1f0
38124 function rotl1 (num) {
38125 return (num <<
1) | (num
>>> 31)
38128 function rotl5 (num) {
38129 return (num <<
5) | (num
>>> 27)
38132 function rotl30 (num) {
38133 return (num <<
30) | (num
>>> 2)
38136 function ft (s, b, c, d) {
38137 if (s ===
0) return (b & c) | ((~b) & d)
38138 if (s ===
2) return (b & c) | (b & d) | (c & d)
38142 Sha1.prototype._update = function (M) {
38145 var a = this._a |
0
38146 var b = this._b |
0
38147 var c = this._c |
0
38148 var d = this._d |
0
38149 var e = this._e |
0
38151 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38152 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
38154 for (var j =
0; j <
80; ++j) {
38156 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
38165 this._a = (a + this._a) |
0
38166 this._b = (b + this._b) |
0
38167 this._c = (c + this._c) |
0
38168 this._d = (d + this._d) |
0
38169 this._e = (e + this._e) |
0
38172 Sha1.prototype._hash = function () {
38173 var H = new Buffer(
20)
38175 H.writeInt32BE(this._a |
0,
0)
38176 H.writeInt32BE(this._b |
0,
4)
38177 H.writeInt32BE(this._c |
0,
8)
38178 H.writeInt32BE(this._d |
0,
12)
38179 H.writeInt32BE(this._e |
0,
16)
38184 module.exports = Sha1
38186 }).call(this,require(
"buffer").Buffer)
38187 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
38188 (function (Buffer){
38190 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
38192 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
38193 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38197 var inherits = require('inherits')
38198 var Sha256 = require('./sha256')
38199 var Hash = require('./hash')
38201 var W = new Array(
64)
38203 function Sha224 () {
38206 this._w = W // new Array(
64)
38208 Hash.call(this,
64,
56)
38211 inherits(Sha224, Sha256)
38213 Sha224.prototype.init = function () {
38214 this._a =
0xc1059ed8
38215 this._b =
0x367cd507
38216 this._c =
0x3070dd17
38217 this._d =
0xf70e5939
38218 this._e =
0xffc00b31
38219 this._f =
0x68581511
38220 this._g =
0x64f98fa7
38221 this._h =
0xbefa4fa4
38226 Sha224.prototype._hash = function () {
38227 var H = new Buffer(
28)
38229 H.writeInt32BE(this._a,
0)
38230 H.writeInt32BE(this._b,
4)
38231 H.writeInt32BE(this._c,
8)
38232 H.writeInt32BE(this._d,
12)
38233 H.writeInt32BE(this._e,
16)
38234 H.writeInt32BE(this._f,
20)
38235 H.writeInt32BE(this._g,
24)
38240 module.exports = Sha224
38242 }).call(this,require(
"buffer").Buffer)
38243 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
38244 (function (Buffer){
38246 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
38248 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
38249 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38253 var inherits = require('inherits')
38254 var Hash = require('./hash')
38257 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
38258 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
38259 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
38260 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
38261 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
38262 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
38263 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
38264 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
38265 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
38266 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
38267 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
38268 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
38269 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
38270 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
38271 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
38272 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
38275 var W = new Array(
64)
38277 function Sha256 () {
38280 this._w = W // new Array(
64)
38282 Hash.call(this,
64,
56)
38285 inherits(Sha256, Hash)
38287 Sha256.prototype.init = function () {
38288 this._a =
0x6a09e667
38289 this._b =
0xbb67ae85
38290 this._c =
0x3c6ef372
38291 this._d =
0xa54ff53a
38292 this._e =
0x510e527f
38293 this._f =
0x9b05688c
38294 this._g =
0x1f83d9ab
38295 this._h =
0x5be0cd19
38300 function ch (x, y, z) {
38301 return z ^ (x & (y ^ z))
38304 function maj (x, y, z) {
38305 return (x & y) | (z & (x | y))
38308 function sigma0 (x) {
38309 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
38312 function sigma1 (x) {
38313 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
38316 function gamma0 (x) {
38317 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
38320 function gamma1 (x) {
38321 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
38324 Sha256.prototype._update = function (M) {
38327 var a = this._a |
0
38328 var b = this._b |
0
38329 var c = this._c |
0
38330 var d = this._d |
0
38331 var e = this._e |
0
38332 var f = this._f |
0
38333 var g = this._g |
0
38334 var h = this._h |
0
38336 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38337 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
38339 for (var j =
0; j <
64; ++j) {
38340 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
38341 var T2 = (sigma0(a) + maj(a, b, c)) |
0
38353 this._a = (a + this._a) |
0
38354 this._b = (b + this._b) |
0
38355 this._c = (c + this._c) |
0
38356 this._d = (d + this._d) |
0
38357 this._e = (e + this._e) |
0
38358 this._f = (f + this._f) |
0
38359 this._g = (g + this._g) |
0
38360 this._h = (h + this._h) |
0
38363 Sha256.prototype._hash = function () {
38364 var H = new Buffer(
32)
38366 H.writeInt32BE(this._a,
0)
38367 H.writeInt32BE(this._b,
4)
38368 H.writeInt32BE(this._c,
8)
38369 H.writeInt32BE(this._d,
12)
38370 H.writeInt32BE(this._e,
16)
38371 H.writeInt32BE(this._f,
20)
38372 H.writeInt32BE(this._g,
24)
38373 H.writeInt32BE(this._h,
28)
38378 module.exports = Sha256
38380 }).call(this,require(
"buffer").Buffer)
38381 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
38382 (function (Buffer){
38383 var inherits = require('inherits')
38384 var SHA512 = require('./sha512')
38385 var Hash = require('./hash')
38387 var W = new Array(
160)
38389 function Sha384 () {
38393 Hash.call(this,
128,
112)
38396 inherits(Sha384, SHA512)
38398 Sha384.prototype.init = function () {
38399 this._ah =
0xcbbb9d5d
38400 this._bh =
0x629a292a
38401 this._ch =
0x9159015a
38402 this._dh =
0x152fecd8
38403 this._eh =
0x67332667
38404 this._fh =
0x8eb44a87
38405 this._gh =
0xdb0c2e0d
38406 this._hh =
0x47b5481d
38408 this._al =
0xc1059ed8
38409 this._bl =
0x367cd507
38410 this._cl =
0x3070dd17
38411 this._dl =
0xf70e5939
38412 this._el =
0xffc00b31
38413 this._fl =
0x68581511
38414 this._gl =
0x64f98fa7
38415 this._hl =
0xbefa4fa4
38420 Sha384.prototype._hash = function () {
38421 var H = new Buffer(
48)
38423 function writeInt64BE (h, l, offset) {
38424 H.writeInt32BE(h, offset)
38425 H.writeInt32BE(l, offset +
4)
38428 writeInt64BE(this._ah, this._al,
0)
38429 writeInt64BE(this._bh, this._bl,
8)
38430 writeInt64BE(this._ch, this._cl,
16)
38431 writeInt64BE(this._dh, this._dl,
24)
38432 writeInt64BE(this._eh, this._el,
32)
38433 writeInt64BE(this._fh, this._fl,
40)
38438 module.exports = Sha384
38440 }).call(this,require(
"buffer").Buffer)
38441 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
38442 (function (Buffer){
38443 var inherits = require('inherits')
38444 var Hash = require('./hash')
38447 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
38448 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
38449 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
38450 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
38451 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
38452 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
38453 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
38454 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
38455 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
38456 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
38457 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
38458 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
38459 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
38460 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
38461 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
38462 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
38463 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
38464 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
38465 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
38466 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
38467 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
38468 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
38469 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
38470 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
38471 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
38472 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
38473 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
38474 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
38475 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
38476 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
38477 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
38478 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
38479 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
38480 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
38481 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
38482 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
38483 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
38484 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
38485 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
38486 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
38489 var W = new Array(
160)
38491 function Sha512 () {
38495 Hash.call(this,
128,
112)
38498 inherits(Sha512, Hash)
38500 Sha512.prototype.init = function () {
38501 this._ah =
0x6a09e667
38502 this._bh =
0xbb67ae85
38503 this._ch =
0x3c6ef372
38504 this._dh =
0xa54ff53a
38505 this._eh =
0x510e527f
38506 this._fh =
0x9b05688c
38507 this._gh =
0x1f83d9ab
38508 this._hh =
0x5be0cd19
38510 this._al =
0xf3bcc908
38511 this._bl =
0x84caa73b
38512 this._cl =
0xfe94f82b
38513 this._dl =
0x5f1d36f1
38514 this._el =
0xade682d1
38515 this._fl =
0x2b3e6c1f
38516 this._gl =
0xfb41bd6b
38517 this._hl =
0x137e2179
38522 function Ch (x, y, z) {
38523 return z ^ (x & (y ^ z))
38526 function maj (x, y, z) {
38527 return (x & y) | (z & (x | y))
38530 function sigma0 (x, xl) {
38531 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
38534 function sigma1 (x, xl) {
38535 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
38538 function Gamma0 (x, xl) {
38539 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
38542 function Gamma0l (x, xl) {
38543 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
38546 function Gamma1 (x, xl) {
38547 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
38550 function Gamma1l (x, xl) {
38551 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
38554 function getCarry (a, b) {
38555 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
38558 Sha512.prototype._update = function (M) {
38561 var ah = this._ah |
0
38562 var bh = this._bh |
0
38563 var ch = this._ch |
0
38564 var dh = this._dh |
0
38565 var eh = this._eh |
0
38566 var fh = this._fh |
0
38567 var gh = this._gh |
0
38568 var hh = this._hh |
0
38570 var al = this._al |
0
38571 var bl = this._bl |
0
38572 var cl = this._cl |
0
38573 var dl = this._dl |
0
38574 var el = this._el |
0
38575 var fl = this._fl |
0
38576 var gl = this._gl |
0
38577 var hl = this._hl |
0
38579 for (var i =
0; i <
32; i +=
2) {
38580 W[i] = M.readInt32BE(i *
4)
38581 W[i +
1] = M.readInt32BE(i *
4 +
4)
38583 for (; i <
160; i +=
2) {
38584 var xh = W[i -
15 *
2]
38585 var xl = W[i -
15 *
2 +
1]
38586 var gamma0 = Gamma0(xh, xl)
38587 var gamma0l = Gamma0l(xl, xh)
38590 xl = W[i -
2 *
2 +
1]
38591 var gamma1 = Gamma1(xh, xl)
38592 var gamma1l = Gamma1l(xl, xh)
38594 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
38595 var Wi7h = W[i -
7 *
2]
38596 var Wi7l = W[i -
7 *
2 +
1]
38598 var Wi16h = W[i -
16 *
2]
38599 var Wi16l = W[i -
16 *
2 +
1]
38601 var Wil = (gamma0l + Wi7l) |
0
38602 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
38603 Wil = (Wil + gamma1l) |
0
38604 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
38605 Wil = (Wil + Wi16l) |
0
38606 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
38612 for (var j =
0; j <
160; j +=
2) {
38616 var majh = maj(ah, bh, ch)
38617 var majl = maj(al, bl, cl)
38619 var sigma0h = sigma0(ah, al)
38620 var sigma0l = sigma0(al, ah)
38621 var sigma1h = sigma1(eh, el)
38622 var sigma1l = sigma1(el, eh)
38624 // t1 = h + sigma1 + ch + K[j] + W[j]
38628 var chh = Ch(eh, fh, gh)
38629 var chl = Ch(el, fl, gl)
38631 var t1l = (hl + sigma1l) |
0
38632 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
38633 t1l = (t1l + chl) |
0
38634 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
38635 t1l = (t1l + Kil) |
0
38636 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
38637 t1l = (t1l + Wil) |
0
38638 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
38640 // t2 = sigma0 + maj
38641 var t2l = (sigma0l + majl) |
0
38642 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
38650 el = (dl + t1l) |
0
38651 eh = (dh + t1h + getCarry(el, dl)) |
0
38658 al = (t1l + t2l) |
0
38659 ah = (t1h + t2h + getCarry(al, t1l)) |
0
38662 this._al = (this._al + al) |
0
38663 this._bl = (this._bl + bl) |
0
38664 this._cl = (this._cl + cl) |
0
38665 this._dl = (this._dl + dl) |
0
38666 this._el = (this._el + el) |
0
38667 this._fl = (this._fl + fl) |
0
38668 this._gl = (this._gl + gl) |
0
38669 this._hl = (this._hl + hl) |
0
38671 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
38672 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
38673 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
38674 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
38675 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
38676 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
38677 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
38678 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
38681 Sha512.prototype._hash = function () {
38682 var H = new Buffer(
64)
38684 function writeInt64BE (h, l, offset) {
38685 H.writeInt32BE(h, offset)
38686 H.writeInt32BE(l, offset +
4)
38689 writeInt64BE(this._ah, this._al,
0)
38690 writeInt64BE(this._bh, this._bl,
8)
38691 writeInt64BE(this._ch, this._cl,
16)
38692 writeInt64BE(this._dh, this._dl,
24)
38693 writeInt64BE(this._eh, this._el,
32)
38694 writeInt64BE(this._fh, this._fl,
40)
38695 writeInt64BE(this._gh, this._gl,
48)
38696 writeInt64BE(this._hh, this._hl,
56)
38701 module.exports = Sha512
38703 }).call(this,require(
"buffer").Buffer)
38704 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
38705 var isHexPrefixed = require('is-hex-prefixed');
38708 * Removes '
0x' from a given `String` is present
38709 * @param {String} str the string value
38710 * @return {String|Optional} a string by pass if necessary
38712 module.exports = function stripHexPrefix(str) {
38713 if (typeof str !== 'string') {
38717 return isHexPrefixed(str) ? str.slice(
2) : str;
38720 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
38722 <script>function convertRippleAdrr(address) {
38723 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
38724 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
38728 function convertRipplePriv(priv) {
38729 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2)
38733 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
38737 /** @fileOverview Javascript cryptography implementation.
38739 * Crush to remove comments, shorten variable names and
38740 * generally reduce transmission size.
38742 * @author Emily Stark
38743 * @author Mike Hamburg
38744 * @author Dan Boneh
38748 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
38749 /*global document, window, escape, unescape, module, require, Uint32Array */
38751 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
38753 /** @namespace Symmetric ciphers. */
38756 /** @namespace Hash functions. Right now only SHA256 is implemented. */
38759 /** @namespace Key exchange functions. Right now only SRP is implemented. */
38762 /** @namespace Block cipher modes of operation. */
38765 /** @namespace Miscellaneous. HMAC and PBKDF2. */
38769 * @namespace Bit array encoders and decoders.
38772 * The members of this namespace are functions which translate between
38773 * SJCL's bitArrays and other objects (usually strings). Because it
38774 * isn't always clear which direction is encoding and which is decoding,
38775 * the method names are "fromBits" and "toBits".
38779 /** @namespace Exceptions. */
38781 /** @constructor Ciphertext is corrupt. */
38782 corrupt: function(message) {
38783 this.toString = function() { return "CORRUPT: "+this.message; };
38784 this.message = message;
38787 /** @constructor Invalid parameter. */
38788 invalid: function(message) {
38789 this.toString = function() { return "INVALID: "+this.message; };
38790 this.message = message;
38793 /** @constructor Bug or missing feature in SJCL. @constructor */
38794 bug: function(message) {
38795 this.toString = function() { return "BUG: "+this.message; };
38796 this.message = message;
38799 /** @constructor Something isn't ready. */
38800 notReady: function(message) {
38801 this.toString = function() { return "NOT READY: "+this.message; };
38802 this.message = message;
38807 if(typeof module !== 'undefined' && module.exports){
38808 module.exports = sjcl;
38810 if (typeof define === "function") {
38811 define([], function () {
38819 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
38821 * @author Emily Stark
38822 * @author Mike Hamburg
38823 * @author Dan Boneh
38826 /** @namespace Arrays of bits, encoded as arrays of Numbers.
38830 * These objects are the currency accepted by SJCL's crypto functions.
38834 * Most of our crypto primitives operate on arrays of
4-byte words internally,
38835 * but many of them can take arguments that are not a multiple of
4 bytes.
38836 * This library encodes arrays of bits (whose size need not be a multiple of
8
38837 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
38838 * array of words,
32 bits at a time. Since the words are double-precision
38839 * floating point numbers, they fit some extra data. We use this (in a private,
38840 * possibly-changing manner) to encode the number of bits actually present
38841 * in the last word of the array.
38845 * Because bitwise ops clear this out-of-band data, these arrays can be passed
38846 * to ciphers like AES which want arrays of words.
38851 * Array slices in units of bits.
38852 * @param {bitArray} a The array to slice.
38853 * @param {Number} bstart The offset to the start of the slice, in bits.
38854 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
38855 * slice until the end of the array.
38856 * @return {bitArray} The requested slice.
38858 bitSlice: function (a, bstart, bend) {
38859 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
38860 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
38864 * Extract a number packed into a bit array.
38865 * @param {bitArray} a The array to slice.
38866 * @param {Number} bstart The offset to the start of the slice, in bits.
38867 * @param {Number} length The length of the number to extract.
38868 * @return {Number} The requested slice.
38870 extract: function(a, bstart, blength) {
38871 // FIXME: this Math.floor is not necessary at all, but for some reason
38872 // seems to suppress a bug in the Chromium JIT.
38873 var x, sh = Math.floor((-bstart-blength) &
31);
38874 if ((bstart + blength -
1 ^ bstart) & -
32) {
38875 // it crosses a boundary
38876 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
38878 // within a single word
38879 x = a[bstart/
32|
0]
>>> sh;
38881 return x & ((
1<
<blength) -
1);
38885 * Concatenate two bit arrays.
38886 * @param {bitArray} a1 The first array.
38887 * @param {bitArray} a2 The second array.
38888 * @return {bitArray} The concatenation of a1 and a2.
38890 concat: function (a1, a2) {
38891 if (a1.length ===
0 || a2.length ===
0) {
38892 return a1.concat(a2);
38895 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
38896 if (shift ===
32) {
38897 return a1.concat(a2);
38899 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
38904 * Find the length of an array of bits.
38905 * @param {bitArray} a The array.
38906 * @return {Number} The length of a, in bits.
38908 bitLength: function (a) {
38909 var l = a.length, x;
38910 if (l ===
0) { return
0; }
38912 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
38916 * Truncate an array.
38917 * @param {bitArray} a The array.
38918 * @param {Number} len The length to truncate to, in bits.
38919 * @return {bitArray} A new array, truncated to len bits.
38921 clamp: function (a, len) {
38922 if (a.length *
32 < len) { return a; }
38923 a = a.slice(
0, Math.ceil(len /
32));
38926 if (l
> 0 && len) {
38927 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
38933 * Make a partial word for a bit array.
38934 * @param {Number} len The number of bits in the word.
38935 * @param {Number} x The bits.
38936 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
38937 * @return {Number} The partial word.
38939 partial: function (len, x, _end) {
38940 if (len ===
32) { return x; }
38941 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
38945 * Get the number of bits used by a partial word.
38946 * @param {Number} x The partial word.
38947 * @return {Number} The number of bits used by the partial word.
38949 getPartial: function (x) {
38950 return Math.round(x/
0x10000000000) ||
32;
38954 * Compare two arrays for equality in a predictable amount of time.
38955 * @param {bitArray} a The first array.
38956 * @param {bitArray} b The second array.
38957 * @return {boolean} true if a == b; false otherwise.
38959 equal: function (a, b) {
38960 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
38964 for (i=
0; i
<a.length; i++) {
38970 /** Shift an array right.
38971 * @param {bitArray} a The array to shift.
38972 * @param {Number} shift The number of bits to shift.
38973 * @param {Number} [carry=
0] A byte to carry in
38974 * @param {bitArray} [out=[]] An array to prepend to the output.
38977 _shiftRight: function (a, shift, carry, out) {
38978 var i, last2=
0, shift2;
38979 if (out === undefined) { out = []; }
38981 for (; shift
>=
32; shift -=
32) {
38986 return out.concat(a);
38989 for (i=
0; i
<a.length; i++) {
38990 out.push(carry | a[i]
>>>shift);
38991 carry = a[i] << (
32-shift);
38993 last2 = a.length ? a[a.length-
1] :
0;
38994 shift2 = sjcl.bitArray.getPartial(last2);
38995 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
38999 /** xor a block of
4 words together.
39002 _xor4: function(x,y) {
39003 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
39006 /** byteswap a word array inplace.
39007 * (does not handle partial words)
39008 * @param {sjcl.bitArray} a word array
39009 * @return {sjcl.bitArray} byteswapped array
39011 byteswapM: function(a) {
39012 var i, v, m =
0xff00;
39013 for (i =
0; i < a.length; ++i) {
39015 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
39022 //// codecString.js
39024 /** @fileOverview Bit array codec implementations.
39026 * @author Emily Stark
39027 * @author Mike Hamburg
39028 * @author Dan Boneh
39031 /** @namespace UTF-
8 strings */
39032 sjcl.codec.utf8String = {
39033 /** Convert from a bitArray to a UTF-
8 string. */
39034 fromBits: function (arr) {
39035 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
39036 for (i=
0; i
<bl/
8; i++) {
39040 out += String.fromCharCode(tmp
>>> 24);
39043 return decodeURIComponent(escape(out));
39046 /** Convert from a UTF-
8 string to a bitArray. */
39047 toBits: function (str) {
39048 str = unescape(encodeURIComponent(str));
39049 var out = [], i, tmp=
0;
39050 for (i=
0; i
<str.length; i++) {
39051 tmp = tmp <<
8 | str.charCodeAt(i);
39058 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
39067 /** @fileOverview Bit array codec implementations.
39069 * @author Emily Stark
39070 * @author Mike Hamburg
39071 * @author Dan Boneh
39074 /** @namespace Hexadecimal */
39076 /** Convert from a bitArray to a hex string. */
39077 fromBits: function (arr) {
39079 for (i=
0; i
<arr.length; i++) {
39080 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
39082 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
39084 /** Convert from a hex string to a bitArray. */
39085 toBits: function (str) {
39086 var i, out=[], len;
39087 str = str.replace(/\s|
0x/g,
"");
39089 str = str +
"00000000";
39090 for (i=
0; i
<str.length; i+=
8) {
39091 out.push(parseInt(str.substr(i,
8),
16)^
0);
39093 return sjcl.bitArray.clamp(out, len*
4);
39100 /** @fileOverview Javascript SHA-
512 implementation.
39102 * This implementation was written for CryptoJS by Jeff Mott and adapted for
39103 * SJCL by Stefan Thomas.
39105 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
39106 * Released with New BSD License
39108 * @author Emily Stark
39109 * @author Mike Hamburg
39110 * @author Dan Boneh
39111 * @author Jeff Mott
39112 * @author Stefan Thomas
39116 * Context for a SHA-
512 operation in progress.
39118 * @class Secure Hash Algorithm,
512 bits.
39120 sjcl.hash.sha512 = function (hash) {
39121 if (!this._key[
0]) { this._precompute(); }
39123 this._h = hash._h.slice(
0);
39124 this._buffer = hash._buffer.slice(
0);
39125 this._length = hash._length;
39132 * Hash a string or an array of words.
39134 * @param {bitArray|String} data the data to hash.
39135 * @return {bitArray} The hash value, an array of
16 big-endian words.
39137 sjcl.hash.sha512.hash = function (data) {
39138 return (new sjcl.hash.sha512()).update(data).finalize();
39141 sjcl.hash.sha512.prototype = {
39143 * The hash's block size, in bits.
39149 * Reset the hash state.
39152 reset:function () {
39153 this._h = this._init.slice(
0);
39160 * Input several words to the hash.
39161 * @param {bitArray|String} data the data to hash.
39164 update: function (data) {
39165 if (typeof data ===
"string") {
39166 data = sjcl.codec.utf8String.toBits(data);
39168 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
39170 nl = this._length = ol + sjcl.bitArray.bitLength(data);
39171 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
39172 this._block(b.splice(
0,
32));
39178 * Complete hashing and output the hash value.
39179 * @return {bitArray} The hash value, an array of
16 big-endian words.
39181 finalize:function () {
39182 var i, b = this._buffer, h = this._h;
39184 // Round out and push the buffer
39185 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
39187 // Round out the buffer to a multiple of
32 words, less the
4 length words.
39188 for (i = b.length +
4; i &
31; i++) {
39192 // append the length
39195 b.push(Math.floor(this._length /
0x100000000));
39196 b.push(this._length |
0);
39199 this._block(b.splice(
0,
32));
39207 * The SHA-
512 initialization vector, to be precomputed.
39213 * Least significant
24 bits of SHA512 initialization values.
39215 * Javascript only has
53 bits of precision, so we compute the
40 most
39216 * significant bits and add the remaining
24 bits as constants.
39220 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
39224 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
39225 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
39229 * The SHA-
512 hash key, to be precomputed.
39235 * Least significant
24 bits of SHA512 key values.
39239 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
39240 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
39241 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
39242 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
39243 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
39244 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
39245 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
39246 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
39247 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
39248 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
39252 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
39253 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
39254 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
39255 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
39256 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
39257 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
39258 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
39259 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
39260 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
39261 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
39262 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
39263 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
39264 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
39265 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
39266 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
39267 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
39268 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
39269 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
39270 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
39271 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
39275 * Function to precompute _init and _key.
39278 _precompute: function () {
39279 // XXX: This code is for precomputing the SHA256 constants, change for
39280 // SHA512 and re-enable.
39281 var i =
0, prime =
2, factor;
39283 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
39284 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
39286 outer: for (; i
<80; prime++) {
39287 for (factor=
2; factor*factor <= prime; factor++) {
39288 if (prime % factor ===
0) {
39295 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
39296 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
39298 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
39299 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
39305 * Perform one cycle of SHA-
512.
39306 * @param {bitArray} words one block of words.
39309 _block:function (words) {
39311 w = words.slice(
0),
39314 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
39315 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
39316 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
39317 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
39319 // Working variables
39320 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
39321 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
39322 eh = h4h, el = h4l, fh = h5h, fl = h5l,
39323 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
39325 for (i=
0; i
<80; i++) {
39326 // load up the input word for this round
39329 wrl = w[i *
2 +
1];
39332 var gamma0xh = w[(i-
15) *
2];
39333 var gamma0xl = w[(i-
15) *
2 +
1];
39335 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
39336 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
39339 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
39340 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
39341 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
39344 var gamma1xh = w[(i-
2) *
2];
39345 var gamma1xl = w[(i-
2) *
2 +
1];
39347 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
39348 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
39351 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
39352 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
39353 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
39356 var wr7h = w[(i-
7) *
2];
39357 var wr7l = w[(i-
7) *
2 +
1];
39359 var wr16h = w[(i-
16) *
2];
39360 var wr16l = w[(i-
16) *
2 +
1];
39362 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
39363 wrl = gamma0l + wr7l;
39364 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
39366 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
39368 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
39372 w[i*
2 +
1] = wrl |=
0;
39375 var chh = (eh & fh) ^ (~eh & gh);
39376 var chl = (el & fl) ^ (~el & gl);
39379 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
39380 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
39383 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
39384 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
39387 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
39388 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
39392 var krl = k[i*
2+
1];
39394 // t1 = h + sigma1 + ch + K(round) + W(round)
39395 var t1l = hl + sigma1l;
39396 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
39398 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
39400 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
39401 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
39402 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
39404 // t2 = sigma0 + maj
39405 var t2l = sigma0l + majl;
39406 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
39408 // Update working variables
39415 el = (dl + t1l) |
0;
39416 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
39423 al = (t1l + t2l) |
0;
39424 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
39427 // Intermediate hash
39428 h0l = h[
1] = (h0l + al) |
0;
39429 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
39430 h1l = h[
3] = (h1l + bl) |
0;
39431 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
39432 h2l = h[
5] = (h2l + cl) |
0;
39433 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
39434 h3l = h[
7] = (h3l + dl) |
0;
39435 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
39436 h4l = h[
9] = (h4l + el) |
0;
39437 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
39438 h5l = h[
11] = (h5l + fl) |
0;
39439 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
39440 h6l = h[
13] = (h6l + gl) |
0;
39441 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
39442 h7l = h[
15] = (h7l + hl) |
0;
39443 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
39450 /** @fileOverview HMAC implementation.
39452 * @author Emily Stark
39453 * @author Mike Hamburg
39454 * @author Dan Boneh
39457 /** HMAC with the specified hash function.
39459 * @param {bitArray} key the key for HMAC.
39460 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
39462 sjcl.misc.hmac = function (key, Hash) {
39463 this._hash = Hash = Hash || sjcl.hash.sha256;
39464 var exKey = [[],[]], i,
39465 bs = Hash.prototype.blockSize /
32;
39466 this._baseHash = [new Hash(), new Hash()];
39468 if (key.length
> bs) {
39469 key = Hash.hash(key);
39472 for (i=
0; i
<bs; i++) {
39473 exKey[
0][i] = key[i]^
0x36363636;
39474 exKey[
1][i] = key[i]^
0x5C5C5C5C;
39477 this._baseHash[
0].update(exKey[
0]);
39478 this._baseHash[
1].update(exKey[
1]);
39479 this._resultHash = new Hash(this._baseHash[
0]);
39482 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
39483 * @param {bitArray|String} data The data to mac.
39485 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
39486 if (!this._updated) {
39488 return this.digest(data);
39490 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
39494 sjcl.misc.hmac.prototype.reset = function () {
39495 this._resultHash = new this._hash(this._baseHash[
0]);
39496 this._updated = false;
39499 sjcl.misc.hmac.prototype.update = function (data) {
39500 this._updated = true;
39501 this._resultHash.update(data);
39504 sjcl.misc.hmac.prototype.digest = function () {
39505 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
39516 /** @fileOverview Password-based key-derivation function, version
2.0.
39518 * @author Emily Stark
39519 * @author Mike Hamburg
39520 * @author Dan Boneh
39523 /** Password-Based Key-Derivation Function, version
2.0.
39525 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
39527 * This is the method specified by RSA's PKCS #
5 standard.
39529 * @param {bitArray|String} password The password.
39530 * @param {bitArray|String} salt The salt. Should have lots of entropy.
39531 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
39532 * @param {Number} [length] The length of the derived key. Defaults to the
39533 output size of the hash function.
39534 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
39535 * @return {bitArray} the derived key.
39537 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
39538 count = count ||
1000;
39540 if (length <
0 || count <
0) {
39541 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
39544 if (typeof password ===
"string") {
39545 password = sjcl.codec.utf8String.toBits(password);
39548 if (typeof salt ===
"string") {
39549 salt = sjcl.codec.utf8String.toBits(salt);
39552 Prff = Prff || sjcl.misc.hmac;
39554 var prf = new Prff(password),
39555 u, ui, i, j, k, out = [], b = sjcl.bitArray;
39557 for (k =
1;
32 * out.length < (length ||
1); k++) {
39558 u = ui = prf.encrypt(b.concat(salt,[k]));
39560 for (i=
1; i
<count; i++) {
39561 ui = prf.encrypt(ui);
39562 for (j=
0; j
<ui.length; j++) {
39567 out = out.concat(u);
39570 if (length) { out = b.clamp(out, length); }
39578 /** @fileOverview Javascript SHA-
256 implementation.
39580 * An older version of this implementation is available in the public
39581 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
39582 * Stanford University
2008-
2010 and BSD-licensed for liability
39585 * Special thanks to Aldo Cortesi for pointing out several bugs in
39588 * @author Emily Stark
39589 * @author Mike Hamburg
39590 * @author Dan Boneh
39594 * Context for a SHA-
256 operation in progress.
39596 * @class Secure Hash Algorithm,
256 bits.
39598 sjcl.hash.sha256 = function (hash) {
39599 if (!this._key[
0]) { this._precompute(); }
39601 this._h = hash._h.slice(
0);
39602 this._buffer = hash._buffer.slice(
0);
39603 this._length = hash._length;
39610 * Hash a string or an array of words.
39612 * @param {bitArray|String} data the data to hash.
39613 * @return {bitArray} The hash value, an array of
16 big-endian words.
39615 sjcl.hash.sha256.hash = function (data) {
39616 return (new sjcl.hash.sha256()).update(data).finalize();
39619 sjcl.hash.sha256.prototype = {
39621 * The hash's block size, in bits.
39627 * Reset the hash state.
39630 reset:function () {
39631 this._h = this._init.slice(
0);
39638 * Input several words to the hash.
39639 * @param {bitArray|String} data the data to hash.
39642 update: function (data) {
39643 if (typeof data ===
"string") {
39644 data = sjcl.codec.utf8String.toBits(data);
39646 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
39648 nl = this._length = ol + sjcl.bitArray.bitLength(data);
39649 for (i =
512+ol & -
512; i <= nl; i+=
512) {
39650 this._block(b.splice(
0,
16));
39656 * Complete hashing and output the hash value.
39657 * @return {bitArray} The hash value, an array of
8 big-endian words.
39659 finalize:function () {
39660 var i, b = this._buffer, h = this._h;
39662 // Round out and push the buffer
39663 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
39665 // Round out the buffer to a multiple of
16 words, less the
2 length words.
39666 for (i = b.length +
2; i &
15; i++) {
39670 // append the length
39671 b.push(Math.floor(this._length /
0x100000000));
39672 b.push(this._length |
0);
39675 this._block(b.splice(
0,
16));
39683 * The SHA-
256 initialization vector, to be precomputed.
39688 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
39692 * The SHA-
256 hash key, to be precomputed.
39698 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
39699 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
39700 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
39701 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
39702 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
39703 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
39704 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
39705 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
39710 * Function to precompute _init and _key.
39713 _precompute: function () {
39714 var i =
0, prime =
2, factor;
39716 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
39718 outer: for (; i
<64; prime++) {
39719 for (factor=
2; factor*factor <= prime; factor++) {
39720 if (prime % factor ===
0) {
39727 this._init[i] = frac(Math.pow(prime,
1/
2));
39729 this._key[i] = frac(Math.pow(prime,
1/
3));
39735 * Perform one cycle of SHA-
256.
39736 * @param {bitArray} words one block of words.
39739 _block:function (words) {
39741 w = words.slice(
0),
39744 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
39745 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
39747 /* Rationale for placement of |
0 :
39748 * If a value can overflow is original
32 bits by a factor of more than a few
39749 * million (
2^
23 ish), there is a possibility that it might overflow the
39750 *
53-bit mantissa and lose precision.
39752 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
39753 * propagates around the loop, and on the hash state h[]. I don't believe
39754 * that the clamps on h4 and on h0 are strictly necessary, but it's close
39755 * (for h4 anyway), and better safe than sorry.
39757 * The clamps on h[] are necessary for the output to be correct even in the
39758 * common case and for short inputs.
39760 for (i=
0; i
<64; i++) {
39761 // load up the input word for this round
39765 a = w[(i+
1 ) &
15];
39766 b = w[(i+
14) &
15];
39767 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
39768 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
39769 w[i&
15] + w[(i+
9) &
15]) |
0;
39772 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
39775 h7 = h6; h6 = h5; h5 = h4;
39777 h3 = h2; h2 = h1; h1 = h0;
39779 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
39782 h[
0] = h[
0]+h0 |
0;
39783 h[
1] = h[
1]+h1 |
0;
39784 h[
2] = h[
2]+h2 |
0;
39785 h[
3] = h[
3]+h3 |
0;
39786 h[
4] = h[
4]+h4 |
0;
39787 h[
5] = h[
5]+h5 |
0;
39788 h[
6] = h[
6]+h6 |
0;
39789 h[
7] = h[
7]+h7 |
0;
39793 <script>// An extremely basic translation library
39797 // Set some html to be translated. Do this using the 'data-translate' attribute:
39799 //
<div data-translate
>Test
</div>
39800 //
<div data-translate-html
><em>keep em tag
</em></div>
39801 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
39802 //
<span data-translate-title
title=
"Example title"></span>
39804 // Obtain all the phrases to be translated via js debug console:
39806 // Translate.phrasesAsJson();
39808 // Use that template to translate the phrases into another language.
39809 // Leave the key the same. Change the value to the new language.
39811 // Create a js file to load the new phrases. In this example for Spanish,
39812 // es.js will contain the following code:
39814 // Translate.loadForeignPhrases("es", {
39815 // "Test": "Test in Spanish",
39816 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
39817 // "Example placeholder
": "Example placeholder in Spanish
"
39818 // "Example title
": "Example title in Spanish
"
39821 // In your UI put a listener for clicking on the Spanish button:
39823 // mySpanishButton.addEventListener("click
", function() {
39824 // Translate.setLanguage("es
");
39826 // myEnglishButton.addEventListener("click
", function() {
39827 // Translate.setLanguage("en
");
39830 Translate = new (function() {
39832 var defaultLanguage = "en
";
39834 var allPhrases = {};
39835 allPhrases[defaultLanguage] = {};
39840 selector: "[data-translate]
",
39841 getKey: function() {
39842 return this.textContent.trim().replace(/\s+/g, " ");
39844 setPhrase: function(p) {
39845 this.textContent = p;
39850 selector: "[data-translate-html]
",
39851 getKey: function() {
39852 return this.innerHTML.trim().replace(/\s+/g, " ");
39854 setPhrase: function(p) {
39855 this.innerHTML = p;
39859 var placeholder = {
39860 selector: "[data-translate-placeholder]
",
39861 getKey: function() {
39862 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
39864 setPhrase: function(p) {
39865 this.setAttribute("placeholder
", p);
39870 selector: "[data-translate-title]
",
39871 getKey: function() {
39872 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
39874 setPhrase: function(p) {
39875 this.setAttribute("title
", p);
39879 // Get elements to be translated
39880 var allEls = getEls(text)
39881 .concat(getEls(html))
39882 .concat(getEls(placeholder))
39883 .concat(getEls(title));
39885 // Provides access to phrases from a non-default language.
39886 // See phrases_en.js for example usage.
39887 this.loadForeignPhrases = function(language, phrases) {
39888 allPhrases[language] = phrases;
39891 // Displays a different language, eg "en
" or "fr
"
39892 this.setLanguage = function(language) {
39893 for (var i=0; i<allEls.length; i++) {
39894 var el = allEls[i];
39896 if (!(language in allPhrases)) {
39897 console.log(language + " not in allPhrases
");
39900 if (!(key in allPhrases[language])) {
39901 console.log(language + " does not contain phrase:
" + key);
39904 var phrase = allPhrases[language][key];
39905 el.setPhrase(phrase);
39909 // Converts the phrases to a key-pair json file.
39910 // This is a good way to export phrases for use in translation tools.
39911 this.phrasesAsJson = function(language) {
39913 for (var i=0; i<allEls.length; i++) {
39914 var el = allEls[i];
39920 for (var i=0; i<keys.length; i++) {
39922 var translated = "";
39923 if (language in allPhrases && key in allPhrases[language]) {
39924 translated = allPhrases[language][key];
39926 output[key] = translated;
39928 return JSON.stringify(output, null, 2);
39931 function getEls(nodeType) {
39932 var nodes = document.querySelectorAll(nodeType.selector);
39934 for (var i=0; i<nodes.length; i++) {
39935 var node = nodes[i];
39936 node.getKey = nodeType.getKey;
39937 node.setPhrase = nodeType.setPhrase;
39938 node.key = node.getKey();
39939 allPhrases[defaultLanguage][node.key] = node.key;
39947 <script>Translate.loadForeignPhrases("en",
39949 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
39950 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
39951 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
39952 "
<code>m/
44'/
0'/
1'
</code> for the next account. Continue incrementing for more accounts (most use a single account).": "
<code>m/
44'/
0'/
1'
</code> for the next account. Continue incrementing for more accounts (most use a single account).",
39953 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
39954 "Account": "Account",
39955 "Address": "Address",
39956 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
39957 "BIP32 Derivation Path": "BIP32 Derivation Path",
39958 "BIP32 Extended Key": "BIP32 Extended Key",
39959 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
39960 "BIP32 Root Key": "BIP32 Root Key",
39961 "BIP39 Mnemonic": "BIP39 Mnemonic",
39962 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
39963 "BIP39 Seed": "BIP39 Seed",
39964 "Base
10": "Base
10",
39965 "Base
6": "Base
6",
39966 "Be careful - it can be easy to make mistakes if you don't know what you're doing.": "Be careful - it can be easy to make mistakes if you don't know what you're doing.",
39967 "Binary": "Binary",
39968 "Bitcoin Core": "Bitcoin Core",
39969 "Bits Per Event": "Bits Per Event",
39970 "Block Explorers": "Block Explorers",
39971 "Can be used with": "Can be used with",
39975 "Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.": "Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.",
39976 "Double-click that file to open it in a browser on any offline computer.": "Double-click that file to open it in a browser on any offline computer.",
39977 "Entropy": "Entropy",
39978 "Entropy Type": "Entropy Type",
39979 "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.": "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.",
39980 "Entropy values must be sourced from a
<a href=\
"https://en.wikipedia.org/wiki/Random_number_generation\" target=\
"_blank\">strong source of randomness
</a>.": "Entropy values must be sourced from a
<a href=\
"https://en.wikipedia.org/wiki/Random_number_generation\" target=\
"_blank\">strong source of randomness
</a>.",
39981 "Event Count": "Event Count",
39982 "External / Internal": "External / Internal",
39983 "Filtered Entropy": "Filtered Entropy",
39984 "For more info see the
<a href=\
"http://www.mycelium.com/\" target=\
"_blank\">Mycelium Wallet homepage
</a>": "For more info see the
<a href=\
"http://www.mycelium.com/\" target=\
"_blank\">Mycelium Wallet homepage
</a>",
39985 "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\
"_blank\">BIP39 spec
</a>.": "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\
"_blank\">BIP39 spec
</a>.",
39986 "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">BIP44 spec
</a>.": "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">BIP44 spec
</a>.",
39987 "For more info see the
<a href=\
"https://github.com/bitcoin/bitcoin/pull/8035\" target=\
"_blank\">Bitcoin Core BIP32 implementation
</a>": "For more info see the
<a href=\
"https://github.com/bitcoin/bitcoin/pull/8035\" target=\
"_blank\">Bitcoin Core BIP32 implementation
</a>",
39988 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
39989 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
39990 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
39991 "Get the source code from the repository
": "Get the source code from the repository
",
39993 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
39994 "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
": "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
",
39995 "In that case you might choose to use your own source of entropy.
": "In that case you might choose to use your own source of entropy.
",
39996 "In your browser, select file save-as, and save this page as a file.
": "In your browser, select file save-as, and save this page as a file.
",
39997 "Libraries
": "Libraries
",
39998 "Mnemonic Language
": "Mnemonic Language
",
39999 "Mnemonic Length
": "Mnemonic Length
",
40000 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
40001 "More info
": "More info
",
40002 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
40003 "Mycelium Wallet
": "Mycelium Wallet
",
40004 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
40005 "Offline Usage
": "Offline Usage
",
40006 "Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.": "Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.",
40008 "Private Key": "Private Key",
40009 "Private Keys": "Private Keys",
40010 "Public Key": "Public Key",
40011 "Purpose": "Purpose",
40012 "Raw Binary": "Raw Binary",
40013 "Read more": "Read more",
40014 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\
"_blank\">official BIP32 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\
"_blank\">official BIP32 spec
</a>",
40015 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec
</a>",
40016 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">official BIP44 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">official BIP44 spec
</a>",
40017 "See the demo at
<a href=\
"http://bip32.org/\" target=\
"_blank\">bip32.org
</a>": "See the demo at
<a href=\
"http://bip32.org/\" target=\
"_blank\">bip32.org
</a>",
40019 "Show more rows
": "Show more rows
",
40020 "Strength
": "Strength
",
40021 "Supply my own source of entropy
": "Supply my own source of entropy
",
40022 "The built in random generator can generally be trusted more than your own intuition about randomness.
": "The built in random generator can generally be trusted more than your own intuition about randomness.
",
40023 "The random mnemonic generator on this page uses a
<a href=\
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\
"_blank\">cryptographically secure random number generator
</a>.": "The random mnemonic generator on this page uses a
<a href=\
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\
"_blank\">cryptographically secure random number generator
</a>.",
40024 "This means flipping a fair coin, rolling a fair dice, noise measurements etc.": "This means flipping a fair coin, rolling a fair dice, noise measurements etc.",
40025 "This project is
100% open-source code": "This project is
100% open-source code",
40026 "Toggle": "Toggle",
40027 "Total Bits": "Total Bits",
40028 "Use hardened addresses": "Use hardened addresses",
40029 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
40030 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
40031 "Use private keys at
<a href=\
"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\
"_blank\">brainwallet.org
</a>.": "Use private keys at
<a href=\
"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\
"_blank\">brainwallet.org
</a>.",
40032 "Valid entropy values include:": "Valid entropy values include:",
40033 "Warning": "Warning",
40034 "Word Count": "Word Count",
40035 "You are not a good source of entropy.": "You are not a good source of entropy.",
40036 "You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).": "You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).",
40037 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
40042 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40043 WORDLISTS["english"] = [
40044 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
40045 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
40046 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
40047 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
40048 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
40049 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
40050 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
40051 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
40052 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
40053 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
40054 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
40055 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
40056 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
40057 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
40058 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
40059 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
40060 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
40061 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
40062 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
40063 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
40064 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
40065 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
40066 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
40067 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
40068 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
40069 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
40070 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
40071 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
40072 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
40073 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
40074 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
40075 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
40076 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
40077 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
40078 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
40079 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
40080 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
40081 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
40082 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
40083 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
40084 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
40085 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
40086 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
40087 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
40088 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
40089 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
40090 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
40091 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
40092 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
40093 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
40094 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
40095 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
40096 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
40097 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
40098 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
40099 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
40100 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
40101 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
40102 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
40103 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
40104 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
40105 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
40106 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
40107 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
40108 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
40109 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
40110 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
40111 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
40112 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
40113 "film","filter","final","find","fine","finger","finish","fire","firm","first",
40114 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
40115 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
40116 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
40117 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
40118 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
40119 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
40120 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
40121 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
40122 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
40123 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
40124 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
40125 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
40126 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
40127 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
40128 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
40129 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
40130 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
40131 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
40132 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
40133 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
40134 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
40135 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
40136 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
40137 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
40138 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
40139 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
40140 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
40141 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
40142 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
40143 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
40144 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
40145 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
40146 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
40147 "liar","liberty","library","license","life","lift","light","like","limb","limit",
40148 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
40149 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
40150 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
40151 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
40152 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
40153 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
40154 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
40155 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
40156 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
40157 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
40158 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
40159 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
40160 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
40161 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
40162 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
40163 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
40164 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
40165 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
40166 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
40167 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
40168 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
40169 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
40170 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
40171 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
40172 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
40173 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
40174 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
40175 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
40176 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
40177 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
40178 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
40179 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
40180 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
40181 "prize","problem","process","produce","profit","program","project","promote","proof","property",
40182 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
40183 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
40184 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
40185 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
40186 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
40187 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
40188 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
40189 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
40190 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
40191 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
40192 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
40193 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
40194 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
40195 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
40196 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
40197 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
40198 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
40199 "scrub","sea","search","season","seat","second","secret","section","security","seed",
40200 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
40201 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
40202 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
40203 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
40204 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
40205 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
40206 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
40207 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
40208 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
40209 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
40210 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
40211 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
40212 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
40213 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
40214 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
40215 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
40216 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
40217 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
40218 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
40219 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
40220 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
40221 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
40222 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
40223 "thank","that","theme","then","theory","there","they","thing","this","thought",
40224 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
40225 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
40226 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
40227 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
40228 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
40229 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
40230 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
40231 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
40232 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
40233 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
40234 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
40235 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
40236 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
40237 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
40238 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
40239 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
40240 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
40241 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
40242 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
40243 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
40244 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
40245 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
40246 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
40247 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
40248 "yellow","you","young","youth","zebra","zero","zone","zoo"]
40250 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40251 WORDLISTS["japanese"] = [
40252 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
40253 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
40254 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
40255 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
40256 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
40257 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
40258 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
40259 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
40260 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
40261 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
40262 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
40263 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
40264 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
40265 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
40266 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
40267 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
40268 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
40269 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
40270 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
40271 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
40272 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
40273 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
40274 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
40275 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
40276 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
40277 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
40278 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
40279 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
40280 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
40281 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
40282 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
40283 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
40284 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
40285 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
40286 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
40287 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
40288 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
40289 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
40290 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
40291 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
40292 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
40293 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
40294 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
40295 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
40296 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
40297 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
40298 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
40299 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
40300 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
40301 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
40302 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
40303 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
40304 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
40305 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
40306 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
40307 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
40308 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
40309 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
40310 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
40311 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
40312 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
40313 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
40314 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
40315 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
40316 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
40317 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
40318 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
40319 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
40320 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
40321 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
40322 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
40323 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
40324 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
40325 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
40326 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
40327 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
40328 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
40329 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
40330 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
40331 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
40332 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
40333 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
40334 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
40335 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
40336 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
40337 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
40338 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
40339 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
40340 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
40341 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
40342 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
40343 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
40344 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
40345 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
40346 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
40347 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
40348 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
40349 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
40350 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
40351 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
40352 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
40353 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
40354 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
40355 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
40356 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
40357 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
40358 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
40359 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
40360 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
40361 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
40362 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
40363 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
40364 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
40365 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
40366 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
40367 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
40368 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
40369 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
40370 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
40371 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
40372 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
40373 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
40374 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
40375 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
40376 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
40377 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
40378 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
40379 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
40380 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
40381 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
40382 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
40383 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
40384 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
40385 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
40386 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
40387 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
40388 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
40389 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
40390 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
40391 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
40392 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
40393 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
40394 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
40395 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
40396 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
40397 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
40398 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
40399 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
40400 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
40401 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
40402 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
40403 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
40404 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
40405 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
40406 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
40407 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
40408 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
40409 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
40410 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
40411 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
40412 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
40413 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
40414 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
40415 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
40416 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
40417 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
40418 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
40419 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
40420 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
40421 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
40422 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
40423 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
40424 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
40425 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
40426 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
40427 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
40428 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
40429 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
40430 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
40431 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
40432 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
40433 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
40434 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
40435 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
40436 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
40437 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
40438 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
40439 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
40440 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
40441 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
40442 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
40443 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
40444 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
40445 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
40446 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
40447 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
40448 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
40449 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
40450 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
40451 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
40452 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
40453 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
40454 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
40455 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
40456 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
40458 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40459 WORDLISTS["spanish"] = [
40460 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
40461 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
40462 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
40463 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
40464 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
40465 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
40466 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
40467 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
40468 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
40469 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
40470 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
40471 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
40472 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
40473 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
40474 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
40475 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
40476 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
40477 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
40478 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
40479 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
40480 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
40481 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
40482 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
40483 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
40484 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
40485 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
40486 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
40487 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
40488 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
40489 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
40490 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
40491 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
40492 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
40493 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
40494 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
40495 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
40496 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
40497 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
40498 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
40499 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
40500 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
40501 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
40502 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
40503 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
40504 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
40505 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
40506 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
40507 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
40508 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
40509 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
40510 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
40511 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
40512 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
40513 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
40514 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
40515 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
40516 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
40517 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
40518 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
40519 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
40520 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
40521 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
40522 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
40523 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
40524 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
40525 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
40526 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
40527 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
40528 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
40529 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
40530 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
40531 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
40532 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
40533 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
40534 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
40535 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
40536 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
40537 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
40538 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
40539 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
40540 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
40541 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
40542 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
40543 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
40544 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
40545 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
40546 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
40547 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
40548 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
40549 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
40550 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
40551 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
40552 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
40553 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
40554 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
40555 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
40556 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
40557 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
40558 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
40559 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
40560 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
40561 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
40562 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
40563 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
40564 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
40565 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
40566 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
40567 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
40568 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
40569 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
40570 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
40571 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
40572 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
40573 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
40574 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
40575 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
40576 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
40577 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
40578 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
40579 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
40580 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
40581 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
40582 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
40583 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
40584 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
40585 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
40586 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
40587 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
40588 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
40589 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
40590 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
40591 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
40592 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
40593 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
40594 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
40595 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
40596 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
40597 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
40598 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
40599 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
40600 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
40601 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
40602 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
40603 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
40604 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
40605 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
40606 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
40607 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
40608 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
40609 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
40610 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
40611 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
40612 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
40613 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
40614 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
40615 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
40616 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
40617 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
40618 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
40619 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
40620 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
40621 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
40622 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
40623 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
40624 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
40625 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
40626 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
40627 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
40628 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
40629 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
40630 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
40631 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
40632 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
40633 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
40634 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
40635 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
40636 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
40637 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
40638 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
40639 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
40640 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
40641 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
40642 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
40643 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
40644 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
40645 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
40646 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
40647 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
40648 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
40649 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
40650 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
40651 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
40652 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
40653 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
40654 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
40655 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
40656 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
40657 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
40658 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
40659 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
40660 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
40661 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
40662 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
40663 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
40664 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
40666 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40667 WORDLISTS["chinese_simplified"] = [
40668 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
40669 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
40670 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
40671 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
40672 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
40673 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
40674 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
40675 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
40676 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
40677 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
40678 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
40679 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
40680 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
40681 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
40682 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
40683 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
40684 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
40685 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
40686 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
40687 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
40688 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
40689 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
40690 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
40691 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
40692 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
40693 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
40694 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
40695 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
40696 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
40697 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
40698 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
40699 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
40700 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
40701 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
40702 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
40703 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
40704 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
40705 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
40706 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
40707 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
40708 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
40709 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
40710 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
40711 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
40712 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
40713 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
40714 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
40715 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
40716 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
40717 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
40718 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
40719 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
40720 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
40721 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
40722 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
40723 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
40724 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
40725 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
40726 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
40727 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
40728 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
40729 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
40730 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
40731 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
40732 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
40733 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
40734 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
40735 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
40736 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
40737 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
40738 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
40739 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
40740 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
40741 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
40742 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
40743 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
40744 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
40745 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
40746 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
40747 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
40748 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
40749 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
40750 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
40751 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
40752 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
40753 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
40754 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
40755 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
40756 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
40757 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
40758 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
40759 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
40760 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
40761 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
40762 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
40763 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
40764 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
40765 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
40766 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
40767 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
40768 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
40769 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
40770 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
40771 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
40772 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
40773 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
40774 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
40775 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
40776 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
40777 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
40778 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
40779 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
40780 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
40781 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
40782 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
40783 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
40784 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
40785 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
40786 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
40787 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
40788 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
40789 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
40790 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
40791 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
40792 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
40793 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
40794 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
40795 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
40796 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
40797 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
40798 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
40799 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
40800 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
40801 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
40802 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
40803 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
40804 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
40805 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
40806 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
40807 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
40808 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
40809 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
40810 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
40811 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
40812 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
40813 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
40814 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
40815 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
40816 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
40817 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
40818 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
40819 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
40820 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
40821 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
40822 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
40823 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
40824 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
40825 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
40826 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
40827 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
40828 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
40829 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
40830 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
40831 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
40832 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
40833 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
40834 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
40835 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
40836 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
40837 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
40838 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
40839 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
40840 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
40841 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
40842 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
40843 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
40844 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
40845 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
40846 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
40847 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
40848 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
40849 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
40850 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
40851 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
40852 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
40853 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
40854 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
40855 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
40856 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
40857 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
40858 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
40859 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
40860 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
40861 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
40862 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
40863 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
40864 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
40865 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
40866 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
40867 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
40868 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
40869 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
40870 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
40871 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
40872 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
40874 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40875 WORDLISTS["chinese_traditional"] = [
40876 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
40877 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
40878 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
40879 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
40880 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
40881 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
40882 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
40883 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
40884 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
40885 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
40886 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
40887 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
40888 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
40889 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
40890 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
40891 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
40892 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
40893 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
40894 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
40895 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
40896 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
40897 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
40898 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
40899 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
40900 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
40901 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
40902 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
40903 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
40904 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
40905 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
40906 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
40907 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
40908 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
40909 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
40910 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
40911 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
40912 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
40913 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
40914 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
40915 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
40916 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
40917 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
40918 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
40919 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
40920 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
40921 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
40922 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
40923 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
40924 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
40925 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
40926 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
40927 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
40928 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
40929 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
40930 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
40931 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
40932 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
40933 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
40934 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
40935 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
40936 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
40937 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
40938 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
40939 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
40940 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
40941 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
40942 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
40943 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
40944 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
40945 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
40946 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
40947 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
40948 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
40949 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
40950 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
40951 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
40952 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
40953 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
40954 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
40955 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
40956 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
40957 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
40958 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
40959 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
40960 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
40961 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
40962 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
40963 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
40964 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
40965 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
40966 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
40967 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
40968 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
40969 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
40970 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
40971 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
40972 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
40973 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
40974 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
40975 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
40976 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
40977 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
40978 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
40979 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
40980 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
40981 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
40982 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
40983 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
40984 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
40985 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
40986 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
40987 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
40988 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
40989 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
40990 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
40991 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
40992 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
40993 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
40994 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
40995 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
40996 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
40997 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
40998 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
40999 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
41000 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
41001 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
41002 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
41003 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
41004 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
41005 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
41006 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
41007 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
41008 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
41009 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
41010 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
41011 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
41012 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
41013 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
41014 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
41015 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
41016 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
41017 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
41018 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
41019 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
41020 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
41021 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
41022 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
41023 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
41024 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
41025 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
41026 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
41027 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
41028 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
41029 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
41030 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
41031 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
41032 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
41033 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
41034 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
41035 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
41036 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
41037 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
41038 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
41039 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
41040 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
41041 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
41042 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
41043 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
41044 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
41045 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
41046 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
41047 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
41048 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
41049 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
41050 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
41051 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
41052 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
41053 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
41054 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
41055 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
41056 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
41057 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
41058 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
41059 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
41060 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
41061 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
41062 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
41063 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
41064 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
41065 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
41066 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
41067 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
41068 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
41069 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
41070 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
41071 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
41072 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
41073 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
41074 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
41075 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
41076 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
41077 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
41078 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
41079 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
41080 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
41082 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
41083 WORDLISTS["french"] = [
41084 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
41085 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
41086 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
41087 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
41088 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
41089 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
41090 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
41091 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
41092 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
41093 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
41094 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
41095 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
41096 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
41097 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
41098 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
41099 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
41100 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
41101 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
41102 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
41103 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
41104 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
41105 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
41106 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
41107 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
41108 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
41109 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
41110 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
41111 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
41112 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
41113 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
41114 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
41115 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
41116 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
41117 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
41118 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
41119 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
41120 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
41121 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
41122 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
41123 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
41124 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
41125 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
41126 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
41127 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
41128 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
41129 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
41130 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
41131 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
41132 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
41133 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
41134 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
41135 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
41136 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
41137 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
41138 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
41139 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
41140 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
41141 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
41142 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
41143 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
41144 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
41145 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
41146 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
41147 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
41148 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
41149 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
41150 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
41151 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
41152 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
41153 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
41154 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
41155 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
41156 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
41157 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
41158 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
41159 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
41160 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
41161 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
41162 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
41163 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
41164 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
41165 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
41166 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
41167 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
41168 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
41169 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
41170 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
41171 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
41172 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
41173 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
41174 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
41175 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
41176 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
41177 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
41178 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
41179 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
41180 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
41181 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
41182 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
41183 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
41184 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
41185 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
41186 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
41187 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
41188 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
41189 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
41190 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
41191 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
41192 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
41193 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
41194 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
41195 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
41196 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
41197 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
41198 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
41199 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
41200 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
41201 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
41202 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
41203 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
41204 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
41205 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
41206 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
41207 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
41208 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
41209 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
41210 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
41211 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
41212 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
41213 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
41214 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
41215 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
41216 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
41217 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
41218 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
41219 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
41220 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
41221 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
41222 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
41223 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
41224 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
41225 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
41226 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
41227 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
41228 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
41229 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
41230 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
41231 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
41232 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
41233 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
41234 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
41235 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
41236 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
41237 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
41238 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
41239 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
41240 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
41241 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
41242 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
41243 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
41244 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
41245 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
41246 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
41247 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
41248 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
41249 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
41250 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
41251 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
41252 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
41253 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
41254 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
41255 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
41256 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
41257 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
41258 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
41259 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
41260 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
41261 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
41262 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
41263 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
41264 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
41265 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
41266 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
41267 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
41268 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
41269 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
41270 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
41271 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
41272 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
41273 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
41274 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
41275 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
41276 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
41277 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
41278 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
41279 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
41280 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
41281 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
41282 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
41283 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
41284 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
41285 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
41286 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
41287 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
41288 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
41290 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
41291 WORDLISTS["italian"] = [
41292 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
41293 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
41294 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
41295 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
41296 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
41297 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
41298 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
41299 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
41300 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
41301 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
41302 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
41303 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
41304 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
41305 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
41306 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
41307 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
41308 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
41309 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
41310 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
41311 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
41312 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
41313 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
41314 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
41315 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
41316 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
41317 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
41318 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
41319 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
41320 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
41321 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
41322 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
41323 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
41324 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
41325 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
41326 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
41327 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
41328 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
41329 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
41330 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
41331 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
41332 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
41333 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
41334 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
41335 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
41336 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
41337 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
41338 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
41339 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
41340 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
41341 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
41342 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
41343 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
41344 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
41345 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
41346 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
41347 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
41348 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
41349 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
41350 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
41351 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
41352 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
41353 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
41354 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
41355 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
41356 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
41357 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
41358 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
41359 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
41360 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
41361 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
41362 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
41363 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
41364 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
41365 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
41366 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
41367 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
41368 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
41369 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
41370 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
41371 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
41372 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
41373 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
41374 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
41375 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
41376 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
41377 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
41378 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
41379 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
41380 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
41381 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
41382 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
41383 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
41384 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
41385 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
41386 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
41387 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
41388 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
41389 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
41390 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
41391 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
41392 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
41393 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
41394 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
41395 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
41396 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
41397 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
41398 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
41399 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
41400 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
41401 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
41402 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
41403 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
41404 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
41405 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
41406 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
41407 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
41408 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
41409 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
41410 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
41411 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
41412 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
41413 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
41414 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
41415 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
41416 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
41417 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
41418 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
41419 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
41420 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
41421 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
41422 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
41423 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
41424 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
41425 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
41426 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
41427 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
41428 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
41429 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
41430 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
41431 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
41432 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
41433 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
41434 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
41435 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
41436 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
41437 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
41438 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
41439 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
41440 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
41441 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
41442 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
41443 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
41444 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
41445 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
41446 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
41447 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
41448 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
41449 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
41450 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
41451 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
41452 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
41453 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
41454 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
41455 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
41456 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
41457 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
41458 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
41459 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
41460 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
41461 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
41462 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
41463 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
41464 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
41465 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
41466 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
41467 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
41468 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
41469 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
41470 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
41471 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
41472 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
41473 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
41474 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
41475 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
41476 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
41477 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
41478 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
41479 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
41480 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
41481 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
41482 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
41483 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
41484 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
41485 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
41486 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
41487 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
41488 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
41489 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
41490 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
41491 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
41492 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
41493 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
41494 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
41495 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
41496 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
41499 * Copyright (c)
2013 Pavol Rusnak
41501 * Permission is hereby granted, free of charge, to any person obtaining a copy of
41502 * this software and associated documentation files (the "Software"), to deal in
41503 * the Software without restriction, including without limitation the rights to
41504 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
41505 * of the Software, and to permit persons to whom the Software is furnished to do
41506 * so, subject to the following conditions:
41508 * The above copyright notice and this permission notice shall be included in all
41509 * copies or substantial portions of the Software.
41511 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
41512 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
41513 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
41514 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41515 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
41516 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
41520 * Javascript port from python by Ian Coleman
41522 * Requires code from sjcl
41523 * https://github.com/bitwiseshiftleft/sjcl
41526 var Mnemonic = function(language) {
41528 var PBKDF2_ROUNDS =
2048;
41534 var hmacSHA512 = function(key) {
41535 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
41536 this.encrypt = function() {
41537 return hasher.encrypt.apply(hasher, arguments);
41542 wordlist = WORDLISTS[language];
41543 if (wordlist.length != RADIX) {
41544 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
41549 self.generate = function(strength) {
41550 strength = strength ||
128;
41551 var r = strength %
32;
41553 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
41555 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
41556 if (!hasStrongCrypto) {
41557 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
41559 var buffer = new Uint8Array(strength /
8);
41560 var data = crypto.getRandomValues(buffer);
41561 return self.toMnemonic(data);
41564 self.toMnemonic = function(byteArray) {
41565 if (byteArray.length %
4 > 0) {
41566 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
41569 //h = hashlib.sha256(data).hexdigest()
41570 var data = byteArrayToWordArray(byteArray);
41571 var hash = sjcl.hash.sha256.hash(data);
41572 var h = sjcl.codec.hex.fromBits(hash);
41574 // b is a binary string, eg '
00111010101100...'
41575 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
41576 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
41578 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
41579 // c = bin(int(h,
16))[
2:].zfill(
256)
41580 // d = c[:len(data) *
8 /
32]
41581 var a = byteArrayToBinaryString(byteArray);
41582 var c = zfill(hexStringToBinaryString(h),
256);
41583 var d = c.substring(
0, byteArray.length *
8 /
32);
41584 // b = line1 + line2
41588 var blen = b.length /
11;
41589 for (var i=
0; i
<blen; i++) {
41590 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
41591 result.push(wordlist[idx]);
41593 return self.joinWords(result);
41596 self.check = function(mnemonic) {
41597 var mnemonic = self.splitWords(mnemonic);
41598 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
41601 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
41603 for (var i=
0; i
<mnemonic.length; i++) {
41604 var word = mnemonic[i];
41605 var wordIndex = wordlist.indexOf(word);
41606 if (wordIndex == -
1) {
41609 var binaryIndex = zfill(wordIndex.toString(
2),
11);
41610 idx.push(binaryIndex);
41612 var b = idx.join('');
41614 //d = b[:l /
33 *
32]
41616 var d = b.substring(
0, l /
33 *
32);
41617 var h = b.substring(l - l /
33, l);
41618 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
41619 var nd = binaryStringToWordArray(d);
41620 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
41621 var ndHash = sjcl.hash.sha256.hash(nd);
41622 var ndHex = sjcl.codec.hex.fromBits(ndHash);
41623 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
41624 var nh = ndBstr.substring(
0,l/
33);
41628 self.toSeed = function(mnemonic, passphrase) {
41629 passphrase = passphrase || '';
41630 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
41631 var mnemonicNormalized = self.normalizeString(mnemonic);
41632 passphrase = self.normalizeString(passphrase)
41633 passphrase =
"mnemonic" + passphrase;
41634 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
41635 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
41636 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
41637 var hashHex = sjcl.codec.hex.fromBits(result);
41641 self.splitWords = function(mnemonic) {
41642 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
41645 self.joinWords = function(words) {
41646 // Set space correctly depending on the language
41647 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
41649 if (language ==
"japanese") {
41650 space =
"\u3000"; // ideographic space
41652 return words.join(space);
41655 self.normalizeString = function(str) {
41656 if (typeof str.normalize ==
"function") {
41657 return str.normalize(
"NFKD");
41660 // TODO decide how to handle this in the future.
41661 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
41666 function byteArrayToWordArray(data) {
41668 for (var i=
0; i
<data.length/
4; i++) {
41670 v += data[i*
4 +
0] <<
8 *
3;
41671 v += data[i*
4 +
1] <<
8 *
2;
41672 v += data[i*
4 +
2] <<
8 *
1;
41673 v += data[i*
4 +
3] <<
8 *
0;
41679 function byteArrayToBinaryString(data) {
41681 for (var i=
0; i
<data.length; i++) {
41682 bin += zfill(data[i].toString(
2),
8);
41687 function hexStringToBinaryString(hexString) {
41689 for (var i=
0; i
<hexString.length; i++) {
41690 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
41692 return binaryString;
41695 function binaryStringToWordArray(binary) {
41696 var aLen = binary.length /
32;
41698 for (var i=
0; i
<aLen; i++) {
41699 var valueStr = binary.substring(
0,
32);
41700 var value = parseInt(valueStr,
2);
41702 binary = binary.slice(
32);
41707 // Pad a numeric string on the left with zero digits until the given width
41709 // Note this differs to the python implementation because it does not
41710 // handle numbers starting with a sign.
41711 function zfill(source, length) {
41712 source = source.toString();
41713 while (source.length < length) {
41714 source = '
0' + source;
41724 JavaScript BigInteger library version
0.9.1
41725 http://silentmatt.com/biginteger/
41727 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
41728 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
41729 Licensed under the MIT license.
41731 Support for arbitrary internal representation base was added by
41736 File: biginteger.js
41742 (function(exports) {
41746 An arbitrarily-large integer.
41748 <BigInteger> objects should be considered immutable. None of the "built-in"
41749 methods modify *this* or their arguments. All properties should be
41750 considered private.
41752 All the methods of
<BigInteger> instances can be called "statically". The
41753 static versions are convenient if you don't already have a
<BigInteger>
41756 As an example, these calls are equivalent.
41758 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
41759 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
41762 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
41765 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
41768 Constructor: BigInteger()
41769 Convert a value to a
<BigInteger>.
41771 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
41772 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
41773 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
41774 without a radix argument.
41776 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
41777 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
41778 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
41779 > var n3 = BigInteger(n2); // Return n2, unchanged
41781 The constructor form only takes an array and a sign. *n* must be an
41782 array of numbers in little-endian order, where each digit is between
0
41783 and BigInteger.base. The second parameter sets the sign: -
1 for
41784 negative, +
1 for positive, or
0 for zero. The array is *not copied and
41785 may be modified*. If the array contains only zeros, the sign parameter
41786 is ignored and is forced to zero.
41788 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
41792 n - Value to convert to a
<BigInteger>.
41796 A
<BigInteger> value.
41800 <parse>,
<BigInteger>
41802 function BigInteger(n, s, token) {
41803 if (token !== CONSTRUCT) {
41804 if (n instanceof BigInteger) {
41807 else if (typeof n === "undefined") {
41810 return BigInteger.parse(n);
41813 n = n || []; // Provide the nullary constructor for subclasses.
41814 while (n.length && !n[n.length -
1]) {
41818 this._s = n.length ? (s ||
1) :
0;
41821 BigInteger._construct = function(n, s) {
41822 return new BigInteger(n, s, CONSTRUCT);
41825 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
41826 // require base to be a power of
10.
10^
7 is the largest such power
41827 // that won't cause a precision loss when digits are multiplied.
41828 var BigInteger_base =
10000000;
41829 var BigInteger_base_log10 =
7;
41831 BigInteger.base = BigInteger_base;
41832 BigInteger.base_log10 = BigInteger_base_log10;
41834 var ZERO = new BigInteger([],
0, CONSTRUCT);
41837 BigInteger.ZERO = ZERO;
41839 var ONE = new BigInteger([
1],
1, CONSTRUCT);
41842 BigInteger.ONE = ONE;
41844 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
41846 //
<BigInteger> -
1.
41847 BigInteger.M_ONE = M_ONE;
41850 // Shortcut for
<ZERO>.
41851 BigInteger._0 = ZERO;
41854 // Shortcut for
<ONE>.
41855 BigInteger._1 = ONE;
41859 Array of
<BigIntegers> from
0 to
36.
41861 These are used internally for parsing, but useful when you need a "small"
41866 <ZERO>,
<ONE>,
<_0>,
<_1>
41868 BigInteger.small = [
41871 /* Assuming BigInteger_base
> 36 */
41872 new BigInteger( [
2],
1, CONSTRUCT),
41873 new BigInteger( [
3],
1, CONSTRUCT),
41874 new BigInteger( [
4],
1, CONSTRUCT),
41875 new BigInteger( [
5],
1, CONSTRUCT),
41876 new BigInteger( [
6],
1, CONSTRUCT),
41877 new BigInteger( [
7],
1, CONSTRUCT),
41878 new BigInteger( [
8],
1, CONSTRUCT),
41879 new BigInteger( [
9],
1, CONSTRUCT),
41880 new BigInteger([
10],
1, CONSTRUCT),
41881 new BigInteger([
11],
1, CONSTRUCT),
41882 new BigInteger([
12],
1, CONSTRUCT),
41883 new BigInteger([
13],
1, CONSTRUCT),
41884 new BigInteger([
14],
1, CONSTRUCT),
41885 new BigInteger([
15],
1, CONSTRUCT),
41886 new BigInteger([
16],
1, CONSTRUCT),
41887 new BigInteger([
17],
1, CONSTRUCT),
41888 new BigInteger([
18],
1, CONSTRUCT),
41889 new BigInteger([
19],
1, CONSTRUCT),
41890 new BigInteger([
20],
1, CONSTRUCT),
41891 new BigInteger([
21],
1, CONSTRUCT),
41892 new BigInteger([
22],
1, CONSTRUCT),
41893 new BigInteger([
23],
1, CONSTRUCT),
41894 new BigInteger([
24],
1, CONSTRUCT),
41895 new BigInteger([
25],
1, CONSTRUCT),
41896 new BigInteger([
26],
1, CONSTRUCT),
41897 new BigInteger([
27],
1, CONSTRUCT),
41898 new BigInteger([
28],
1, CONSTRUCT),
41899 new BigInteger([
29],
1, CONSTRUCT),
41900 new BigInteger([
30],
1, CONSTRUCT),
41901 new BigInteger([
31],
1, CONSTRUCT),
41902 new BigInteger([
32],
1, CONSTRUCT),
41903 new BigInteger([
33],
1, CONSTRUCT),
41904 new BigInteger([
34],
1, CONSTRUCT),
41905 new BigInteger([
35],
1, CONSTRUCT),
41906 new BigInteger([
36],
1, CONSTRUCT)
41909 // Used for parsing/radix conversion
41910 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
41914 Convert a
<BigInteger> to a string.
41916 When *base* is greater than
10, letters are upper case.
41920 base - Optional base to represent the number in (default is base
10).
41921 Must be between
2 and
36 inclusive, or an Error will be thrown.
41925 The string representation of the
<BigInteger>.
41927 BigInteger.prototype.toString = function(base) {
41928 base = +base ||
10;
41929 if (base <
2 || base
> 36) {
41930 throw new Error(
"illegal radix " + base +
".");
41932 if (this._s ===
0) {
41936 var str = this._s <
0 ?
"-" :
"";
41937 str += this._d[this._d.length -
1].toString();
41938 for (var i = this._d.length -
2; i
>=
0; i--) {
41939 var group = this._d[i].toString();
41940 while (group.length < BigInteger_base_log10) group = '
0' + group;
41946 var numerals = BigInteger.digits;
41947 base = BigInteger.small[base];
41948 var sign = this._s;
41950 var n = this.abs();
41954 while (n._s !==
0) {
41955 var divmod = n.divRem(base);
41958 // TODO: This could be changed to unshift instead of reversing at the end.
41959 // Benchmark both to compare speeds.
41960 digits.push(numerals[digit.valueOf()]);
41962 return (sign <
0 ? "-" : "") + digits.reverse().join("");
41966 // Verify strings for parsing
41967 BigInteger.radixRegex = [
42009 Parse a string into a
<BigInteger>.
42011 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
42012 *base* is not provided, it will be guessed based on the leading characters
42015 - "
0x" or "
0X": *base* =
16
42016 - "
0c" or "
0C": *base* =
8
42017 - "
0b" or "
0B": *base* =
2
42018 - else: *base* =
10
42020 If no base is provided, or *base* is
10, the number can be in exponential
42021 form. For example, these are all valid:
42023 > BigInteger.parse("
1e9"); // Same as "
1000000000"
42024 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
42025 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
42027 If any characters fall outside the range defined by the radix, an exception
42032 s - The string to parse.
42033 base - Optional radix (default is to guess based on *s*).
42037 a
<BigInteger> instance.
42039 BigInteger.parse = function(s, base) {
42040 // Expands a number in exponential form to decimal form.
42041 // expandExponential("-
13.441*
10^
5") === "
1344100";
42042 // expandExponential("
1.12300e-1") === "
0.112300";
42043 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
42044 function expandExponential(str) {
42045 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
42047 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
42050 var i = n.length + c;
42051 x = (l ? n : f).length;
42052 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
42053 var z = (new Array(c +
1)).join("
0");
42055 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
42060 if (typeof base === "undefined" || +base ===
10) {
42061 s = expandExponential(s);
42065 if (typeof base === "undefined") {
42066 prefixRE = '
0[xcb]';
42068 else if (base ==
16) {
42071 else if (base ==
8) {
42074 else if (base ==
2) {
42080 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
42082 var sign = parts[
1] || "+";
42083 var baseSection = parts[
2] || "";
42084 var digits = parts[
3] || "";
42086 if (typeof base === "undefined") {
42088 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
42091 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
42094 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
42101 else if (base <
2 || base
> 36) {
42102 throw new Error(
"Illegal radix " + base +
".");
42107 // Check for digits outside the range
42108 if (!(BigInteger.radixRegex[base].test(digits))) {
42109 throw new Error(
"Bad digit for radix " + base);
42112 // Strip leading zeros, and convert to array
42113 digits = digits.replace(/^
0+/,
"").split(
"");
42114 if (digits.length ===
0) {
42118 // Get the sign (we know it's not zero)
42119 sign = (sign ===
"-") ? -
1 :
1;
42124 while (digits.length
>= BigInteger_base_log10) {
42125 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
42127 d.push(parseInt(digits.join(''),
10));
42128 return new BigInteger(d, sign, CONSTRUCT);
42131 // Do the conversion
42133 base = BigInteger.small[base];
42134 var small = BigInteger.small;
42135 for (var i =
0; i < digits.length; i++) {
42136 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
42138 return new BigInteger(d._d, sign, CONSTRUCT);
42141 throw new Error("Invalid BigInteger format: " + s);
42147 Add two
<BigIntegers>.
42151 n - The number to add to *this*. Will be converted to a
<BigInteger>.
42155 The numbers added together.
42159 <subtract>,
<multiply>,
<quotient>,
<next>
42161 BigInteger.prototype.add = function(n) {
42162 if (this._s ===
0) {
42163 return BigInteger(n);
42170 if (this._s !== n._s) {
42172 return this.subtract(n);
42179 var sum = new Array(Math.max(al, bl) +
1);
42180 var size = Math.min(al, bl);
42184 for (var i =
0; i < size; i++) {
42185 digit = a[i] + b[i] + carry;
42186 sum[i] = digit % BigInteger_base;
42187 carry = (digit / BigInteger_base) |
0;
42193 for (i = size; carry && i < al; i++) {
42194 digit = a[i] + carry;
42195 sum[i] = digit % BigInteger_base;
42196 carry = (digit / BigInteger_base) |
0;
42202 for ( ; i < al; i++) {
42206 return new BigInteger(sum, this._s, CONSTRUCT);
42211 Get the additive inverse of a
<BigInteger>.
42215 A
<BigInteger> with the same magnatude, but with the opposite sign.
42221 BigInteger.prototype.negate = function() {
42222 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
42227 Get the absolute value of a
<BigInteger>.
42231 A
<BigInteger> with the same magnatude, but always positive (or zero).
42237 BigInteger.prototype.abs = function() {
42238 return (this._s <
0) ? this.negate() : this;
42243 Subtract two
<BigIntegers>.
42247 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
42251 The *n* subtracted from *this*.
42255 <add>,
<multiply>,
<quotient>,
<prev>
42257 BigInteger.prototype.subtract = function(n) {
42258 if (this._s ===
0) {
42259 return BigInteger(n).negate();
42266 if (this._s !== n._s) {
42268 return this.add(n);
42272 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
42274 m = new BigInteger(n._d,
1, CONSTRUCT);
42275 n = new BigInteger(this._d,
1, CONSTRUCT);
42278 // Both are positive =
> a - b
42279 var sign = m.compareAbs(n);
42283 else if (sign <
0) {
42295 var diff = new Array(al); // al
>= bl since a
> b
42300 for (i =
0; i < bl; i++) {
42301 digit = a[i] - borrow - b[i];
42303 digit += BigInteger_base;
42311 for (i = bl; i < al; i++) {
42312 digit = a[i] - borrow;
42314 digit += BigInteger_base;
42322 for ( ; i < al; i++) {
42326 return new BigInteger(diff, sign, CONSTRUCT);
42330 function addOne(n, sign) {
42332 var sum = a.slice();
42337 var digit = (a[i] ||
0) +
1;
42338 sum[i] = digit % BigInteger_base;
42339 if (digit <= BigInteger_base -
1) {
42345 return new BigInteger(sum, sign, CONSTRUCT);
42348 function subtractOne(n, sign) {
42350 var sum = a.slice();
42355 var digit = (a[i] ||
0) -
1;
42357 sum[i] = digit + BigInteger_base;
42366 return new BigInteger(sum, sign, CONSTRUCT);
42371 Get the next
<BigInteger> (add one).
42381 BigInteger.prototype.next = function() {
42386 return subtractOne(this, -
1);
42389 return addOne(this,
1);
42395 Get the previous
<BigInteger> (subtract one).
42405 BigInteger.prototype.prev = function() {
42410 return addOne(this, -
1);
42413 return subtractOne(this,
1);
42419 Function: compareAbs
42420 Compare the absolute value of two
<BigIntegers>.
42422 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
42426 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
42430 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
42436 BigInteger.prototype.compareAbs = function(n) {
42441 if (!(n instanceof BigInteger)) {
42442 if (!isFinite(n)) {
42443 return(isNaN(n) ? n : -
1);
42448 if (this._s ===
0) {
42449 return (n._s !==
0) ? -
1 :
0;
42455 var l = this._d.length;
42456 var nl = n._d.length;
42466 for (var i = l-
1; i
>=
0; i--) {
42467 if (a[i] !== b[i]) {
42468 return a[i] < b[i] ? -
1 :
1;
42477 Compare two
<BigIntegers>.
42481 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
42485 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
42489 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
42491 BigInteger.prototype.compare = function(n) {
42498 if (this._s ===
0) {
42502 if (this._s === n._s) { // both positive or both negative
42503 var cmp = this.compareAbs(n);
42504 return cmp * this._s;
42513 Return true iff *this* is either
1 or -
1.
42517 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
42521 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
42522 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
42524 BigInteger.prototype.isUnit = function() {
42525 return this === ONE ||
42527 (this._d.length ===
1 && this._d[
0] ===
1);
42532 Multiply two
<BigIntegers>.
42536 n - The number to multiply *this* by. Will be converted to a
42541 The numbers multiplied together.
42545 <add>,
<subtract>,
<quotient>,
<square>
42547 BigInteger.prototype.multiply = function(n) {
42548 // TODO: Consider adding Karatsuba multiplication for large numbers
42549 if (this._s ===
0) {
42557 if (this.isUnit()) {
42565 return this.negate();
42570 return this.square();
42573 var r = (this._d.length
>= n._d.length);
42574 var a = (r ? this : n)._d; // a will be longer than b
42575 var b = (r ? n : this)._d;
42580 var partial = new Array(pl);
42582 for (i =
0; i < pl; i++) {
42586 for (i =
0; i < bl; i++) {
42589 var jlimit = al + i;
42591 for (var j = i; j < jlimit; j++) {
42592 digit = partial[j] + bi * a[j - i] + carry;
42593 carry = (digit / BigInteger_base) |
0;
42594 partial[j] = (digit % BigInteger_base) |
0;
42597 digit = partial[j] + carry;
42598 carry = (digit / BigInteger_base) |
0;
42599 partial[j] = digit % BigInteger_base;
42602 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
42605 // Multiply a BigInteger by a single-digit native number
42606 // Assumes that this and n are
>=
0
42607 // This is not really intended to be used outside the library itself
42608 BigInteger.prototype.multiplySingleDigit = function(n) {
42609 if (n ===
0 || this._s ===
0) {
42617 if (this._d.length ===
1) {
42618 digit = this._d[
0] * n;
42619 if (digit
>= BigInteger_base) {
42620 return new BigInteger([(digit % BigInteger_base)|
0,
42621 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
42623 return new BigInteger([digit],
1, CONSTRUCT);
42627 return this.add(this);
42629 if (this.isUnit()) {
42630 return new BigInteger([n],
1, CONSTRUCT);
42637 var partial = new Array(pl);
42638 for (var i =
0; i < pl; i++) {
42643 for (var j =
0; j < al; j++) {
42644 digit = n * a[j] + carry;
42645 carry = (digit / BigInteger_base) |
0;
42646 partial[j] = (digit % BigInteger_base) |
0;
42649 partial[j] = carry;
42652 return new BigInteger(partial,
1, CONSTRUCT);
42657 Multiply a
<BigInteger> by itself.
42659 This is slightly faster than regular multiplication, since it removes the
42660 duplicated multiplcations.
42664 > this.multiply(this)
42669 BigInteger.prototype.square = function() {
42670 // Normally, squaring a
10-digit number would take
100 multiplications.
42671 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
42672 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
42673 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
42675 if (this._s ===
0) {
42678 if (this.isUnit()) {
42682 var digits = this._d;
42683 var length = digits.length;
42684 var imult1 = new Array(length + length +
1);
42685 var product, carry, k;
42688 // Calculate diagonal
42689 for (i =
0; i < length; i++) {
42691 product = digits[i] * digits[i];
42692 carry = (product / BigInteger_base) |
0;
42693 imult1[k] = product % BigInteger_base;
42694 imult1[k +
1] = carry;
42697 // Calculate repeating part
42698 for (i =
0; i < length; i++) {
42701 for (var j = i +
1; j < length; j++, k++) {
42702 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
42703 carry = (product / BigInteger_base) |
0;
42704 imult1[k] = product % BigInteger_base;
42707 var digit = carry + imult1[k];
42708 carry = (digit / BigInteger_base) |
0;
42709 imult1[k] = digit % BigInteger_base;
42710 imult1[k +
1] += carry;
42713 return new BigInteger(imult1,
1, CONSTRUCT);
42718 Divide two
<BigIntegers> and truncate towards zero.
42720 <quotient> throws an exception if *n* is zero.
42724 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
42728 The *this* / *n*, truncated to an integer.
42732 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
42734 BigInteger.prototype.quotient = function(n) {
42735 return this.divRem(n)[
0];
42740 Deprecated synonym for
<quotient>.
42742 BigInteger.prototype.divide = BigInteger.prototype.quotient;
42745 Function: remainder
42746 Calculate the remainder of two
<BigIntegers>.
42748 <remainder> throws an exception if *n* is zero.
42752 n - The remainder after *this* is divided *this* by *n*. Will be
42753 converted to a
<BigInteger>.
42761 <divRem>,
<quotient>
42763 BigInteger.prototype.remainder = function(n) {
42764 return this.divRem(n)[
1];
42769 Calculate the integer quotient and remainder of two
<BigIntegers>.
42771 <divRem> throws an exception if *n* is zero.
42775 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
42779 A two-element array containing the quotient and the remainder.
42783 is exactly equivalent to
42785 > [a.quotient(b), a.remainder(b)]
42787 except it is faster, because they are calculated at the same time.
42791 <quotient>,
<remainder>
42793 BigInteger.prototype.divRem = function(n) {
42796 throw new Error("Divide by zero");
42798 if (this._s ===
0) {
42799 return [ZERO, ZERO];
42801 if (n._d.length ===
1) {
42802 return this.divRemSmall(n._s * n._d[
0]);
42805 // Test for easy cases -- |n1| <= |n2|
42806 switch (this.compareAbs(n)) {
42807 case
0: // n1 == n2
42808 return [this._s === n._s ? ONE : M_ONE, ZERO];
42809 case -
1: // |n1| < |n2|
42810 return [ZERO, this];
42813 var sign = this._s * n._s;
42815 var b_digits = this._d;
42816 var b_index = b_digits.length;
42817 var digits = n._d.length;
42821 var part = new BigInteger([],
0, CONSTRUCT);
42824 part._d.unshift(b_digits[--b_index]);
42825 part = new BigInteger(part._d,
1, CONSTRUCT);
42827 if (part.compareAbs(n) <
0) {
42831 if (part._s ===
0) {
42835 var xlen = part._d.length, ylen = a._d.length;
42836 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
42837 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
42838 if (part._d.length
> a._d.length) {
42839 // The length of part._d can either match a._d length,
42840 // or exceed it by one.
42841 highx = (highx+
1)*BigInteger_base;
42843 guess = Math.ceil(highx/highy);
42846 var check = a.multiplySingleDigit(guess);
42847 if (check.compareAbs(part) <=
0) {
42857 var diff = part.subtract(check);
42858 part._d = diff._d.slice();
42861 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
42862 new BigInteger(part._d, this._s, CONSTRUCT)];
42865 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
42866 // [
1, BigInteger.base). It's not necessary to call this, since the
42867 // other division functions will call it if they are able to.
42868 BigInteger.prototype.divRemSmall = function(n) {
42872 throw new Error("Divide by zero");
42875 var n_s = n <
0 ? -
1 :
1;
42876 var sign = this._s * n_s;
42879 if (n <
1 || n
>= BigInteger_base) {
42880 throw new Error("Argument out of range");
42883 if (this._s ===
0) {
42884 return [ZERO, ZERO];
42887 if (n ===
1 || n === -
1) {
42888 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
42891 //
2 <= n < BigInteger_base
42893 // divide a single digit by a single digit
42894 if (this._d.length ===
1) {
42895 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
42896 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
42906 var digits = this._d.slice();
42907 var quot = new Array(digits.length);
42913 while (digits.length) {
42914 part = part * BigInteger_base + digits[digits.length -
1];
42918 diff = BigInteger_base * diff + part;
42925 guess = (part / n) |
0;
42928 var check = n * guess;
42929 diff = part - check;
42940 r = new BigInteger([diff],
1, CONSTRUCT);
42944 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
42949 Return true iff *this* is divisible by two.
42951 Note that
<BigInteger.ZERO
> is even.
42955 true if *this* is even, false otherwise.
42961 BigInteger.prototype.isEven = function() {
42962 var digits = this._d;
42963 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
42968 Return true iff *this* is not divisible by two.
42972 true if *this* is odd, false otherwise.
42978 BigInteger.prototype.isOdd = function() {
42979 return !this.isEven();
42984 Get the sign of a
<BigInteger>.
42994 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
42996 BigInteger.prototype.sign = function() {
43001 Function: isPositive
43002 Return true iff *this*
> 0.
43006 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
43010 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
43012 BigInteger.prototype.isPositive = function() {
43013 return this._s
> 0;
43017 Function: isNegative
43018 Return true iff *this* <
0.
43022 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
43026 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
43028 BigInteger.prototype.isNegative = function() {
43029 return this._s <
0;
43034 Return true iff *this* ==
0.
43038 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
43042 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
43044 BigInteger.prototype.isZero = function() {
43045 return this._s ===
0;
43050 Multiply a
<BigInteger> by a power of
10.
43052 This is equivalent to, but faster than
43055 > return this.multiply(BigInteger("
1e" + n));
43058 > return this.quotient(BigInteger("
1e" + -n));
43063 n - The power of
10 to multiply *this* by. *n* is converted to a
43064 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
43065 (
0x7FFFFFFF), or an exception will be thrown.
43069 *this* * (
10 ** *n*), truncated to an integer if necessary.
43075 BigInteger.prototype.exp10 = function(n) {
43080 if (Math.abs(n)
> Number(MAX_EXP)) {
43081 throw new Error("exponent too large in BigInteger.exp10");
43083 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
43084 if (this._s ===
0) {
43088 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
43090 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
43096 k = k.multiplySingleDigit(Math.pow(
10, n));
43097 return (this._s <
0 ? k.negate() : k);
43098 } else if (-n
>= this._d.length*BigInteger_base_log10) {
43101 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
43103 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
43106 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
43112 Raise a
<BigInteger> to a power.
43114 In this implementation,
0**
0 is
1.
43118 n - The exponent to raise *this* by. *n* must be no greater than
43119 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
43123 *this* raised to the *nth* power.
43129 BigInteger.prototype.pow = function(n) {
43130 if (this.isUnit()) {
43135 return BigInteger(n).isOdd() ? this : this.negate();
43143 else if (n._s <
0) {
43144 if (this._s ===
0) {
43145 throw new Error(
"Divide by zero");
43151 if (this._s ===
0) {
43158 if (n.compareAbs(MAX_EXP)
> 0) {
43159 throw new Error(
"exponent too large in BigInteger.pow");
43163 var two = BigInteger.small[
2];
43165 while (n.isPositive()) {
43167 aux = aux.multiply(x);
43173 n = n.quotient(two);
43181 Raise a
<BigInteger> to a power (mod m).
43183 Because it is reduced by a modulus,
<modPow> is not limited by
43184 <BigInteger.MAX_EXP
> like
<pow>.
43188 exponent - The exponent to raise *this* by. Must be positive.
43189 modulus - The modulus.
43193 *this* ^ *exponent* (mod *modulus*).
43199 BigInteger.prototype.modPow = function(exponent, modulus) {
43203 while (exponent.isPositive()) {
43204 if (exponent.isOdd()) {
43205 result = result.multiply(base).remainder(modulus);
43208 exponent = exponent.quotient(BigInteger.small[
2]);
43209 if (exponent.isPositive()) {
43210 base = base.square().remainder(modulus);
43219 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
43221 This is equivalent to
43223 > Math.log(this.toJSValue())
43225 but handles values outside of the native number range.
43235 BigInteger.prototype.log = function() {
43237 case
0: return -Infinity;
43238 case -
1: return NaN;
43239 default: // Fall through.
43242 var l = this._d.length;
43244 if (l*BigInteger_base_log10 <
30) {
43245 return Math.log(this.valueOf());
43248 var N = Math.ceil(
30/BigInteger_base_log10);
43249 var firstNdigits = this._d.slice(l - N);
43250 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
43255 Convert a
<BigInteger> to a native JavaScript integer.
43257 This is called automatically by JavaScipt to convert a
<BigInteger> to a
43262 > parseInt(this.toString(),
10)
43266 <toString>,
<toJSValue>
43268 BigInteger.prototype.valueOf = function() {
43269 return parseInt(this.toString(),
10);
43273 Function: toJSValue
43274 Convert a
<BigInteger> to a native JavaScript integer.
43276 This is the same as valueOf, but more explicitly named.
43280 > parseInt(this.toString(),
10)
43284 <toString>,
<valueOf>
43286 BigInteger.prototype.toJSValue = function() {
43287 return parseInt(this.toString(),
10);
43290 var MAX_EXP = BigInteger(
0x7FFFFFFF);
43291 // Constant: MAX_EXP
43292 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
43293 BigInteger.MAX_EXP = MAX_EXP;
43296 function makeUnary(fn) {
43297 return function(a) {
43298 return fn.call(BigInteger(a));
43302 function makeBinary(fn) {
43303 return function(a, b) {
43304 return fn.call(BigInteger(a), BigInteger(b));
43308 function makeTrinary(fn) {
43309 return function(a, b, c) {
43310 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
43316 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
43317 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
43318 var trinary = ["modPow"];
43320 for (i =
0; i < unary.length; i++) {
43322 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
43325 for (i =
0; i < binary.length; i++) {
43327 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
43330 for (i =
0; i < trinary.length; i++) {
43332 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
43335 BigInteger.exp10 = function(x, n) {
43336 return BigInteger(x).exp10(n);
43341 exports.BigInteger = BigInteger;
43342 })(typeof exports !== 'undefined' ? exports : this);
43344 <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){
43345 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;
43347 },{}],
2:[function(require,module,exports){
43348 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;
43350 },{"./scoring":
6}],
3:[function(require,module,exports){
43351 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(","),
43352 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(","),
43353 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(","),
43354 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(","),
43355 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;
43357 },{}],
4:[function(require,module,exports){
43358 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;
43360 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
43361 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;
43363 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
43364 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;
43366 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
43367 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;
43371 //# sourceMappingURL=zxcvbn.js.map
43374 * Detects entropy from a string.
43381 * hexadecimal [
0-
9A-F]
43382 * card [A2-
9TJQK][CDHS]
43384 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
43385 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
43389 window.Entropy = new (function() {
43391 var TWO = new BigInteger(
2);
43393 // matchers returns an array of the matched events for each type of entropy.
43395 // matchers.binary("
010") returns ["
0", "
1", "
0"]
43396 // matchers.binary("a10") returns ["
1", "
0"]
43397 // matchers.hex("a10") returns ["a", "
1", "
0"]
43399 binary: function(str) {
43400 return str.match(/[
0-
1]/gi) || [];
43402 base6: function(str) {
43403 return str.match(/[
0-
5]/gi) || [];
43405 dice: function(str) {
43406 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
43408 base10: function(str) {
43409 return str.match(/[
0-
9]/gi) || [];
43411 hex: function(str) {
43412 return str.match(/[
0-
9A-F]/gi) || [];
43414 card: function(str) {
43415 // Format is NumberSuit, eg
43416 // AH ace of hearts
43417 //
8C eight of clubs
43418 // TD ten of diamonds
43419 // JS jack of spades
43420 // QH queen of hearts
43421 // KC king of clubs
43422 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
43426 // Convert array of cards from ["ac", "
4d", "ks"]
43427 // to numbers between
0 and
51 [
0,
16,
51]
43428 function convertCardsToInts(cards) {
43430 var values = "a23456789tjqk";
43431 var suits = "cdhs";
43432 for (var i=
0; i
<cards.length; i++) {
43433 var card = cards[i].toLowerCase();
43434 var value = card[
0];
43435 var suit = card[
1];
43436 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
43442 this.fromString = function(rawEntropyStr) {
43443 // Find type of entropy being used (binary, hex, dice etc)
43444 var base = getBase(rawEntropyStr);
43445 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
43446 // This is done by changing all
6s to
0s
43447 if (base.str ==
"dice") {
43450 for (var i=
0; i
<base.parts.length; i++) {
43451 var c = base.parts[i];
43452 if (
"12345".indexOf(c)
> -
1) {
43453 newParts[i] = base.parts[i];
43454 newInts[i] = base.ints[i];
43461 base.str = "base
6 (dice)";
43462 base.ints = newInts;
43463 base.parts = newParts;
43464 base.matcher = matchers.base6;
43466 // Detect empty entropy
43467 if (base.parts.length ==
0) {
43475 // Convert base.ints to BigInteger.
43476 // Due to using unusual bases, eg cards of base52, this is not as simple as
43477 // using BigInteger.parse()
43478 var entropyInt = BigInteger.ZERO;
43479 for (var i=base.ints.length-
1; i
>=
0; i--) {
43480 var thisInt = BigInteger.parse(base.ints[i]);
43481 var power = (base.ints.length -
1) - i;
43482 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
43483 entropyInt = entropyInt.add(additionalEntropy);
43485 // Convert entropy to binary
43486 var entropyBin = entropyInt.toString(
2);
43487 // If the first integer is small, it must be padded with zeros.
43488 // Otherwise the chance of the first bit being
1 is
100%, which is
43489 // obviously incorrect.
43490 // This is not perfect for non-
2^n bases.
43491 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
43492 while (entropyBin.length < expectedBits) {
43493 entropyBin = "
0" + entropyBin;
43495 // Calculate the number of bits per event
43496 var bitsPerEvent = Math.log2(base.asInt);
43497 // Cards binary must be handled differently, since they're not replaced
43498 if (base.asInt ==
52) {
43499 var cardEntropy = processCardEntropy(base.parts);
43500 entropyBin = cardEntropy.binaryStr;
43501 bitsPerEvent = cardEntropy.bitsPerEvent;
43503 // Supply a 'filtered' entropy string for display purposes
43504 var entropyClean = base.parts.join("");
43505 var entropyHtml = base.parts.join("");
43506 if (base.asInt ==
52) {
43507 entropyClean = base.parts.join(" ").toUpperCase();
43508 entropyClean = entropyClean.replace(/C/g, "\u2663");
43509 entropyClean = entropyClean.replace(/D/g, "\u2666");
43510 entropyClean = entropyClean.replace(/H/g, "\u2665");
43511 entropyClean = entropyClean.replace(/S/g, "\u2660");
43512 entropyHtml = base.parts.join(" ").toUpperCase();
43513 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
43514 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
43515 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
43516 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
43518 // Return the result
43520 binaryStr: entropyBin,
43521 cleanStr: entropyClean,
43522 cleanHtml: entropyHtml,
43523 bitsPerEvent: bitsPerEvent,
43529 function getSortedDeck() {
43531 var suits = "CDHS
";
43532 var values = "A23456789TJQK
";
43533 for (var i=0; i<suits.length; i++) {
43534 for (var j=0; j<values.length; j++) {
43535 s.push(values[j]+suits[i]);
43541 function getBase(str) {
43542 // Need to get the lowest base for the supplied entropy.
43543 // This prevents interpreting, say, dice rolls as hexadecimal.
43544 var binaryMatches = matchers.binary(str);
43545 var hexMatches = matchers.hex(str);
43546 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
43547 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
43548 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
43551 parts: binaryMatches,
43552 matcher: matchers.binary,
43557 var cardMatches = matchers.card(str);
43558 if (cardMatches.length >= hexMatches.length / 2) {
43559 var ints = convertCardsToInts(cardMatches);
43562 parts: cardMatches,
43563 matcher: matchers.card,
43568 var diceMatches = matchers.dice(str);
43569 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
43570 var ints = diceMatches.map(function(i) { return parseInt(i) });
43573 parts: diceMatches,
43574 matcher: matchers.dice,
43579 var base6Matches = matchers.base6(str);
43580 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
43581 var ints = base6Matches.map(function(i) { return parseInt(i) });
43584 parts: base6Matches,
43585 matcher: matchers.base6,
43590 var base10Matches = matchers.base10(str);
43591 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
43592 var ints = base10Matches.map(function(i) { return parseInt(i) });
43595 parts: base10Matches,
43596 matcher: matchers.base10,
43601 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
43605 matcher: matchers.hex,
43607 str:
"hexadecimal",
43611 // Assume cards are NOT replaced.
43612 // Additional entropy decreases as more cards are used. This means
43613 // total possible entropy is measured using n!, not base^n.
43614 // eg the second last card can be only one of two, not one of fifty two
43615 // so the added entropy for that card is only one bit at most
43616 function processCardEntropy(cards) {
43617 // Track how many instances of each card have been used, and thus
43618 // how many decks are in use.
43619 var cardCounts = {};
43620 var numberOfDecks =
0;
43621 // Work out number of decks by max(duplicates)
43622 for (var i=
0; i
<cards.length; i++) {
43623 // Get the card that was drawn
43624 var cardLower = cards[i];
43625 var card = cardLower.toUpperCase();
43626 // Initialize the count for this card if needed
43627 if (!(card in cardCounts)) {
43628 cardCounts[card] =
0;
43630 cardCounts[card] +=
1;
43631 // See if this is max(duplicates)
43632 if (cardCounts[card]
> numberOfDecks) {
43633 numberOfDecks = cardCounts[card];
43636 // Work out the total number of bits for this many decks
43637 // See http://crypto.stackexchange.com/q/
41886
43638 var gainedBits =
0;
43639 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
43640 // which becomes infinity for numberOfDecks
> 4
43641 for (var i=
1; i<=
52*numberOfDecks; i++) {
43642 gainedBits = gainedBits + Math.log2(i);
43644 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
43645 var maxBits = gainedBits - lostBits;
43646 // Convert the drawn cards to a binary representation.
43647 // The exact technique for doing this is unclear.
43649 // http://crypto.stackexchange.com/a/
41896
43650 //
"I even doubt that this is well defined (only the average entropy
43651 // is, I believe)."
43653 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
43654 //
"The binary representation can be the first log(permutations,2) bits
43655 // of the sha-2 hash of the normalized deck string."
43657 // In this specific implementation, the first N bits of the hash of the
43658 // normalized cards string is being used. Uppercase, no spaces; eg
43659 // sha256(
"AH8DQSTC2H")
43660 var totalCards = numberOfDecks *
52;
43661 var percentUsed = cards.length / totalCards;
43662 // Calculate the average number of bits of entropy for the number of
43664 var numberOfBits = Math.floor(maxBits * percentUsed);
43665 // Create a normalized string of the selected cards
43666 var normalizedCards = cards.join(
"").toUpperCase();
43667 // Convert to binary using the SHA256 hash of the normalized cards.
43668 // If the number of bits is more than
256, multiple hashes
43669 // are used until the required number of bits is reached.
43670 var entropyBin =
"";
43671 var iterations =
0;
43672 while (entropyBin.length < numberOfBits) {
43673 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
43674 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
43675 for (var i=
0; i
<hashHex.length; i++) {
43676 var decimal = parseInt(hashHex[i],
16);
43677 var binary = decimal.toString(
2);
43678 while (binary.length <
4) {
43679 binary =
"0" + binary;
43681 entropyBin = entropyBin + binary;
43683 iterations = iterations +
1;
43685 // Truncate to the appropriate number of bits.
43686 entropyBin = entropyBin.substring(
0, numberOfBits);
43687 // Get the number of bits per event
43688 bitsPerEvent = maxBits / totalCards;
43690 binaryStr: entropyBin,
43691 bitsPerEvent: bitsPerEvent,
43695 // Polyfill for Math.log2
43696 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
43697 Math.log2 = Math.log2 || function(x) {
43698 // The polyfill isn't good enough because of the poor accuracy of
43700 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
43701 // So instead use the BigInteger library to get it right.
43702 return BigInteger.log(x) / BigInteger.log(
2);
43705 // Depends on BigInteger
43706 function factorial(n) {
43710 f = BigInteger.ONE;
43711 for (var i=
1; i<=n; i++) {
43712 f = f.multiply(new BigInteger(i));
43719 <script>(function() {
43721 // mnemonics is populated as required by getLanguage
43722 var mnemonics = { "english": new Mnemonic("english") };
43723 var mnemonic = mnemonics["english"];
43725 var bip32RootKey = null;
43726 var bip32ExtendedKey = null;
43727 var network = bitcoin.networks.bitcoin;
43728 var addressRowTemplate = $("#address-row-template");
43730 var showIndex = true;
43731 var showAddress = true;
43732 var showPubKey = true;
43733 var showPrivKey = true;
43734 var showQr = false;
43736 var entropyChangeTimeoutEvent = null;
43737 var phraseChangeTimeoutEvent = null;
43738 var rootKeyChangedTimeoutEvent = null;
43740 var generationProcesses = [];
43743 DOM.network = $(".network");
43744 DOM.bip32Client = $("#bip32-client");
43745 DOM.phraseNetwork = $("#network-phrase");
43746 DOM.useEntropy = $(".use-entropy");
43747 DOM.entropyContainer = $(".entropy-container");
43748 DOM.entropy = $(".entropy");
43749 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
43750 DOM.entropyType = DOM.entropyContainer.find(".type");
43751 DOM.entropyStrength = DOM.entropyContainer.find(".strength");
43752 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
43753 DOM.entropyBits = DOM.entropyContainer.find(".bits");
43754 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
43755 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
43756 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
43757 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
43758 DOM.phrase = $(".phrase");
43759 DOM.passphrase = $(".passphrase");
43760 DOM.generateContainer = $(".generate-container");
43761 DOM.generate = $(".generate");
43762 DOM.seed = $(".seed");
43763 DOM.rootKey = $(".root-key");
43764 DOM.extendedPrivKey = $(".extended-priv-key");
43765 DOM.extendedPubKey = $(".extended-pub-key");
43766 DOM.bip32tab = $("#bip32-tab");
43767 DOM.bip44tab = $("#bip44-tab");
43768 DOM.bip32panel = $("#bip32");
43769 DOM.bip44panel = $("#bip44");
43770 DOM.bip32path = $("#bip32-path");
43771 DOM.bip44path = $("#bip44-path");
43772 DOM.bip44purpose = $("#bip44 .purpose");
43773 DOM.bip44coin = $("#bip44 .coin");
43774 DOM.bip44account = $("#bip44 .account");
43775 DOM.bip44accountXprv = $("#bip44 .account-xprv");
43776 DOM.bip44accountXpub = $("#bip44 .account-xpub");
43777 DOM.bip44change = $("#bip44 .change");
43778 DOM.generatedStrength = $(".generate-container .strength");
43779 DOM.hardenedAddresses = $(".hardened-addresses");
43780 DOM.addresses = $(".addresses");
43781 DOM.rowsToAdd = $(".rows-to-add");
43782 DOM.more = $(".more");
43783 DOM.feedback = $(".feedback");
43784 DOM.tab = $(".derivation-type a");
43785 DOM.indexToggle = $(".index-toggle");
43786 DOM.addressToggle = $(".address-toggle");
43787 DOM.publicKeyToggle = $(".public-key-toggle");
43788 DOM.privateKeyToggle = $(".private-key-toggle");
43789 DOM.languages = $(".languages a");
43790 DOM.qrContainer = $(".qr-container");
43791 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
43792 DOM.qrImage = DOM.qrContainer.find(".qr-image");
43793 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
43794 DOM.showQrEls = $("[data-show-qr]");
43798 DOM.network.on("change", networkChanged);
43799 DOM.bip32Client.on("change", bip32ClientChanged);
43800 DOM.useEntropy.on("change", setEntropyVisibility);
43801 DOM.entropy.on("input", delayedEntropyChanged);
43802 DOM.entropyMnemonicLength.on("change", entropyChanged);
43803 DOM.phrase.on("input", delayedPhraseChanged);
43804 DOM.passphrase.on("input", delayedPhraseChanged);
43805 DOM.generate.on("click", generateClicked);
43806 DOM.more.on("click", showMore);
43807 DOM.rootKey.on("input", delayedRootKeyChanged);
43808 DOM.bip32path.on("input", calcForDerivationPath);
43809 DOM.bip44purpose.on("input", calcForDerivationPath);
43810 DOM.bip44coin.on("input", calcForDerivationPath);
43811 DOM.bip44account.on("input", calcForDerivationPath);
43812 DOM.bip44change.on("input", calcForDerivationPath);
43813 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
43814 DOM.hardenedAddresses.on("change", calcForDerivationPath);
43815 DOM.indexToggle.on("click", toggleIndexes);
43816 DOM.addressToggle.on("click", toggleAddresses);
43817 DOM.publicKeyToggle.on("click", togglePublicKeys);
43818 DOM.privateKeyToggle.on("click", togglePrivateKeys);
43819 DOM.languages.on("click", languageChanged);
43820 setQrEvents(DOM.showQrEls);
43823 hideValidationError();
43824 populateNetworkSelect();
43825 populateClientSelect();
43830 function networkChanged(e) {
43831 var networkIndex = e.target.value;
43832 networks[networkIndex].onSelect();
43833 if (seed != null) {
43841 function bip32ClientChanged(e) {
43842 var clientIndex = DOM.bip32Client.val();
43843 if (clientIndex == "custom") {
43844 DOM.bip32path.prop("readonly", false);
43847 DOM.bip32path.prop("readonly", true);
43848 clients[clientIndex].onSelect();
43849 if (seed != null) {
43858 function setEntropyVisibility() {
43859 if (isUsingOwnEntropy()) {
43860 DOM.entropyContainer.removeClass("hidden");
43861 DOM.generateContainer.addClass("hidden");
43862 DOM.phrase.prop("readonly", true);
43863 DOM.entropy.focus();
43867 DOM.entropyContainer.addClass("hidden");
43868 DOM.generateContainer.removeClass("hidden");
43869 DOM.phrase.prop("readonly", false);
43874 function delayedPhraseChanged() {
43875 hideValidationError();
43877 if (phraseChangeTimeoutEvent != null) {
43878 clearTimeout(phraseChangeTimeoutEvent);
43880 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
43883 function phraseChanged() {
43885 hideValidationError();
43886 setMnemonicLanguage();
43887 // Get the mnemonic phrase
43888 var phrase = DOM.phrase.val();
43889 var errorText = findPhraseErrors(phrase);
43891 showValidationError(errorText);
43894 // Calculate and display
43895 var passphrase = DOM.passphrase.val();
43896 calcBip32RootKeyFromSeed(phrase, passphrase);
43897 calcForDerivationPath();
43901 function delayedEntropyChanged() {
43902 hideValidationError();
43904 if (entropyChangeTimeoutEvent != null) {
43905 clearTimeout(entropyChangeTimeoutEvent);
43907 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
43910 function entropyChanged() {
43911 // If blank entropy, clear mnemonic, addresses, errors
43912 if (DOM.entropy.val().trim().length ==
0) {
43914 clearEntropyFeedback();
43915 DOM.phrase.val("");
43916 showValidationError("Blank entropy");
43919 // Get the current phrase to detect changes
43920 var phrase = DOM.phrase.val();
43921 // Set the phrase from the entropy
43922 setMnemonicFromEntropy();
43923 // Recalc addresses if the phrase has changed
43924 var newPhrase = DOM.phrase.val();
43925 if (newPhrase != phrase) {
43926 if (newPhrase.length ==
0) {
43938 function delayedRootKeyChanged() {
43939 // Warn if there is an existing mnemonic or passphrase.
43940 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
43941 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
43942 DOM.rootKey.val(bip32RootKey);
43946 hideValidationError();
43948 // Clear existing mnemonic and passphrase
43949 DOM.phrase.val(
"");
43950 DOM.passphrase.val(
"");
43952 if (rootKeyChangedTimeoutEvent != null) {
43953 clearTimeout(rootKeyChangedTimeoutEvent);
43955 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
43958 function rootKeyChanged() {
43960 hideValidationError();
43961 // Validate the root key TODO
43962 var rootKeyBase58 = DOM.rootKey.val();
43963 var errorText = validateRootKey(rootKeyBase58);
43965 showValidationError(errorText);
43968 // Calculate and display
43969 calcBip32RootKeyFromBase58(rootKeyBase58);
43970 calcForDerivationPath();
43973 function calcForDerivationPath() {
43975 clearAddressesList();
43976 hideValidationError();
43977 // Get the derivation path
43978 var derivationPath = getDerivationPath();
43979 var errorText = findDerivationPathErrors(derivationPath);
43981 showValidationError(errorText);
43984 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
43985 if (bip44TabSelected()) {
43986 displayBip44Info();
43988 displayBip32Info();
43992 function generateClicked() {
43993 if (isUsingOwnEntropy()) {
43998 setTimeout(function() {
43999 setMnemonicLanguage();
44000 var phrase = generateRandomPhrase();
44008 function languageChanged() {
44009 setTimeout(function() {
44010 setMnemonicLanguage();
44011 if (DOM.phrase.val().length
> 0) {
44012 var newPhrase = convertPhraseToNewLanguage();
44013 DOM.phrase.val(newPhrase);
44017 DOM.generate.trigger(
"click");
44022 function toggleIndexes() {
44023 showIndex = !showIndex;
44024 $(
"td.index span").toggleClass(
"invisible");
44027 function toggleAddresses() {
44028 showAddress = !showAddress;
44029 $(
"td.address span").toggleClass(
"invisible");
44032 function togglePublicKeys() {
44033 showPubKey = !showPubKey;
44034 $(
"td.pubkey span").toggleClass(
"invisible");
44037 function togglePrivateKeys() {
44038 showPrivKey = !showPrivKey;
44039 $(
"td.privkey span").toggleClass(
"invisible");
44044 function generateRandomPhrase() {
44045 if (!hasStrongRandom()) {
44046 var errorText =
"This browser does not support strong randomness";
44047 showValidationError(errorText);
44050 var numWords = parseInt(DOM.generatedStrength.val());
44051 var strength = numWords /
3 *
32;
44052 var words = mnemonic.generate(strength);
44053 DOM.phrase.val(words);
44057 function calcBip32RootKeyFromSeed(phrase, passphrase) {
44058 seed = mnemonic.toSeed(phrase, passphrase);
44059 bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
44062 function calcBip32RootKeyFromBase58(rootKeyBase58) {
44063 bip32RootKey = bitcoin.HDNode.fromBase58(rootKeyBase58, network);
44066 function calcBip32ExtendedKey(path) {
44067 // Check there's a root key to derive from
44068 if (!bip32RootKey) {
44069 return bip32RootKey;
44071 var extendedKey = bip32RootKey;
44072 // Derive the key from the path
44073 var pathBits = path.split(
"/");
44074 for (var i=
0; i
<pathBits.length; i++) {
44075 var bit = pathBits[i];
44076 var index = parseInt(bit);
44077 if (isNaN(index)) {
44080 var hardened = bit[bit.length-
1] ==
"'";
44081 var isPriv =
"privKey" in extendedKey;
44082 var invalidDerivationPath = hardened && !isPriv;
44083 if (invalidDerivationPath) {
44084 extendedKey = null;
44086 else if (hardened) {
44087 extendedKey = extendedKey.deriveHardened(index);
44090 extendedKey = extendedKey.derive(index);
44096 function showValidationError(errorText) {
44102 function hideValidationError() {
44108 function findPhraseErrors(phrase) {
44109 // Preprocess the words
44110 phrase = mnemonic.normalizeString(phrase);
44111 var words = phraseToWordArray(phrase);
44112 // Detect blank phrase
44113 if (words.length ==
0) {
44114 return
"Blank mnemonic";
44117 for (var i=
0; i
<words.length; i++) {
44118 var word = words[i];
44119 var language = getLanguage();
44120 if (WORDLISTS[language].indexOf(word) == -
1) {
44121 console.log(
"Finding closest match to " + word);
44122 var nearestWord = findNearestWord(word);
44123 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
44126 // Check the words are valid
44127 var properPhrase = wordArrayToPhrase(words);
44128 var isValid = mnemonic.check(properPhrase);
44130 return
"Invalid mnemonic";
44135 function validateRootKey(rootKeyBase58) {
44137 bitcoin.HDNode.fromBase58(rootKeyBase58);
44140 return
"Invalid root key";
44145 function getDerivationPath() {
44146 if (bip44TabSelected()) {
44147 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
44148 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
44149 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
44150 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
44152 path += purpose +
"'/";
44153 path += coin +
"'/";
44154 path += account +
"'/";
44156 DOM.bip44path.val(path);
44157 var derivationPath = DOM.bip44path.val();
44158 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
44159 return derivationPath;
44161 else if (bip32TabSelected()) {
44162 var derivationPath = DOM.bip32path.val();
44163 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
44164 return derivationPath;
44167 console.log(
"Unknown derivation path");
44171 function findDerivationPathErrors(path) {
44172 // TODO is not perfect but is better than nothing
44174 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
44176 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
44177 var maxDepth =
255; // TODO verify this!!
44178 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
44179 if (path[
0] !=
"m") {
44180 return
"First character must be 'm'";
44182 if (path.length
> 1) {
44183 if (path[
1] !=
"/") {
44184 return
"Separator must be '/'";
44186 var indexes = path.split(
"/");
44187 if (indexes.length
> maxDepth) {
44188 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
44190 for (var depth =
1; depth
<indexes.length; depth++) {
44191 var index = indexes[depth];
44192 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
44193 if (invalidChars.length
> 0) {
44194 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
44196 var indexValue = parseInt(index.replace(
"'",
""));
44197 if (isNaN(depth)) {
44198 return
"Invalid number at depth " + depth;
44200 if (indexValue
> maxIndexValue) {
44201 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
44205 // Check root key exists or else derivation path is useless!
44206 if (!bip32RootKey) {
44207 return "No root key";
44209 // Check no hardened derivation path when using xpub keys
44210 var hardened = path.indexOf("'")
> -
1;
44211 var isXpubkey = !("privKey" in bip32RootKey);
44212 if (hardened && isXpubkey) {
44213 return "Hardened derivation path is invalid with xpub key";
44218 function displayBip44Info() {
44219 // Get the derivation path for the account
44220 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
44221 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
44222 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
44224 path += purpose + "'/";
44225 path += coin + "'/";
44226 path += account + "'/";
44227 // Calculate the account extended keys
44228 var accountExtendedKey = calcBip32ExtendedKey(path);
44229 var accountXprv = accountExtendedKey.toBase58();
44230 var accountXpub = accountExtendedKey.toBase58(false);
44231 // Display the extended keys
44232 DOM.bip44accountXprv.val(accountXprv);
44233 DOM.bip44accountXpub.val(accountXpub);
44236 function displayBip32Info() {
44238 DOM.seed.val(seed);
44239 var rootKey = bip32RootKey.toBase58();
44240 DOM.rootKey.val(rootKey);
44241 var xprvkeyB58 = "NA";
44242 if (bip32ExtendedKey.privKey) {
44243 xprvkeyB58 = bip32ExtendedKey.toBase58();
44245 var extendedPrivKey = xprvkeyB58;
44246 DOM.extendedPrivKey.val(extendedPrivKey);
44247 var extendedPubKey = bip32ExtendedKey.toBase58(false);
44248 DOM.extendedPubKey.val(extendedPubKey);
44249 // Display the addresses and privkeys
44250 clearAddressesList();
44251 displayAddresses(
0,
20);
44254 function displayAddresses(start, total) {
44255 generationProcesses.push(new (function() {
44259 this.stop = function() {
44260 for (var i=
0; i
<rows.length; i++) {
44261 rows[i].shouldGenerate = false;
44265 for (var i=
0; i
<total; i++) {
44266 var index = i + start;
44267 rows.push(new TableRow(index));
44273 function TableRow(index) {
44276 this.shouldGenerate = true;
44277 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
44283 function calculateValues() {
44284 setTimeout(function() {
44285 if (!self.shouldGenerate) {
44289 if (useHardenedAddresses) {
44290 key = bip32ExtendedKey.deriveHardened(index);
44293 key = bip32ExtendedKey.derive(index);
44295 var address = key.getAddress().toString();
44296 var privkey =
"NA";
44298 privkey = key.privKey.toWIF(network);
44300 var pubkey = key.pubKey.toHex();
44301 var indexText = getDerivationPath() +
"/" + index;
44302 if (useHardenedAddresses) {
44303 indexText = indexText +
"'";
44305 // Ethereum values are different
44306 if (networks[DOM.network.val()].name ==
"Ethereum") {
44307 var privKeyBuffer = key.privKey.d.toBuffer();
44308 privkey = privKeyBuffer.toString('hex');
44309 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
44310 var hexAddress = addressBuffer.toString('hex');
44311 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
44312 address = ethUtil.addHexPrefix(checksumAddress);
44314 // Ripple values are different
44315 if (networks[DOM.network.val()].name ==
"Ripple") {
44316 privkey = convertRipplePriv(privkey);
44317 address = convertRippleAdrr(address);
44319 addAddressToList(indexText, address, pubkey, privkey);
44327 function showMore() {
44328 var start = DOM.addresses.children().length;
44329 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
44330 if (isNaN(rowsToAdd)) {
44332 DOM.rowsToAdd.val(
"20");
44334 if (rowsToAdd
> 200) {
44335 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
44336 msg +=
"Do you want to continue?";
44337 if (!confirm(msg)) {
44341 displayAddresses(start, rowsToAdd);
44344 function clearDisplay() {
44345 clearAddressesList();
44347 hideValidationError();
44350 function clearAddressesList() {
44351 DOM.addresses.empty();
44355 function stopGenerating() {
44356 while (generationProcesses.length
> 0) {
44357 var generation = generationProcesses.shift();
44362 function clearKey() {
44363 DOM.rootKey.val(
"");
44364 DOM.extendedPrivKey.val(
"");
44365 DOM.extendedPubKey.val(
"");
44368 function addAddressToList(indexText, address, pubkey, privkey) {
44369 var row = $(addressRowTemplate.html());
44371 var indexCell = row.find(
".index span");
44372 var addressCell = row.find(
".address span");
44373 var pubkeyCell = row.find(
".pubkey span");
44374 var privkeyCell = row.find(
".privkey span");
44376 indexCell.text(indexText);
44377 addressCell.text(address);
44378 pubkeyCell.text(pubkey);
44379 privkeyCell.text(privkey);
44382 indexCell.addClass(
"invisible");
44384 if (!showAddress) {
44385 addressCell.addClass(
"invisible");
44388 pubkeyCell.addClass(
"invisible");
44390 if (!showPrivKey) {
44391 privkeyCell.addClass(
"invisible");
44393 DOM.addresses.append(row);
44394 var rowShowQrEls = row.find(
"[data-show-qr]");
44395 setQrEvents(rowShowQrEls);
44398 function hasStrongRandom() {
44399 return 'crypto' in window && window['crypto'] !== null;
44402 function disableForms() {
44403 $(
"form").on(
"submit", function(e) {
44404 e.preventDefault();
44408 function parseIntNoNaN(val, defaultVal) {
44409 var v = parseInt(val);
44416 function showPending() {
44418 .text(
"Calculating...")
44422 function findNearestWord(word) {
44423 var language = getLanguage();
44424 var words = WORDLISTS[language];
44425 var minDistance =
99;
44426 var closestWord = words[
0];
44427 for (var i=
0; i
<words.length; i++) {
44428 var comparedTo = words[i];
44429 if (comparedTo.indexOf(word) ==
0) {
44432 var distance = Levenshtein.get(word, comparedTo);
44433 if (distance < minDistance) {
44434 closestWord = comparedTo;
44435 minDistance = distance;
44438 return closestWord;
44441 function hidePending() {
44447 function populateNetworkSelect() {
44448 for (var i=
0; i
<networks.length; i++) {
44449 var network = networks[i];
44450 var option = $(
"<option>");
44451 option.attr(
"value", i);
44452 option.text(network.name);
44453 DOM.phraseNetwork.append(option);
44457 function populateClientSelect() {
44458 for (var i=
0; i
<clients.length; i++) {
44459 var client = clients[i];
44460 var option = $(
"<option>");
44461 option.attr(
"value", i);
44462 option.text(client.name);
44463 DOM.bip32Client.append(option);
44467 function getLanguage() {
44468 var defaultLanguage =
"english";
44469 // Try to get from existing phrase
44470 var language = getLanguageFromPhrase();
44471 // Try to get from url if not from phrase
44472 if (language.length ==
0) {
44473 language = getLanguageFromUrl();
44475 // Default to English if no other option
44476 if (language.length ==
0) {
44477 language = defaultLanguage;
44482 function getLanguageFromPhrase(phrase) {
44483 // Check if how many words from existing phrase match a language.
44486 phrase = DOM.phrase.val();
44488 if (phrase.length
> 0) {
44489 var words = phraseToWordArray(phrase);
44490 var languageMatches = {};
44491 for (l in WORDLISTS) {
44492 // Track how many words match in this language
44493 languageMatches[l] =
0;
44494 for (var i=
0; i
<words.length; i++) {
44495 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
44496 if (wordInLanguage) {
44497 languageMatches[l]++;
44500 // Find languages with most word matches.
44501 // This is made difficult due to commonalities between Chinese
44502 // simplified vs traditional.
44503 var mostMatches =
0;
44504 var mostMatchedLanguages = [];
44505 for (var l in languageMatches) {
44506 var numMatches = languageMatches[l];
44507 if (numMatches
> mostMatches) {
44508 mostMatches = numMatches;
44509 mostMatchedLanguages = [l];
44511 else if (numMatches == mostMatches) {
44512 mostMatchedLanguages.push(l);
44516 if (mostMatchedLanguages.length
> 0) {
44517 // Use first language and warn if multiple detected
44518 language = mostMatchedLanguages[
0];
44519 if (mostMatchedLanguages.length
> 1) {
44520 console.warn(
"Multiple possible languages");
44521 console.warn(mostMatchedLanguages);
44528 function getLanguageFromUrl() {
44529 for (var language in WORDLISTS) {
44530 if (window.location.hash.indexOf(language)
> -
1) {
44537 function setMnemonicLanguage() {
44538 var language = getLanguage();
44539 // Load the bip39 mnemonic generator for this language if required
44540 if (!(language in mnemonics)) {
44541 mnemonics[language] = new Mnemonic(language);
44543 mnemonic = mnemonics[language];
44546 function convertPhraseToNewLanguage() {
44547 var oldLanguage = getLanguageFromPhrase();
44548 var newLanguage = getLanguageFromUrl();
44549 var oldPhrase = DOM.phrase.val();
44550 var oldWords = phraseToWordArray(oldPhrase);
44552 for (var i=
0; i
<oldWords.length; i++) {
44553 var oldWord = oldWords[i];
44554 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
44555 var newWord = WORDLISTS[newLanguage][index];
44556 newWords.push(newWord);
44558 newPhrase = wordArrayToPhrase(newWords);
44562 // TODO look at jsbip39 - mnemonic.splitWords
44563 function phraseToWordArray(phrase) {
44564 var words = phrase.split(/\s/g);
44566 for (var i=
0; i
<words.length; i++) {
44567 var word = words[i];
44568 if (word.length
> 0) {
44569 noBlanks.push(word);
44575 // TODO look at jsbip39 - mnemonic.joinWords
44576 function wordArrayToPhrase(words) {
44577 var phrase = words.join(
" ");
44578 var language = getLanguageFromPhrase(phrase);
44579 if (language ==
"japanese") {
44580 phrase = words.join(
"\u3000");
44585 function isUsingOwnEntropy() {
44586 return DOM.useEntropy.prop(
"checked");
44589 function setMnemonicFromEntropy() {
44590 clearEntropyFeedback();
44591 // Get entropy value
44592 var entropyStr = DOM.entropy.val();
44593 // Work out minimum base for entropy
44594 var entropy = Entropy.fromString(entropyStr);
44595 if (entropy.binaryStr.length ==
0) {
44598 // Show entropy details
44599 showEntropyFeedback(entropy);
44600 // Use entropy hash if not using raw entropy
44601 var bits = entropy.binaryStr;
44602 var mnemonicLength = DOM.entropyMnemonicLength.val();
44603 if (mnemonicLength !=
"raw") {
44604 // Get bits by hashing entropy with SHA256
44605 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
44606 var hex = sjcl.codec.hex.fromBits(hash);
44607 bits = BigInteger.parse(hex,
16).toString(
2);
44608 while (bits.length %
256 !=
0) {
44611 // Truncate hash to suit number of words
44612 mnemonicLength = parseInt(mnemonicLength);
44613 var numberOfBits =
32 * mnemonicLength /
3;
44614 bits = bits.substring(
0, numberOfBits);
44616 // Discard trailing entropy
44617 var bitsToUse = Math.floor(bits.length /
32) *
32;
44618 var start = bits.length - bitsToUse;
44619 var binaryStr = bits.substring(start);
44620 // Convert entropy string to numeric array
44621 var entropyArr = [];
44622 for (var i=
0; i
<binaryStr.length /
8; i++) {
44623 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
44624 var entropyByte = parseInt(byteAsBits,
2);
44625 entropyArr.push(entropyByte)
44627 // Convert entropy array to mnemonic
44628 var phrase = mnemonic.toMnemonic(entropyArr);
44629 // Set the mnemonic in the UI
44630 DOM.phrase.val(phrase);
44633 function clearEntropyFeedback() {
44634 DOM.entropyStrength.text(
"...");
44635 DOM.entropyType.text(
"");
44636 DOM.entropyWordCount.text(
"0");
44637 DOM.entropyEventCount.text(
"0");
44638 DOM.entropyBitsPerEvent.text(
"0");
44639 DOM.entropyBits.text(
"0");
44640 DOM.entropyFiltered.html(
" ");
44641 DOM.entropyBinary.html(
" ");
44644 function showEntropyFeedback(entropy) {
44645 var numberOfBits = entropy.binaryStr.length;
44646 var strength =
"extremely weak";
44647 if (numberOfBits
>=
64) {
44648 strength = "very weak";
44650 if (numberOfBits
>=
96) {
44653 if (numberOfBits
>=
128) {
44654 strength = "strong";
44656 if (numberOfBits
>=
160) {
44657 strength = "very strong";
44659 if (numberOfBits
>=
192) {
44660 strength = "extremely strong";
44662 // If time to crack is less than one day, and password is considered
44663 // strong or better based on the number of bits, rename strength to
44664 // 'easily cracked'.
44666 var z = zxcvbn(entropy.base.parts.join(""));
44667 var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second;
44668 if (timeToCrack <
86400 && entropy.binaryStr.length
>=
128) {
44669 strength = "easily cracked";
44670 if (z.feedback.warning != "") {
44671 strength = strength + " - " + z.feedback.warning;
44676 strength = "unknown";
44677 console.log("Error detecting entropy strength with zxcvbn:");
44680 var entropyTypeStr = getEntropyTypeStr(entropy);
44681 var wordCount = Math.floor(numberOfBits /
32) *
3;
44682 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
44683 DOM.entropyFiltered.html(entropy.cleanHtml);
44684 DOM.entropyType.text(entropyTypeStr);
44685 DOM.entropyStrength.text(strength);
44686 DOM.entropyEventCount.text(entropy.base.ints.length);
44687 DOM.entropyBits.text(numberOfBits);
44688 DOM.entropyWordCount.text(wordCount);
44689 DOM.entropyBinary.text(entropy.binaryStr);
44690 DOM.entropyBitsPerEvent.text(bitsPerEvent);
44693 function getEntropyTypeStr(entropy) {
44694 var typeStr = entropy.base.str;
44695 // Add some detail if these are cards
44696 if (entropy.base.asInt ==
52) {
44697 var cardDetail = []; // array of message strings
44698 // Detect duplicates
44700 var dupeTracker = {};
44701 for (var i=
0; i
<entropy.base.parts.length; i++) {
44702 var card = entropy.base.parts[i];
44703 var cardUpper = card.toUpperCase();
44704 if (cardUpper in dupeTracker) {
44707 dupeTracker[cardUpper] = true;
44709 if (dupes.length
> 0) {
44710 var dupeWord =
"duplicates";
44711 if (dupes.length ==
1) {
44712 dupeWord =
"duplicate";
44714 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
44715 if (dupes.length
> 3) {
44718 cardDetail.push(msg);
44720 // Detect full deck
44721 var uniqueCards = [];
44722 for (var uniqueCard in dupeTracker) {
44723 uniqueCards.push(uniqueCard);
44725 if (uniqueCards.length ==
52) {
44726 cardDetail.unshift(
"full deck");
44728 // Detect missing cards
44729 var values =
"A23456789TJQK";
44730 var suits =
"CDHS";
44731 var missingCards = [];
44732 for (var i=
0; i
<suits.length; i++) {
44733 for (var j=
0; j
<values.length; j++) {
44734 var card = values[j] + suits[i];
44735 if (!(card in dupeTracker)) {
44736 missingCards.push(card);
44740 // Display missing cards if six or less, ie clearly going for full deck
44741 if (missingCards.length
> 0 && missingCards.length <=
6) {
44742 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
44743 if (missingCards.length
> 3) {
44746 cardDetail.push(msg);
44748 // Add card details to typeStr
44749 if (cardDetail.length
> 0) {
44750 typeStr +=
" (" + cardDetail.join(
", ") +
")";
44756 function setQrEvents(els) {
44757 els.on(
"mouseenter", createQr);
44758 els.on(
"mouseleave", destroyQr);
44759 els.on(
"click", toggleQr);
44762 function createQr(e) {
44763 var content = e.target.textContent || e.target.value;
44766 DOM.qrImage.qrcode({width: size, height: size, text: content});
44768 DOM.qrHider.addClass(
"hidden");
44771 DOM.qrHider.removeClass(
"hidden");
44773 DOM.qrContainer.removeClass(
"hidden");
44777 function destroyQr() {
44778 DOM.qrImage.text(
"");
44779 DOM.qrContainer.addClass(
"hidden");
44782 function toggleQr() {
44784 DOM.qrHider.toggleClass(
"hidden");
44785 DOM.qrHint.toggleClass(
"hidden");
44788 function bip44TabSelected() {
44789 return DOM.bip44tab.hasClass(
"active");
44792 function bip32TabSelected() {
44793 return DOM.bip32tab.hasClass(
"active");
44799 onSelect: function() {
44800 network = bitcoin.networks.bitcoin;
44801 DOM.bip44coin.val(
0);
44805 name:
"Bitcoin Testnet",
44806 onSelect: function() {
44807 network = bitcoin.networks.testnet;
44808 DOM.bip44coin.val(
1);
44813 onSelect: function() {
44814 network = bitcoin.networks.clam;
44815 DOM.bip44coin.val(
23);
44820 onSelect: function() {
44821 network = bitcoin.networks.dogecoin;
44822 DOM.bip44coin.val(
3);
44827 onSelect: function() {
44828 network = bitcoin.networks.dash;
44829 DOM.bip44coin.val(
5);
44834 onSelect: function() {
44835 network = bitcoin.networks.bitcoin;
44836 DOM.bip44coin.val(
60);
44841 onSelect: function() {
44842 network = bitcoin.networks.game;
44843 DOM.bip44coin.val(
101);
44848 onSelect: function() {
44849 network = bitcoin.networks.jumbucks;
44850 DOM.bip44coin.val(
26);
44855 onSelect: function() {
44856 network = bitcoin.networks.litecoin;
44857 DOM.bip44coin.val(
2);
44862 onSelect: function() {
44863 network = bitcoin.networks.namecoin;
44864 DOM.bip44coin.val(
7);
44869 onSelect: function() {
44870 network = bitcoin.networks.peercoin;
44871 DOM.bip44coin.val(
6);
44876 onSelect: function() {
44877 network = bitcoin.networks.bitcoin;
44878 DOM.bip44coin.val(
144);
44882 name:
"ShadowCash",
44883 onSelect: function() {
44884 network = bitcoin.networks.shadow;
44885 DOM.bip44coin.val(
35);
44889 name:
"ShadowCash Testnet",
44890 onSelect: function() {
44891 network = bitcoin.networks.shadowtn;
44892 DOM.bip44coin.val(
1);
44897 onSelect: function() {
44898 network = bitcoin.networks.slimcoin;
44899 DOM.bip44coin.val(
63);
44903 name:
"Slimcoin Testnet",
44904 onSelect: function() {
44905 network = bitcoin.networks.slimcointn;
44906 DOM.bip44coin.val(
111);
44911 onSelect: function() {
44912 network = bitcoin.networks.viacoin;
44913 DOM.bip44coin.val(
14);
44917 name:
"Viacoin Testnet",
44918 onSelect: function() {
44919 network = bitcoin.networks.viacointestnet;
44920 DOM.bip44coin.val(
1);
44927 name:
"Bitcoin Core",
44928 onSelect: function() {
44929 DOM.bip32path.val(
"m/0'/0'");
44930 DOM.hardenedAddresses.prop('checked', true);
44934 name:
"blockchain.info",
44935 onSelect: function() {
44936 DOM.bip32path.val(
"m/44'/0'/0'");
44937 DOM.hardenedAddresses.prop('checked', false);
44941 name:
"MultiBit HD",
44942 onSelect: function() {
44943 DOM.bip32path.val(
"m/0'/0");
44944 DOM.hardenedAddresses.prop('checked', false);